커뮤니티

RSI

프로필 이미지
cs아빠
2021-11-23 10:52:32
473
글번호 153829
답변완료
===================================================================== 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) 이런 식으로 구성할 예정입니다.