커뮤니티

두번의 진입을 하려고 합니다.

프로필 이미지
구름속태산
2009-01-19 00:02:50
712
글번호 19620
답변완료
안녕하세요 관리자님. 진입관련 질문있습니다. 9시와 9시1분에 양봉/음봉여부에 따라서 진입신호를 2번 주려고 합니다. 각각의 진입신호는 서로 독립적입니다. 제가 의도한 것은 9시에 양봉이면 매수/음봉이면 매도. 9시1분에 양봉이면 매수/음봉이면 매도이고. 청산은 9시에 진입한 신호는 14시59분 청산 9시1분 진입한 신호는 15시15분청산입니다. 그런데 진입관련 문제가 생기는 것은 9시 진입이 매수(+1)이고 9시1분진입이 매도(-1)인 경우, 제가 코딩을 한 의도는 9시 매수포지션진입(+1) 9시1분 매도포지션진입(-1) 총 (0) 이렇게 나오기를 원하는데요. 벡테스팅을 해보면 9시 매수포지션진입(+1) 9시1분 매수포지션청산(-1) 매도포지션진입(-1) 총 (-1)이 됩니다. (다른진입신호 모두 허용으로 했습니다) 이를 방지하기 위해서 buy와 sell진입시 이름을 각각 써주었는데요. 해결이 안되네요. 답변 주세요. 항상 감사합니다. 아래는 식입니다. var:dr(0),drr(0); If stime==90000 Then { if C>O Then { Buy("B2long",OnClose,DEF,1); drr=1; } Else { Sell("B2short",OnClose,DEF,1); drr=2; } } If stime==90100 Then { if C>O Then { Buy("B4long",OnClose,DEF,1); dr=1; } Else { Sell("B4short",OnClose,DEF,1); dr=2; } } If stime==145900 Then { if drr==1 Then { exitlong("B2exLong",OnClose,DEF,"B2long",1); drr=0; } Else If drr=2 Then { ExitShort("B2exShort",OnClose,DEF,"B2short",1); drr=0; } } If stime==151500 Then { if dr==1 Then { exitlong("B4exLong",OnClose,DEF,"B4long",1); dr=0; } Else If dr=2 Then { ExitShort("B4exShort",OnClose,DEF,"B4short",1); dr=0; } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-01-19 22:24:21

안녕하세요? 예스스탁입니다. 아래와 같이 작성해 보았습니다. var : drr(0), dr(0); if date<> date[1] Then { drr = 0; dr = 0; } if stime == 90000 Then { if C > O Then { buy("B2long"); drr = 1; } if C < O Then { sell("B2short"); drr = 1; } } if stime == 90100 then { if marketposition == 1 Then { if C > O Then { buy("B4long"); dr = 2; } if C < O Then exitlong(); } if marketposition == -1 then { if C < O Then { sell("B4short"); dr = 2; } if C > O Then exitshort(); } } If stime==145900 Then { if drr==1 Then { exitlong("B2exLong",OnClose,DEF,"B2long",1); drr=0; } Else If drr=2 Then { ExitShort("B2exShort",OnClose,DEF,"B2short",1); drr=0; } } If stime==151500 Then { if dr==2 Then { exitlong("B4exLong",OnClose,DEF,"B4long",1); dr=0; } Else If dr=2 Then { ExitShort("B4exShort",OnClose,DEF,"B4short",1); dr=0; } } > 구름속태산 님이 쓴 글입니다. > 제목 : 두번의 진입을 하려고 합니다. > 안녕하세요 관리자님. 진입관련 질문있습니다. 9시와 9시1분에 양봉/음봉여부에 따라서 진입신호를 2번 주려고 합니다. 각각의 진입신호는 서로 독립적입니다. 제가 의도한 것은 9시에 양봉이면 매수/음봉이면 매도. 9시1분에 양봉이면 매수/음봉이면 매도이고. 청산은 9시에 진입한 신호는 14시59분 청산 9시1분 진입한 신호는 15시15분청산입니다. 그런데 진입관련 문제가 생기는 것은 9시 진입이 매수(+1)이고 9시1분진입이 매도(-1)인 경우, 제가 코딩을 한 의도는 9시 매수포지션진입(+1) 9시1분 매도포지션진입(-1) 총 (0) 이렇게 나오기를 원하는데요. 벡테스팅을 해보면 9시 매수포지션진입(+1) 9시1분 매수포지션청산(-1) 매도포지션진입(-1) 총 (-1)이 됩니다. (다른진입신호 모두 허용으로 했습니다) 이를 방지하기 위해서 buy와 sell진입시 이름을 각각 써주었는데요. 해결이 안되네요. 답변 주세요. 항상 감사합니다. 아래는 식입니다. var:dr(0),drr(0); If stime==90000 Then { if C>O Then { Buy("B2long",OnClose,DEF,1); drr=1; } Else { Sell("B2short",OnClose,DEF,1); drr=2; } } If stime==90100 Then { if C>O Then { Buy("B4long",OnClose,DEF,1); dr=1; } Else { Sell("B4short",OnClose,DEF,1); dr=2; } } If stime==145900 Then { if drr==1 Then { exitlong("B2exLong",OnClose,DEF,"B2long",1); drr=0; } Else If drr=2 Then { ExitShort("B2exShort",OnClose,DEF,"B2short",1); drr=0; } } If stime==151500 Then { if dr==1 Then { exitlong("B4exLong",OnClose,DEF,"B4long",1); dr=0; } Else If dr=2 Then { ExitShort("B4exShort",OnClose,DEF,"B4short",1); dr=0; } }