커뮤니티

조건별 청산시스템

프로필 이미지
태산
2004-12-30 13:25:46
938
글번호 6208
답변완료
아래수식은 예스스탁에 답글로 올린 조건별 청산시스템입니다. 그런데 실제로 적용해보면 의도하는 결과치가 안나오는데, 예를들면 2004.03.08의 매매내역을 보면 매수조건2에 진입하여 청산조건3에 청산되는 데 무엇이 잘못 되었는지? var : slowK(0), slowD(0), macdV(0), macdS(0), ma1(0), ma2(0); var : Cond1(0), Cond2(0), Cond3(0), Cond4(0), Cond5(0), Cond6(0), buyCond(0), bPosition(0); slowK = stochasticsK(20,12); //stochastics slowK선 slowD = stochasticsD(20,12,12); //stochastics slowD선 macdV = macd(12,26); //macd선 macdS = ema(macdV,9); //macd signal선 ma1 = ma(C,5); //단기이동평균 ma2 = ma(C,20); //장기이동평균 Cond1 = CrossUp(slowK, slowD); //매수조건1 Cond2 = CrossUp(macdV, macdS); //매수조건2 Cond3 = CrossUp(ma1, ma2); //매수조건3 Cond4 = CrossDown(slowK, slowD); //매수청산조건1 Cond5 = CrossDown(macdV, macdS); //매수청산조건2 Cond6 = CrossDown(ma1, ma2); //매수청산조건3 //매수식 if bposition != 1 then Begin if Cond1 then { buy("매수1"); buyCond = 1; bposition = 1; } if Cond2 then { buy("매수2"); buyCond = 2; bposition = 1; } if Cond3 then { buy("매수3"); buyCond = 3; bposition = 1; } End; //매수청산식 if buyCond == 1 and Cond4 then { exitlong("수청1"); bPosition = 0; } if buyCond == 2 and Cond5 then { exitlong("수청2"); bPosition = 0; } if buyCond == 3 and Cond6 then { exitlong("수청3"); bPosition = 0; }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2005-01-11 09:06:41

var : slowK(0), slowD(0), macdV(0), macdS(0), ma1(0), ma2(0); var : Cond1(0), Cond2(0), Cond3(0), Cond4(0), Cond5(0), Cond6(0), buyCond(0), bPosition(0),cnt(0); slowK = stochasticsK(20,12); //stochastics slowK선 slowD = stochasticsD(20,12,12); //stochastics slowD선 macdV = macd(12,26); //macd선 macdS = ema(macdV,9); //macd signal선 ma1 = ma(C,5); //단기이동평균 ma2 = ma(C,20); //장기이동평균 Cond1 = CrossUp(slowK, slowD); //매수조건1 Cond2 = CrossUp(macdV, macdS); //매수조건2 Cond3 = CrossUp(ma1, ma2); //매수조건3 Cond4 = CrossDown(slowK, slowD); //매수청산조건1 Cond5 = CrossDown(macdV, macdS); //매수청산조건2 Cond6 = CrossDown(ma1, ma2); //매수청산조건3 //매수식 if bposition != 1 then Begin if Cond1 and cnt < 1 then { buy("매수1"); buyCond = 1; bposition = 1; cnt = cnt+1; } if Cond2 and cnt < 1then { buy("매수2"); buyCond = 2; bposition = 1; cnt = cnt+1; } if Cond3 and cnt < 1 then { buy("매수3"); buyCond = 3; bposition = 1; cnt = cnt+1; } End; //매수청산식 if buyCond == 1 and Cond4 then { exitlong("수청1"); bPosition = 0; cnt = 0; } if buyCond == 2 and Cond5 then { exitlong("수청2"); bPosition = 0; cnt = 0; } if buyCond == 3 and Cond6 then { exitlong("수청3"); bPosition = 0; cnt = 0; } 이용에 불편을 드려 죄송합니다. 즐거운 하루되시고 새해 복 많이 받으세요 > 태산 님이 쓴 글입니다. > 제목 : 조건별 청산시스템 > 아래수식은 예스스탁에 답글로 올린 조건별 청산시스템입니다. 그런데 실제로 적용해보면 의도하는 결과치가 안나오는데, 예를들면 2004.03.08의 매매내역을 보면 매수조건2에 진입하여 청산조건3에 청산되는 데 무엇이 잘못 되었는지? var : slowK(0), slowD(0), macdV(0), macdS(0), ma1(0), ma2(0); var : Cond1(0), Cond2(0), Cond3(0), Cond4(0), Cond5(0), Cond6(0), buyCond(0), bPosition(0); slowK = stochasticsK(20,12); //stochastics slowK선 slowD = stochasticsD(20,12,12); //stochastics slowD선 macdV = macd(12,26); //macd선 macdS = ema(macdV,9); //macd signal선 ma1 = ma(C,5); //단기이동평균 ma2 = ma(C,20); //장기이동평균 Cond1 = CrossUp(slowK, slowD); //매수조건1 Cond2 = CrossUp(macdV, macdS); //매수조건2 Cond3 = CrossUp(ma1, ma2); //매수조건3 Cond4 = CrossDown(slowK, slowD); //매수청산조건1 Cond5 = CrossDown(macdV, macdS); //매수청산조건2 Cond6 = CrossDown(ma1, ma2); //매수청산조건3 //매수식 if bposition != 1 then Begin if Cond1 then { buy("매수1"); buyCond = 1; bposition = 1; } if Cond2 then { buy("매수2"); buyCond = 2; bposition = 1; } if Cond3 then { buy("매수3"); buyCond = 3; bposition = 1; } End; //매수청산식 if buyCond == 1 and Cond4 then { exitlong("수청1"); bPosition = 0; } if buyCond == 2 and Cond5 then { exitlong("수청2"); bPosition = 0; } if buyCond == 3 and Cond6 then { exitlong("수청3"); bPosition = 0; }