커뮤니티
지표수식은?
2016-02-15 12:33:43
189
글번호 95372
http://blog.naver.com/ijrhee/220406293272
위 글에서 표현한 RSI밴드 의 지표 수식은 어떻게 되는지요?
일반적인 RSI밴드 의 수식을 알려 주시면 됩니다.
감사합니다.
-----
참고: 시스메틱트레이더 카페에 올라온
rsi 밴드 사용자함수는 다음과 같음...중간에 ? 때문에 식이 오류라고 뜸.
Inputs: Length(NumericSimple),
TargetUpLevel(NumericSimple),
TargetDnLevel(NumericSimple),
oUpBand(NumericRef),
oDnBand(NumericRef),
oMidLine(NumericRef);
Variables: Counter(0), DownAmt(0), UpAmt(0),
UpSum(0),DownSum(0), UpAvg(0),
DownAvg(0),MidLevel(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
Value1 = 100 * UpAvg / (UpAvg + DownAvg);
Else
Value1 = 0;
If Value1[1] > TargetUpLevel Then
oUpBand = (((TargetUpLevel - 100) / TargetUpLevel * UpAvg[1])
+ DownAvg[1]) * (Length - 1) + C[1];
Else
oUpBand = ((TargetUpLevel / (100 - TargetUpLevel) *
DownAvg[1]) ? UpAvg[1]) * (Length - 1) + C[1];
If Value1[1] > TargetDnLevel Then
oDnBand = (((TargetDnLevel - 100) / TargetDnLevel * UpAvg[1])
+ DownAvg[1]) * (Length - 1) + C[1];
Else
oDnBand = ((TargetDnLevel / (100 - TargetDnLevel) *
DownAvg[1]) ? UpAvg[1]) * (Length - 1) + C[1];
MidLevel = (TargetUpLevel + TargetDnLevel) / 2;
If Value1[1] > MidLevel Then
oMidLine = (((MidLevel - 100) / MidLevel*UpAvg[1])+DownAvg[1])
* (Length - 1) + C[1];
Else
oMidline = ((MidLevel / (100 - MidLevel)*DownAvg[1])- UpAvg[1])
* (Length - 1) + C[1];
RSI_BAND = 1;
[출처] 2주_3일차_03_전략소스 실습_008_RSI Bands 사용자함수 (시스메틱 트레이더) |작성자 시스메틱
------
시스메틱 트레이더에 뜬 rsi밴드 지표식은 다음과 같음
Input:Length(14),UpLevel(70),DnLevel(30);
Var:result(0),Upband(0),DnBand(0),MidLine(0);
result = RSI_BAND(Length,UpLevel,DnLevel,UpBand,DnBand,MidLine);
If result == 1 Then
{
Plot1(UpBand);
Plot2(MidLine);
Plot3(DnBand);
Plot4(ma(UpBand,10));
Plot5(ma(DnBand,10));
}
[출처] 2주_3일차_03_전략소스 실습_009_RSI Bands 지표식 (시스메틱 트레이더) |작성자 시스메틱
답변 1
예스스탁 예스스탁 답변
2016-02-15 15:07:31
안녕하세요
예스스탁입니다.
1.
일반적인 RSI밴드식입니다.
http://blog.naver.com/ijrhee/220406293272
위 글에서도 아래의 식을 사용합니다.
RSI값을 기준으로 볼린져밴드를 계산한 식입니다.
input : RSIP(14),P(10),dv(2);
var : RSIv(0),BBmd(0),BBup(0),BBdn(0);
RSIV = RSI(RSIP);
BBmd = ema(RSIV,P);
BBup = BBmd+STD(RSIV,P)*Dv;
BBdn = BBmd-STD(RSIV,P)*Dv;
plot1(RSIV);
plot2(BBup);
plot3(BBdn);
2.
올려주시 시스메틱카페의 글에서
?로 폰트가 깨져서 오는 부분은 - 같습니다.
-로 처리해서 올려드립니다.
Inputs: Length(NumericSimple),
TargetUpLevel(NumericSimple),
TargetDnLevel(NumericSimple),
oUpBand(NumericRef),
oDnBand(NumericRef),
oMidLine(NumericRef);
Variables: Counter(0), DownAmt(0), UpAmt(0),
UpSum(0),DownSum(0), UpAvg(0),
DownAvg(0),MidLevel(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
Value1 = 100 * UpAvg / (UpAvg + DownAvg);
Else
Value1 = 0;
If Value1[1] > TargetUpLevel Then
oUpBand = (((TargetUpLevel - 100) / TargetUpLevel * UpAvg[1]) + DownAvg[1]) * (Length - 1) + C[1];
Else
oUpBand = ((TargetUpLevel / (100 - TargetUpLevel) * DownAvg[1]) - UpAvg[1]) * (Length - 1) + C[1];
If Value1[1] > TargetDnLevel Then
oDnBand = (((TargetDnLevel - 100) / TargetDnLevel * UpAvg[1]) + DownAvg[1]) * (Length - 1) + C[1];
Else
oDnBand = ((TargetDnLevel / (100 - TargetDnLevel) * DownAvg[1]) - UpAvg[1]) * (Length - 1) + C[1];
MidLevel = (TargetUpLevel + TargetDnLevel) / 2;
If Value1[1] > MidLevel Then
oMidLine = (((MidLevel - 100) / MidLevel*UpAvg[1])+DownAvg[1])
* (Length - 1) + C[1];
Else
oMidline = ((MidLevel / (100 - MidLevel)*DownAvg[1])- UpAvg[1])
* (Length - 1) + C[1];
RSI_BAND = 1;
즐거운 하루되세요
> 스테디어드밴서 님이 쓴 글입니다.
> 제목 : 지표수식은?
> http://blog.naver.com/ijrhee/220406293272
위 글에서 표현한 RSI밴드 의 지표 수식은 어떻게 되는지요?
일반적인 RSI밴드 의 수식을 알려 주시면 됩니다.
감사합니다.
-----
참고: 시스메틱트레이더 카페에 올라온
rsi 밴드 사용자함수는 다음과 같음...중간에 ? 때문에 식이 오류라고 뜸.
Inputs: Length(NumericSimple),
TargetUpLevel(NumericSimple),
TargetDnLevel(NumericSimple),
oUpBand(NumericRef),
oDnBand(NumericRef),
oMidLine(NumericRef);
Variables: Counter(0), DownAmt(0), UpAmt(0),
UpSum(0),DownSum(0), UpAvg(0),
DownAvg(0),MidLevel(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
Value1 = 100 * UpAvg / (UpAvg + DownAvg);
Else
Value1 = 0;
If Value1[1] > TargetUpLevel Then
oUpBand = (((TargetUpLevel - 100) / TargetUpLevel * UpAvg[1])
+ DownAvg[1]) * (Length - 1) + C[1];
Else
oUpBand = ((TargetUpLevel / (100 - TargetUpLevel) *
DownAvg[1]) ? UpAvg[1]) * (Length - 1) + C[1];
If Value1[1] > TargetDnLevel Then
oDnBand = (((TargetDnLevel - 100) / TargetDnLevel * UpAvg[1])
+ DownAvg[1]) * (Length - 1) + C[1];
Else
oDnBand = ((TargetDnLevel / (100 - TargetDnLevel) *
DownAvg[1]) ? UpAvg[1]) * (Length - 1) + C[1];
MidLevel = (TargetUpLevel + TargetDnLevel) / 2;
If Value1[1] > MidLevel Then
oMidLine = (((MidLevel - 100) / MidLevel*UpAvg[1])+DownAvg[1])
* (Length - 1) + C[1];
Else
oMidline = ((MidLevel / (100 - MidLevel)*DownAvg[1])- UpAvg[1])
* (Length - 1) + C[1];
RSI_BAND = 1;
[출처] 2주_3일차_03_전략소스 실습_008_RSI Bands 사용자함수 (시스메틱 트레이더) |작성자 시스메틱
------
시스메틱 트레이더에 뜬 rsi밴드 지표식은 다음과 같음
Input:Length(14),UpLevel(70),DnLevel(30);
Var:result(0),Upband(0),DnBand(0),MidLine(0);
result = RSI_BAND(Length,UpLevel,DnLevel,UpBand,DnBand,MidLine);
If result == 1 Then
{
Plot1(UpBand);
Plot2(MidLine);
Plot3(DnBand);
Plot4(ma(UpBand,10));
Plot5(ma(DnBand,10));
}
[출처] 2주_3일차_03_전략소스 실습_009_RSI Bands 지표식 (시스메틱 트레이더) |작성자 시스메틱
다음글
이전글