안녕하세요.
아래 2개의 파인스크립트 함수 로직 그대로
예스랭귀지에서 myRSI, RMA 사용자 함수를 각각 만들어 사용하고 싶습니다.
예스랭귀지로 사용자함수 부탁드립니다.
//ta.rsi(src,length) same on pine, but less efficient
pine_rsi(x, y) =>
u = math.max(x - x[1], 0) // upward ta.change
d = math.max(x[1] - x, 0) // downward ta.change
rs = ta.rma(u, y) / ta.rma(d, y)
res = 100 - 100 / (1 + rs)
res
//ta.rma(src,length) the same on pine
pine_rma(src, length) =>
alpha = 1/length
sum = 0.0
sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])
답변 1
예스스탁
예스스탁 답변
2025-07-24 09:29:50
안녕하세요
예스스탁입니다.
1
사용자함수명 : rma
반환값형 : 숫자형
input : src(Numeric),length(Numeric);;
var : alpha(0);
alpha = 1/length;
rma = IFf(IsNan(rma[1]) == true , ma(src, length) , alpha * src + (1 - alpha) * iff(IsNan(rma[1]),0,rma[1]));
2
사용자함수명 : myRSI
반환값형 : 숫자형
input : x(Numeric),y(Numeric);
var : u(0),d(0),rs(0),res(0);
u = max(x - x[1], 0); // upward ta.change
d = max(x[1] - x, 0); // downward ta.change
rs = rma(u, y) / rma(d, y);
res = 100 - 100 / (1 + rs);
myRSI = res;
즐거운 하루되세요
> 니콜라스킹 님이 쓴 글입니다.
> 제목 : 예스랭귀지로 사용자함수 작성
> 안녕하세요.
아래 2개의 파인스크립트 함수 로직 그대로
예스랭귀지에서 myRSI, RMA 사용자 함수를 각각 만들어 사용하고 싶습니다.
예스랭귀지로 사용자함수 부탁드립니다.
//ta.rsi(src,length) same on pine, but less efficient
pine_rsi(x, y) =>
u = math.max(x - x[1], 0) // upward ta.change
d = math.max(x[1] - x, 0) // downward ta.change
rs = ta.rma(u, y) / ta.rma(d, y)
res = 100 - 100 / (1 + rs)
res
//ta.rma(src,length) the same on pine
pine_rma(src, length) =>
alpha = 1/length
sum = 0.0
sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])