커뮤니티

시스템식문의

프로필 이미지
dfsfg
2004-04-29 13:31:19
713
글번호 3434
답변완료
//매수식 if bposition != 1 then Begin if Cond1 then { buy(); buyCond = 1; bposition = 1; } if Cond2 then { buy(); buyCond = 2; bposition = 1; } if Cond3 then { buy(); buyCond = 3; bposition = 1; } End; //매수청산식 if buyCond == 1 and Cond4 then { exitlong(); bPosition = 0; } if buyCond == 2 and Cond5 then { exitlong(); bPosition = 0; } if buyCond == 3 and Cond6 then { exitlong(); bPosition = 0; } 다음과 같이 진입조건에 따른 청산식을 작성하였는데 만약에 cnd4에 경우는 매수청산과 동시에 매도진입을 하려고 합니다. 그러면 if buyCond == 1 and Cond4 then { sell(); bPosition = 0; } 이렇게 작성하면 된다고 생각했는데 청산과과 동시에 진입은 되는데 제가 설정해놓은 목표가 청산이 되는경우 청산후 청산가 보다 위나 아래로 가면 기존방향으로 재진입이 됩니다. 다시말하면 if buyCond == 1 and Cond4 then { sell(); bPosition = 0; } 이조건이 또 만족하면서 실행된다고 생각되는데 어찌하여 이런 현상이 발생하는것인지 조언을 부탁드립니다......
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2004-04-29 16:10:19

안녕하세요? 예스스탁입니다... buyCond는 단지 이전에 조건이 발생했는지 안했는지를 파악합니다. 따라서, 실제로 현재 포지션이 어떤지를 명확하게 한다면 문제가 해결될 것 같습니다... 정확한 식이 없기 때문에 테스트 하기가 곤란한 관계로 위와 같은 경우가 발생할 수 있다고 말씀드린 것이며 문제해결이 되지 않을 경우 전체 식을 알려주셔야 보다 빨리 문제를 찾을 수 있을 것입니다. 아래의 식은 임의로 조건을 설정해서 식을 작성해 본 것입니다. var : cond1(0), cond2(0), cond3(0), cond4(0), cond5(0), cond6(0), buycond(0); cond1 = crossup(c, ma(c, 10)); cond2 = crossup(ma(c, 5), ma(c, 20)); cond3 = crossup(stochasticsk(12,5), stochasticsd(12,5,5)); cond4 = crossdown(c, ma(c, 10)); cond5 = crossdown(ma(c, 5), ma(c, 20)); cond6 = crossdown(stochasticsk(12,5), stochasticsd(12,5,5)); if date != date[1] then buyCond = 0; //매수식 if MarketPosition() != 1 then Begin if Cond1 then { buy("1"); buyCond = 1; } else if Cond2 then { buy("2"); buyCond = 2; } else if Cond3 then { buy("3"); buyCond = 3; } End; //매수청산식 if marketposition() == 1 then Begin if buyCond == 1 and Cond4 then sell("4"); End; if marketposition() == 1 then Begin if buyCond == 2 and Cond5 then exitlong("5"); End; if marketposition() == 1 then Begin if buyCond == 3 and Cond6 then exitlong("6"); End; 감사합니다... > dfsfg 님이 쓴 글입니다. > 제목 : 시스템식문의 > //매수식 if bposition != 1 then Begin if Cond1 then { buy(); buyCond = 1; bposition = 1; } if Cond2 then { buy(); buyCond = 2; bposition = 1; } if Cond3 then { buy(); buyCond = 3; bposition = 1; } End; //매수청산식 if buyCond == 1 and Cond4 then { exitlong(); bPosition = 0; } if buyCond == 2 and Cond5 then { exitlong(); bPosition = 0; } if buyCond == 3 and Cond6 then { exitlong(); bPosition = 0; } 다음과 같이 진입조건에 따른 청산식을 작성하였는데 만약에 cnd4에 경우는 매수청산과 동시에 매도진입을 하려고 합니다. 그러면 if buyCond == 1 and Cond4 then { sell(); bPosition = 0; } 이렇게 작성하면 된다고 생각했는데 청산과과 동시에 진입은 되는데 제가 설정해놓은 목표가 청산이 되는경우 청산후 청산가 보다 위나 아래로 가면 기존방향으로 재진입이 됩니다. 다시말하면 if buyCond == 1 and Cond4 then { sell(); bPosition = 0; } 이조건이 또 만족하면서 실행된다고 생각되는데 어찌하여 이런 현상이 발생하는것인지 조언을 부탁드립니다......