커뮤니티

문의드립니다.

프로필 이미지
별이777
2011-12-15 01:03:54
324
글번호 45786
답변완료
아래수식에서요. 시뮬레이션 5분봉 기준으로요. 날짜1 : 2011.12.14 ~ 2011.12.14 날짜2 : 2011.01.14 ~ 2011.12.14 이렇게 두번 시뮬레이션 해보면, 2011.12.14 일자 매도, 매도청산 결과가 다른데, 왜 그런지 알고싶습니다. 수식 : ------------------------- input : len(3.2), method(1),malen1(5),malen2(20),수익1(0.3), 손실1(0),전일고저(1); var : buyVal(0), sellVal(0); Var20=ma(close,malen1); var21=ma(close,malen2); if method == 1 then { var10 = (dayhigh(1)+dayLow(1)+dayClose(1))/3; //피봇 var11 = var10*2-dayLow(1); //1차저항 var12 = var10+dayHigh(1)-dayLow(1); //2차저항 var9 = var10*2-dayHIgh(1); //1차지지 var8 = var10 - dayhigh(1)+dayLow(1); //2차지지 } if var9 > dayOpen then { if stime <= 140000 Then if MarketPosition == 0 and date <> EntryDate(1) and dayindex > 0 and crossdown (c , dayclose(1)) then { sell("매도31" ); } ### 최대수익 대비 하락 (10% 수익후 5% 손실시) if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4 var2 = -1; sellVal = C; //문장5 messageLog("sellval1: % f c : %f ",sellVal, c); } if var2 == -1 then { if C > sellVal * (1 + 손실1/100) then //문장6 exitshort("TrailingStop(매수00)"); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-12-15 11:41:45

안녕하세요 예스스탁입니다. 작성된 식에서 var2부분 때문에 발생하는 문제입니다. 12월 14일 하루만 차트에서보면 이전일에 매도진입을 한적이 없으므로 12월 14일 11시 10분에 발생한 매도진입이후에 아래 조건을 만족하면 if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then var2값은 -1이 되고 이후 var2가 -1인 상태에서 if C > sellVal * (1 + 손실1/100) then 조건 만족하면 매도청산이 됩니다. 하지만 2011.01.14 ~ 2011.12.14 인 차트에서는 매도진입 이후에 특정조건 만족해야 -1로 변경되는 것이아니고 차트상 제일 첫번째 매도진입이 발생하고 var2에 -1일 할당된 이후에는 계속 var2는 -1이므로 이후 청산은 매도진입후 C < entryprice(0) * (1 - 수익1/100) 조건이 만족하지 않아도 var2가 계속 -1이므로 청산이 발동하게 됩니다. 그러므로 수식상에 var2가 청산이 되면 초기화되는 내용이 필요합니다. 청산식을 아래와 같이 작성해서 var2가 초기화되는 내용을 추가해 주시면 됩니다. ### 최대수익 대비 하락 (10% 수익후 5% 손실시) if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4 var2 = -1; sellVal = C; //문장5 } if var2 == -1 then { if C > sellVal * (1 + 손실1/100) then //문장6 exitshort("TrailingStop(매수00)"); } } #매도포지션이 아니면 var2는 0으로 초기화 if MarketPosition != -1 Then var2 = 0; 즐거운 하루되세요 > 별이777 님이 쓴 글입니다. > 제목 : 문의드립니다. > 아래수식에서요. 시뮬레이션 5분봉 기준으로요. 날짜1 : 2011.12.14 ~ 2011.12.14 날짜2 : 2011.01.14 ~ 2011.12.14 이렇게 두번 시뮬레이션 해보면, 2011.12.14 일자 매도, 매도청산 결과가 다른데, 왜 그런지 알고싶습니다. 수식 : ------------------------- input : len(3.2), method(1),malen1(5),malen2(20),수익1(0.3), 손실1(0),전일고저(1); var : buyVal(0), sellVal(0); Var20=ma(close,malen1); var21=ma(close,malen2); if method == 1 then { var10 = (dayhigh(1)+dayLow(1)+dayClose(1))/3; //피봇 var11 = var10*2-dayLow(1); //1차저항 var12 = var10+dayHigh(1)-dayLow(1); //2차저항 var9 = var10*2-dayHIgh(1); //1차지지 var8 = var10 - dayhigh(1)+dayLow(1); //2차지지 } if var9 > dayOpen then { if stime <= 140000 Then if MarketPosition == 0 and date <> EntryDate(1) and dayindex > 0 and crossdown (c , dayclose(1)) then { sell("매도31" ); } ### 최대수익 대비 하락 (10% 수익후 5% 손실시) if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4 var2 = -1; sellVal = C; //문장5 messageLog("sellval1: % f c : %f ",sellVal, c); } if var2 == -1 then { if C > sellVal * (1 + 손실1/100) then //문장6 exitshort("TrailingStop(매수00)"); } }