예스스탁
예스스탁 답변
2023-03-03 13:50:48
안녕하세요
예스스탁입니다.
지수이평의 경우 과거봉에 따라 현재봉의 값이 달라지게 됩니다.
기본차트를 기준으로 타주기 지표를 계산하므로
기본차트 기준 너무 큰 다른 주기는 현재봉값에 많이 차이가 날수 있습니다.
이용에 참고하시기 바랍니다.
1 타분봉
Input : ntime(10),RSIP(14);
var : S1(0),D1(0),TM(0),TF1(0),diff(0);
Var : Ep(0);
var : A(0),B(0),preA(0),preB(0),RS(0),RSIV(0),C1(0);
EP = 2/(RSIP+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
PreA = A[1];
PreB = B[1];
C1 = C[1];
value1 = value1+1;
}
if C1 > 0 Then
{
var1 = iff(C-C1>0,C-C1,0);
var2 = iff(C-C1<0,abs(C-C1),0);
if value1 <= 1 then
{
A = var1;
B = var2;
}
else
{
A = var1 * EP + PreA * (1-EP);
B = var2 * EP + PreB * (1-EP);
}
RS= A/B;
RSIv = 100 - 100/(1+RS);
plot1(RSIV);
}
}
2 일봉
Input : RSIP(14);
Var : Ep(0);
var : A(0),B(0),preA(0),preB(0),RS(0),RSIV(0),C1(0);
EP = 2/(RSIP+1);
if Bdate != Bdate[1] Then
{
PreA = A[1];
PreB = B[1];
C1 = C[1];
value1 = value1+1;
}
if C1 > 0 Then
{
var1 = iff(C-C1>0,C-C1,0);
var2 = iff(C-C1<0,abs(C-C1),0);
if value1 <= 1 then
{
A = var1;
B = var2;
}
else
{
A = var1 * EP + PreA * (1-EP);
B = var2 * EP + PreB * (1-EP);
}
RS= A/B;
RSIv = 100 - 100/(1+RS);
plot1(RSIV);
}
3 주봉
Input : RSIP(14);
Var : Ep(0);
var : A(0),B(0),preA(0),preB(0),RS(0),RSIV(0),C1(0);
EP = 2/(RSIP+1);
if dayofweek(Bdate) != DayOfWeek(Bdate[1]) Then
{
PreA = A[1];
PreB = B[1];
C1 = C[1];
value1 = value1+1;
}
if C1 > 0 Then
{
var1 = iff(C-C1>0,C-C1,0);
var2 = iff(C-C1<0,abs(C-C1),0);
if value1 <= 1 then
{
A = var1;
B = var2;
}
else
{
A = var1 * EP + PreA * (1-EP);
B = var2 * EP + PreB * (1-EP);
}
RS= A/B;
RSIv = 100 - 100/(1+RS);
plot1(RSIV);
}
즐거운 하루되세요
> kns 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 아래의 rsi수식을 바탕으로 3분봉 ,60분봉, 일봉 ,주봉의
Rsi 함수값을 구하고 싶습니다
일봉에서 주봉rsi를 같이 본다거나 , 분봉에서 일봉 rsi를 같이
보는 용도로 사용할려 합니다
A = eavg(if(C-C(1)>0,C-C(1),0),period1);
B = eavg(if(C-C(1)<0,abs(C-C(1)),0),period1);
RS= A/B
RSI = 100 - 100/(1+RS)