커뮤니티
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;
다음글
이전글