커뮤니티

수식이 제대로 나오질 않아요

프로필 이미지
조민철
2012-10-19 00:54:23
227
글번호 55736
답변완료

첨부 이미지

감사합니다. 저번에 시스템식을 짜준것이 실제로 셋팅해서 돌려보니 챠트에 제대로 나오질 않습니다 첨부파일의 그림에서 위에것은 이번로직으로 돌린것이고 아래것은 예스스탁에서 기본적으로 제공하는 ma3정배열역배열입니다 수식에 오류가 없다면 아래그림을 기준으로 5이평이 20이평 크로스매수,매도가 나와야 되는데 그렇질 않습니다 수식오류 수정 부탁드립니다. Inputs: Length1(5),Length2(20),Period1(5),Period2(20),Period3(60); Var : P1(0),P2(0),TRIma1(0),TRIma2(0); P1 = Ceiling((Length1 + 1) * .5); P2 = Ceiling((Length2 + 1) * .5); TRIma1 = ma(ma(C, P1), P1); TRIma2 = ma(ma(C, P2), P2); var1 = ma(c,Period1); var2 = ma(c,Period2); var3 = ma(c,Period3); if var1 > var2 and var2 > var3 Then{ if MarketPosition == 0 and crossup(TRIma1,TRIma2) Then buy(); if MarketPosition == 1 and CrossDown(TRIma1,TRIma2) Then exitlong(); } if var1 < var2 and var2 < var3 Then{ if MarketPosition == 0 and CrossDown(TRIma1,TRIma2) Then Sell(); if MarketPosition == -1 and Crossup(TRIma1,TRIma2) Then ExitShort(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-10-19 11:47:31

안녕하세요 예스스탁입니다. 식 내용을 어떻게 변경해 드려야 할지 모르겠습니다. 2개의 식은 신호가 발생하는 조건이 다른 시스템 식입니다. 기본으로 제공되는 MA3정배열역배열은 단순이평이 역배열에서 정배열로 바뀔때 매수진입/매도청산 단순이평이 정배열에서 역배열로 바뀔때 매도진입/매수청산 하는 식이며 아래 작성된 식은 단순이평 정배열상태에서 삼각가중이평이 골든크로스가 발생하면 매수진입 삼각가중이평이 데드크로스가 발생하면 매수청산 단순이평 역배열상태에서 삼각가중이평이 데드크로스가 발생하면 매도진입 삼각가중이평이 골든크로스가 발생하면 매도청산 하는 식이며 진입이 모두 무포지션상태일때만 발생하게 하는 식입니다. 위 내용 참고하셔서 어떤 조건식의 어떤내용을 변경해야 하는지 좀더 자세히 올려주시기 바랍니다. 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 수식이 제대로 나오질 않아요 > 감사합니다. 저번에 시스템식을 짜준것이 실제로 셋팅해서 돌려보니 챠트에 제대로 나오질 않습니다 첨부파일의 그림에서 위에것은 이번로직으로 돌린것이고 아래것은 예스스탁에서 기본적으로 제공하는 ma3정배열역배열입니다 수식에 오류가 없다면 아래그림을 기준으로 5이평이 20이평 크로스매수,매도가 나와야 되는데 그렇질 않습니다 수식오류 수정 부탁드립니다. Inputs: Length1(5),Length2(20),Period1(5),Period2(20),Period3(60); Var : P1(0),P2(0),TRIma1(0),TRIma2(0); P1 = Ceiling((Length1 + 1) * .5); P2 = Ceiling((Length2 + 1) * .5); TRIma1 = ma(ma(C, P1), P1); TRIma2 = ma(ma(C, P2), P2); var1 = ma(c,Period1); var2 = ma(c,Period2); var3 = ma(c,Period3); if var1 > var2 and var2 > var3 Then{ if MarketPosition == 0 and crossup(TRIma1,TRIma2) Then buy(); if MarketPosition == 1 and CrossDown(TRIma1,TRIma2) Then exitlong(); } if var1 < var2 and var2 < var3 Then{ if MarketPosition == 0 and CrossDown(TRIma1,TRIma2) Then Sell(); if MarketPosition == -1 and Crossup(TRIma1,TRIma2) Then ExitShort(); }