=====================================================================
Inputs: Length(NumericSimple);
Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0);
If CurrentBar == 1 AND Length > 0 Then Begin
UpSum = 0;
DownSum = 0;
For Counter = 0 To Length - 1 Begin
UpAmt = C[Counter] - C[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / Length;
DownAvg = DownSum / Length;
End
Else
If CurrentBar > 1 AND Length > 0 Then Begin
UpAmt = C[0] - C[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length;
DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length;
End;
If UpAvg + DownAvg <> 0 Then
RSI = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSI = 0;
==========================================================================
RSI 지표 구성이 위와 같습니다.(예스랭귀지 내용 복사했습니다.)
스팟에서 RSI 지료를 쓰려고 하는데, 확장차트에서 할 수 없는 상황이 되었습니다.
위의 식을 스팟에서 구현하도록 도움 부탁드리겠습니다.
CurrentBar를 어떻게 처리할 지 몰라서 여쭤봅니다.
확장 차트에서 C[Counter] ==> CT[i].GetClose(Counter) 이런 식으로 구성할 예정입니다.
답변 1
예스스탁
예스스탁 답변
2021-11-23 15:28:07
안녕하세요
예스스탁입니다.
지표를 스팟 수식으로 구현하는 부분은 작성해 보는데 시간도 많이 소모됩니다.
해당 내용은 저희가 작성해 드리지 않습니다.
스팟에서 차트객체가 제공되는 것은
올리신 부분과 같이 실시간 시세를 제공하는 종목객체로는
일정시간간격으로 봉을 만들어 계산하는 지표를 계산하기 어렵기 때문입니다.
문의하신 내용은 차트에 지표를 적용해 값을 리턴받아 사용하실수 밖에 없습니다.
즐거운 하루되세요
> cs아빠 님이 쓴 글입니다.
> 제목 : RSI
> =====================================================================
Inputs: Length(NumericSimple);
Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0);
If CurrentBar == 1 AND Length > 0 Then Begin
UpSum = 0;
DownSum = 0;
For Counter = 0 To Length - 1 Begin
UpAmt = C[Counter] - C[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / Length;
DownAvg = DownSum / Length;
End
Else
If CurrentBar > 1 AND Length > 0 Then Begin
UpAmt = C[0] - C[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length;
DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length;
End;
If UpAvg + DownAvg <> 0 Then
RSI = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSI = 0;
==========================================================================
RSI 지표 구성이 위와 같습니다.(예스랭귀지 내용 복사했습니다.)
스팟에서 RSI 지료를 쓰려고 하는데, 확장차트에서 할 수 없는 상황이 되었습니다.
위의 식을 스팟에서 구현하도록 도움 부탁드리겠습니다.
CurrentBar를 어떻게 처리할 지 몰라서 여쭤봅니다.
확장 차트에서 C[Counter] ==> CT[i].GetClose(Counter) 이런 식으로 구성할 예정입니다.