커뮤니티
문의드립니다.
2012-09-13 00:49:06
343
글번호 54643
그동안 문의드렸던 내용을 바탕으로 시스템 구현 중 잘 되지 않는 부분이 있습니다.
번거롭더라도 수식 확인 부탁드립니다.ㅠ
1. RVI 관련
문제점
10 < VAR5 를 넣으면 해당 사항이 있음에도 시뮬레이션 時 시스템성능보고서 가 뜨지 않습니다.
20 > VAR5 만 넣었을 경우 (종목 : 065420, 2011/05/24) 조건만족 안됬는데 25일에 매수발생 함니다. ※ RVI14 : 24.93
→ RVI 사용자함수가 지표 와 맞지 않는 것 같습니다.
→ RVI 지표가 맞다고 했을경우 사용자함수 수정 어떻게 되어야 하나요?
RVI 지표
Input: Length(14);
Var: Stdval(0),DnStd(0), UpStd(0), DownStd(0),RVIval(0);
Stdval = Std(Close, 10);
DnStd = ma( Iff(Close<=Close[1], Stdval,0),Length);
UpStd = ma( Iff(Close > Close[1], Stdval, 0), Length);
DownStd = ma( Iff(Close< Close[1], Stdval,0), Length);
If DnStd == 0 Then
RVIval = 100;
Else
RVIval = 100 -(100/ (1 +(UpStd/DownStd)));
Plot1(RVIval, "Relative Volatility Index");
PlotBaseLine1(60);
PlotBaseLine2(50);
PlotBaseLine3(40);
사용자함수
input : Period(Numeric);
RVI = AccumN(((C-O)+2*(C[1]-O[1])+2*(C[2]-O[2])+(C[3]-O[3]))/6,Period)
/
AccumN(((H-L)+2*(H[1]-L[1])+2*(H[2]-L[2])+(H[3]-L[3]))/6,Period);
시스템
input:r1(28);
input:e1(20),e2(40),e3(45);
input:v1(14);
var1=RSI(r1);
Var2=EnvelopeDown(e1,e1);
Var3=EnvelopeDown(e2,e2);
Var4=EnvelopeDown(e3,e3);
var5=RVI(v1);
if 20 < Var1 and Var1 < 30 and 10 < VAR5 AND VAR5 < 20 AND Var4 > C and Var2 > Var3 and C > O Then
{
buy("구매",AtMarket);
}
답변 1
예스스탁 예스스탁 답변
2012-09-13 10:43:18
안녕하세요
예스스탁입니다.
첨부된 그림과 같이 키움쪽에 RVI가 함수의 계산식과
지표의 계산식이 서로 다릅니다.
변환해 드린 것은 수식관리화면의 함수에 있는 내용입니다.
지표쪽의 계산식을 사용하고자 하시면
RVI함수의 내용을 아래 내용으로 교체하시기 바랍니다.
input : N(numeric);
RVI = iff(ma(iff(c<=c[1],Std(c,10),0),n)==0,100,(100-(100/(1+((ma(iff(c>c[1],Std(c,10),0),n)
/avg(iff(c<c[1],Std(c,10),0),n)))))));
즐거운 하루되세요
> 돼끼 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 그동안 문의드렸던 내용을 바탕으로 시스템 구현 중 잘 되지 않는 부분이 있습니다.
번거롭더라도 수식 확인 부탁드립니다.ㅠ
1. RVI 관련
문제점
10 < VAR5 를 넣으면 해당 사항이 있음에도 시뮬레이션 時 시스템성능보고서 가 뜨지 않습니다.
20 > VAR5 만 넣었을 경우 (종목 : 065420, 2011/05/24) 조건만족 안됬는데 25일에 매수발생 함니다. ※ RVI14 : 24.93
→ RVI 사용자함수가 지표 와 맞지 않는 것 같습니다.
→ RVI 지표가 맞다고 했을경우 사용자함수 수정 어떻게 되어야 하나요?
RVI 지표
Input: Length(14);
Var: Stdval(0),DnStd(0), UpStd(0), DownStd(0),RVIval(0);
Stdval = Std(Close, 10);
DnStd = ma( Iff(Close<=Close[1], Stdval,0),Length);
UpStd = ma( Iff(Close > Close[1], Stdval, 0), Length);
DownStd = ma( Iff(Close< Close[1], Stdval,0), Length);
If DnStd == 0 Then
RVIval = 100;
Else
RVIval = 100 -(100/ (1 +(UpStd/DownStd)));
Plot1(RVIval, "Relative Volatility Index");
PlotBaseLine1(60);
PlotBaseLine2(50);
PlotBaseLine3(40);
사용자함수
input : Period(Numeric);
RVI = AccumN(((C-O)+2*(C[1]-O[1])+2*(C[2]-O[2])+(C[3]-O[3]))/6,Period)
/
AccumN(((H-L)+2*(H[1]-L[1])+2*(H[2]-L[2])+(H[3]-L[3]))/6,Period);
시스템
input:r1(28);
input:e1(20),e2(40),e3(45);
input:v1(14);
var1=RSI(r1);
Var2=EnvelopeDown(e1,e1);
Var3=EnvelopeDown(e2,e2);
Var4=EnvelopeDown(e3,e3);
var5=RVI(v1);
if 20 < Var1 and Var1 < 30 and 10 < VAR5 AND VAR5 < 20 AND Var4 > C and Var2 > Var3 and C > O Then
{
buy("구매",AtMarket);
}
다음글
이전글