커뮤니티

ema 호출문제

프로필 이미지
Polaris
2008-12-28 20:16:51
874
글번호 19061
답변완료
다음 식을 30분봉에서 돌려보면 처음 하루는 매분봉마다 처리가 되는 데, 둘째날 부터는 매분봉 마다 처리가 되지 않습니다. 그래서 디버거 창으로 획인해보니 T1 = ema(c,sstrixPeriod); 줄에서 문제가 생기는 데 아무리 해봐도 그 이유를 모르겠습니다. Input : slosscut(12),sdelay(1), strixPeriod(5),strixsignal(15), trendline1(5),trendline2(24),trendline3(120); var : trendvalue1(0),trendvalue2(0),trendvalue3(0), strixvalue(0),strixsignalvalue(0), cnt(0),T1(0),T2(0), lastpos(0),startpos(0),strixgap(0), sstrixvalue(0),sstrixsignal(0),sstrixperiod(0),ssstrixperiod(0); if dayindex()==0 then sstrixperiod = 0; sstrixperiod= dayindex()+1; sstrixsignal=Round((dayindex()+1)*strixsignal/strixPeriod,0); if sstrixsignal < 1 then sstrixsignal = 1; T1 = ema(c,sstrixPeriod); MessageLog("t1= %.3f,strixvalue= %.3f,strisignalxvalue= %.3f",t1,sstrixperiod,sstrixsignal); T2 = ema(T1,sstrixsignal); strixgap=strixvalue-strixsignalvalue; if crossup(T1,T2) then { buy("s1"); } else if crossdown(T1,T2) then { sell("s2"); } if stime == 150000 then { if MarketPosition() == 1 then { lastpos=1; startpos=0; } else if MarketPosition() == -1 then { lastpos=-1; startpos=0; } SetStopEndofday(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2008-12-29 15:01:15

안녕하세요 예스스탁입니다. 이동평균과 같이 기간값을 사용하는 함수에 변동적인 기간값을 사용하게 되면 값을 계산할 수 없습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > Polaris 님이 쓴 글입니다. > 제목 : ema 호출문제 > 다음 식을 30분봉에서 돌려보면 처음 하루는 매분봉마다 처리가 되는 데, 둘째날 부터는 매분봉 마다 처리가 되지 않습니다. 그래서 디버거 창으로 획인해보니 T1 = ema(c,sstrixPeriod); 줄에서 문제가 생기는 데 아무리 해봐도 그 이유를 모르겠습니다. Input : slosscut(12),sdelay(1), strixPeriod(5),strixsignal(15), trendline1(5),trendline2(24),trendline3(120); var : trendvalue1(0),trendvalue2(0),trendvalue3(0), strixvalue(0),strixsignalvalue(0), cnt(0),T1(0),T2(0), lastpos(0),startpos(0),strixgap(0), sstrixvalue(0),sstrixsignal(0),sstrixperiod(0),ssstrixperiod(0); if dayindex()==0 then sstrixperiod = 0; sstrixperiod= dayindex()+1; sstrixsignal=Round((dayindex()+1)*strixsignal/strixPeriod,0); if sstrixsignal < 1 then sstrixsignal = 1; T1 = ema(c,sstrixPeriod); MessageLog("t1= %.3f,strixvalue= %.3f,strisignalxvalue= %.3f",t1,sstrixperiod,sstrixsignal); T2 = ema(T1,sstrixsignal); strixgap=strixvalue-strixsignalvalue; if crossup(T1,T2) then { buy("s1"); } else if crossdown(T1,T2) then { sell("s2"); } if stime == 150000 then { if MarketPosition() == 1 then { lastpos=1; startpos=0; } else if MarketPosition() == -1 then { lastpos=-1; startpos=0; } SetStopEndofday(); }