커뮤니티

RSI 수식 문의드립니다.

프로필 이미지
엠제이
2015-02-24 13:05:50
177
글번호 83377
답변완료
안녕하세요 RSI 지표 수식관련해서 문의드립니다. 타 hts(미래에셋)의 rsi 값과 다르게 나오기에 사용자함수를 확인해 보았습니다. 예스스탁에 내장되어 있는 RSI 사용자 함수와 수정한 RSI 사용자 함수 2개를 연달아 적었습니다. 수정한 RSI 함수로 사용해도 되는 건지 궁금합니다. 감사합니다. 예스스탁의 RSI 사용자함수 ====================================================================================== 사용자함수 : RSI /* Description : (R)elative (S)trength (I)ndex * * Provided By : YesStock Inc. (c) Copyright 2006 * E-Mail : webmaster@yesstock.com */ 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; ============================================================================== 위의 수식을 아래와 같이 수정을 하면 타 hts의 rsi 값과 동일하게 표시가 됩니다. /* Description : (R)elative (S)trength (I)ndex * * Provided By : YesStock Inc. (c) Copyright 2006 * E-Mail : webmaster@yesstock.com */ Inputs: Length(NumericSimple); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); 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; If UpAvg + DownAvg <> 0 Then RSI = 100 * UpAvg / (UpAvg + DownAvg); Else RSI = 0;
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-02-24 19:44:37

안녕하세요 예스스탁입니다. 각 지표식이 계산방법의 차이가 있어 값에 차이가 날수 있습니다. 함수는 사용자분이 직접 만드셔서 사용하셔도 무방하며 올리신 식에 문제는 없습니다. 기본으로 제공되는 사용자함수는 삭제하거나 수정하실수 없으므로 다른 이름(RSI2와 같이)으로 만드셔서 사용하시기 바랍니다. 사용자함수는 사용자함수명이 최종 값을 리턴받는 변수가 되므로 함수명이 RSI2라면 수식안에서 최종값을 저장하는 변수도 함수명으로 해주시면 됩니다. 사용자함수명 : RSI2 Inputs: Length(NumericSimple); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); 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; If UpAvg + DownAvg <> 0 Then RSI2 = 100 * UpAvg / (UpAvg + DownAvg); Else RSI2 = 0; 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : RSI 수식 문의드립니다. > 안녕하세요 RSI 지표 수식관련해서 문의드립니다. 타 hts(미래에셋)의 rsi 값과 다르게 나오기에 사용자함수를 확인해 보았습니다. 예스스탁에 내장되어 있는 RSI 사용자 함수와 수정한 RSI 사용자 함수 2개를 연달아 적었습니다. 수정한 RSI 함수로 사용해도 되는 건지 궁금합니다. 감사합니다. 예스스탁의 RSI 사용자함수 ====================================================================================== 사용자함수 : RSI /* Description : (R)elative (S)trength (I)ndex * * Provided By : YesStock Inc. (c) Copyright 2006 * E-Mail : webmaster@yesstock.com */ 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; ============================================================================== 위의 수식을 아래와 같이 수정을 하면 타 hts의 rsi 값과 동일하게 표시가 됩니다. /* Description : (R)elative (S)trength (I)ndex * * Provided By : YesStock Inc. (c) Copyright 2006 * E-Mail : webmaster@yesstock.com */ Inputs: Length(NumericSimple); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); 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; If UpAvg + DownAvg <> 0 Then RSI = 100 * UpAvg / (UpAvg + DownAvg); Else RSI = 0;