커뮤니티

문의드립니다.

프로필 이미지
도시군인
2011-05-28 13:16:03
656
글번호 39188
답변완료
안녕하세요? 매번 큰 도움 주셔서 항상 감사하고 있습니다. 저번질문에서, KODEX200을 대상으로 한 현물포지션 로직의 반대방향으로 KODEX인버스 주문이 나가게 수식을 작성해달라고 부탁드렸고, 답변을 잘 받았습니다. 작성해주신 로직을 보고 정말 감탄했습니다. 이렇게 하면 되는구나.. 그런데 실제 로직을 적용해보니, 결과가 다음과 같이 차이가 나더군요. ==================================================================== 시스템 성능 보고서 거래내역 ==================================================================== 종목명(시스템명) : KODEX 200(Impuls System(일봉)-종합주가지수참조(13,12,26,9,5,5,8,25,65,60,130,45,0.0045,0.1)) 주기(기간) : 일 (2010/02/22 ~ 2011/05/27) 진입일시 진입종류 진입명 진입가격(원) 청산일시 청산종류 청산명 청산가격(원) 2010/02/22 매수 _BuyNo1 21,760.00 2010/04/28 매수청산 EL_파라볼릭청산 22,925.00 2010/06/11 매수 _BuyNo1 22,060.00 2010/08/12 매수청산 EL_파라볼릭청산 22,655.00 2010/08/19 매수 _BuyNo1 23,290.00 2010/10/20 매수청산 EL_파라볼릭청산 23,925.00 2010/10/25 매수 _BuyNo1 24,895.00 2011/01/21 매수청산 EL_파라볼릭청산 27,715.00 2011/03/21 매수 _BuyNo1 26,955.00 2011/05/06 매수청산 EL_파라볼릭청산 28,810.00 ==================================================================== 시스템 성능 보고서 거래내역 ==================================================================== 종목명(시스템명) : KODEX 인버스(Impuls System(일봉)-종합주가지수참조(13,12,26,9,5,5,8,25,65,60,130,45,0.0045,0.1)) 주기(기간) : 일 (2010/02/22 ~ 2011/05/27) 진입일시 진입종류 진입명 진입가격(원) 청산일시 청산종류 청산명 청산가격(원) 2010/02/22 매수 _BuyNo1 9,820.00 2010/09/06 매수청산 EL_파라볼릭청산 8,890.00 2010/09/06 매수 _BuyNo1 8,910.00 2010/09/29 매수청산 ExitLong 8,535.00 2010/09/29 매수 _BuyNo1 8,535.00 2010/10/25 매수청산 EL_파라볼릭청산 8,350.00 2010/10/25 매수 _BuyNo1 8,350.00 2010/12/07 매수청산 ExitLong 8,010.00 2010/12/07 매수 _BuyNo1 8,010.00 2010/12/29 매수청산 ExitLong 7,650.00 2010/12/29 매수 _BuyNo1 7,595.00 2011/01/27 매수청산 EL_파라볼릭청산 7,385.00 2011/03/21 매수 _BuyNo1 7,780.00 2011/04/21 매수청산 ExitLong 7,120.00 2011/04/21 매수 _BuyNo1 7,045.00 2011/05/27 평가 7,430.00 이렇게 차이나 나는 이유를 분석해주실시 있나요? 참고로 로직 원문 올립니다. // KODEX200 참조 KODEX200 적용 Input : EmaLen(13), macd1(12), macd2(26), macd3(9), stoploss(5), len(5), mult(8), DiV(25); input: LongEmaLen(65), Longmacd1(60), Longmacd2(130), Longmacd3(45); var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0); var : mp(0), stopprice(0), LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0); emaV = data2(ema(C,EmaLen)); MacdV = data2(macd(macd1,macd2)); MacdS = data2(ema(MacdV,macd3)); MacdOsc = MacdV-MacdS; LemaV = data2(ema(C,LongEmaLen)); LmacdV = data2(macd(Longmacd1,Longmacd2)); LmacdS = data2(ema(LmacdV,Longmacd3)); LmacdOsc = LmacdV-LmacdS; If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then { if emaV > emaV[1] and macdOsc > MacdOsc[1] Then buy(); } mp = marketposition; #mp에 marketposition if MP == 1 and MP[1] <> 1 then Begin StopPrice = low - ma(range,4)*mult; end; If MP == 1 then begin exitlong ("ExitLong", atstop,stopprice ); stopprice = stopprice +( low-stopprice )/Div; end; input : af(0.0045), maxaf(0.1); var : parabolic(0); parabolic = sar(af, maxaf); if MarketPosition <> 0 then { if c > parabolic Then exitlong("EL_파라볼릭청산", ATSTOP, PARABOLIC); } 그리고, 아래는 저번에 작성해주신 로직입니다. Input : EmaLen(13), macd1(12), macd2(26), macd3(9), stoploss(5), len(5), mult(8), DiV(25); input: LongEmaLen(65), Longmacd1(60), Longmacd2(130), Longmacd3(45); input : af(0.0045), maxaf(0.1); var : emaV(0,data2), MacdV(0,data2), MacdS(0,data2), MacdOsc(0,data2); var : stopprice(0,data2), LemaV(0,data2), LmacdV(0,data2), LmacdS(0,data2), LmacdOsc(0,data2); var : parabolic(0,data2),cond1(false,data2),va1(0,data2),va2(0,data2); parabolic = data2(sar(af, maxaf)); emaV = data2(ema(C,EmaLen)); MacdV = data2(macd(macd1,macd2)); MacdS = data2(ema(MacdV,macd3)); MacdOsc = data2(MacdV-MacdS); LemaV = data2(ema(C,LongEmaLen)); LmacdV = data2(macd(Longmacd1,Longmacd2)); LmacdS = data2(ema(LmacdV,Longmacd3)); LmacdOsc = data2(LmacdV-LmacdS); cond1 = LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] and emaV > emaV[1] and macdOsc > MacdOsc[1]; if va1 == 0 and cond1[1] == true Then{ va1 = 1; } if va1 == 0 and cond1 == true Then ExitLong(); if va1 == 1 and va1[1] == 0 then { StopPrice = data2(low - ma(range,4)*mult); } If va1 == 1 then { if data2(L) <= stopprice Then{ va1 = 0; buy(); } stopprice = stopprice+(data2(l)-stopprice)/Div; } if va1 == 1 then { if data2(c[1]) > parabolic[1] and data2(L) <= parabolic[1] Then{ va1 = 0; buy(); } } 부탁 좀 드리겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-05-30 11:52:04

안녕하세요 예스스탁입니다. 해당식 원문로직이 다릅니다. 이전글을 보시면 이전글에 올리신 원로직은 참조종목을 사용하지 않았습니다. 아래식을 변경해서 올려드린것입니다. 현재 원문으로 올리신식은 원문이 이전값을 참조하는 식입니다. Input : EmaLen(13), macd1(12), macd2(26), macd3(9), stoploss(5), len(5), mult(8), DiV(25); input: LongEmaLen(65), Longmacd1(60), Longmacd2(130), Longmacd3(45); var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0); var : mp(0), stopprice(0), LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0); emaV = ema(C,EmaLen); MacdV = macd(macd1,macd2); MacdS = ema(MacdV,macd3); MacdOsc = MacdV-MacdS; LemaV = ema(C,LongEmaLen); LmacdV = macd(Longmacd1,Longmacd2); LmacdS = ema(LmacdV,Longmacd3); LmacdOsc = LmacdV-LmacdS; If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then { if emaV > emaV[1] and macdOsc > MacdOsc[1] Then buy(); } mp = marketposition; if MP == 1 and MP[1] <> 1 then Begin StopPrice = low - ma(range,4)*mult; end; If MP == 1 then begin exitlong ("ExitLong", atstop,stopprice ); stopprice = stopprice +( low-stopprice )/Div; end; input : af(0.002), maxaf(0.2); var : parabolic(0); parabolic = sar(af, maxaf); if MarketPosition <> 0 then { if c > parabolic Then exitlong("EL_파라볼릭청산", ATSTOP, PARABOLIC); } 즐거운 하루되세요 > 도시군인 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요? 매번 큰 도움 주셔서 항상 감사하고 있습니다. 저번질문에서, KODEX200을 대상으로 한 현물포지션 로직의 반대방향으로 KODEX인버스 주문이 나가게 수식을 작성해달라고 부탁드렸고, 답변을 잘 받았습니다. 작성해주신 로직을 보고 정말 감탄했습니다. 이렇게 하면 되는구나.. 그런데 실제 로직을 적용해보니, 결과가 다음과 같이 차이가 나더군요. ==================================================================== 시스템 성능 보고서 거래내역 ==================================================================== 종목명(시스템명) : KODEX 200(Impuls System(일봉)-종합주가지수참조(13,12,26,9,5,5,8,25,65,60,130,45,0.0045,0.1)) 주기(기간) : 일 (2010/02/22 ~ 2011/05/27) 진입일시 진입종류 진입명 진입가격(원) 청산일시 청산종류 청산명 청산가격(원) 2010/02/22 매수 _BuyNo1 21,760.00 2010/04/28 매수청산 EL_파라볼릭청산 22,925.00 2010/06/11 매수 _BuyNo1 22,060.00 2010/08/12 매수청산 EL_파라볼릭청산 22,655.00 2010/08/19 매수 _BuyNo1 23,290.00 2010/10/20 매수청산 EL_파라볼릭청산 23,925.00 2010/10/25 매수 _BuyNo1 24,895.00 2011/01/21 매수청산 EL_파라볼릭청산 27,715.00 2011/03/21 매수 _BuyNo1 26,955.00 2011/05/06 매수청산 EL_파라볼릭청산 28,810.00 ==================================================================== 시스템 성능 보고서 거래내역 ==================================================================== 종목명(시스템명) : KODEX 인버스(Impuls System(일봉)-종합주가지수참조(13,12,26,9,5,5,8,25,65,60,130,45,0.0045,0.1)) 주기(기간) : 일 (2010/02/22 ~ 2011/05/27) 진입일시 진입종류 진입명 진입가격(원) 청산일시 청산종류 청산명 청산가격(원) 2010/02/22 매수 _BuyNo1 9,820.00 2010/09/06 매수청산 EL_파라볼릭청산 8,890.00 2010/09/06 매수 _BuyNo1 8,910.00 2010/09/29 매수청산 ExitLong 8,535.00 2010/09/29 매수 _BuyNo1 8,535.00 2010/10/25 매수청산 EL_파라볼릭청산 8,350.00 2010/10/25 매수 _BuyNo1 8,350.00 2010/12/07 매수청산 ExitLong 8,010.00 2010/12/07 매수 _BuyNo1 8,010.00 2010/12/29 매수청산 ExitLong 7,650.00 2010/12/29 매수 _BuyNo1 7,595.00 2011/01/27 매수청산 EL_파라볼릭청산 7,385.00 2011/03/21 매수 _BuyNo1 7,780.00 2011/04/21 매수청산 ExitLong 7,120.00 2011/04/21 매수 _BuyNo1 7,045.00 2011/05/27 평가 7,430.00 이렇게 차이나 나는 이유를 분석해주실시 있나요? 참고로 로직 원문 올립니다. // KODEX200 참조 KODEX200 적용 Input : EmaLen(13), macd1(12), macd2(26), macd3(9), stoploss(5), len(5), mult(8), DiV(25); input: LongEmaLen(65), Longmacd1(60), Longmacd2(130), Longmacd3(45); var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0); var : mp(0), stopprice(0), LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0); emaV = data2(ema(C,EmaLen)); MacdV = data2(macd(macd1,macd2)); MacdS = data2(ema(MacdV,macd3)); MacdOsc = MacdV-MacdS; LemaV = data2(ema(C,LongEmaLen)); LmacdV = data2(macd(Longmacd1,Longmacd2)); LmacdS = data2(ema(LmacdV,Longmacd3)); LmacdOsc = LmacdV-LmacdS; If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then { if emaV > emaV[1] and macdOsc > MacdOsc[1] Then buy(); } mp = marketposition; #mp에 marketposition if MP == 1 and MP[1] <> 1 then Begin StopPrice = low - ma(range,4)*mult; end; If MP == 1 then begin exitlong ("ExitLong", atstop,stopprice ); stopprice = stopprice +( low-stopprice )/Div; end; input : af(0.0045), maxaf(0.1); var : parabolic(0); parabolic = sar(af, maxaf); if MarketPosition <> 0 then { if c > parabolic Then exitlong("EL_파라볼릭청산", ATSTOP, PARABOLIC); } 그리고, 아래는 저번에 작성해주신 로직입니다. Input : EmaLen(13), macd1(12), macd2(26), macd3(9), stoploss(5), len(5), mult(8), DiV(25); input: LongEmaLen(65), Longmacd1(60), Longmacd2(130), Longmacd3(45); input : af(0.0045), maxaf(0.1); var : emaV(0,data2), MacdV(0,data2), MacdS(0,data2), MacdOsc(0,data2); var : stopprice(0,data2), LemaV(0,data2), LmacdV(0,data2), LmacdS(0,data2), LmacdOsc(0,data2); var : parabolic(0,data2),cond1(false,data2),va1(0,data2),va2(0,data2); parabolic = data2(sar(af, maxaf)); emaV = data2(ema(C,EmaLen)); MacdV = data2(macd(macd1,macd2)); MacdS = data2(ema(MacdV,macd3)); MacdOsc = data2(MacdV-MacdS); LemaV = data2(ema(C,LongEmaLen)); LmacdV = data2(macd(Longmacd1,Longmacd2)); LmacdS = data2(ema(LmacdV,Longmacd3)); LmacdOsc = data2(LmacdV-LmacdS); cond1 = LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] and emaV > emaV[1] and macdOsc > MacdOsc[1]; if va1 == 0 and cond1[1] == true Then{ va1 = 1; } if va1 == 0 and cond1 == true Then ExitLong(); if va1 == 1 and va1[1] == 0 then { StopPrice = data2(low - ma(range,4)*mult); } If va1 == 1 then { if data2(L) <= stopprice Then{ va1 = 0; buy(); } stopprice = stopprice+(data2(l)-stopprice)/Div; } if va1 == 1 then { if data2(c[1]) > parabolic[1] and data2(L) <= parabolic[1] Then{ va1 = 0; buy(); } } 부탁 좀 드리겠습니다.