커뮤니티

청산후 재진입가 조정

프로필 이미지
엠씨용가
2020-05-28 19:09:26
2510
글번호 139331
답변완료
질문은 크게 두가지 입니다 1. 재 진입시 진입가격 정정 매수/매도 포지션 보유 중 청산조건에 부합하여 청산한 뒤에 재진입할 경우 진입가를 정정하고 싶습니다 기초 진입은 L1~L3, S1~S3 하되 청산조건에 부합하여 청산하면 NL1 ~ NL3, NS1~ NS3 로 진입가를 정정하고 싶습니다 그리고 NL1 ~ NL3 진입가 수식은 NL1 = 매수포지션 보유중에 청산조건에 부합하여 마지막으로 청산된 가격에서 + LTR NL2 = NL1 + LTR * 0.5 NL3 = NL1 + LTR NS1 ~ NS3 진입가 수식은 NS1 = 매도포지션 보유중에 청산조건에 부합하여 마지막으로 청산된 가격에서 - STR NS2 = NS1 - STR * 0.5 NS3 = NS1 - STR 2. 재 진입 이후 청산조건 - 재 진입을 하고 나서 청산조건을 새로 작성해야되는지 궁금합니다! # ENTRY L1 = DAYOPEN + LTR ; L2 = L1 + (LTR * 0.5); L3 = L1 + LTR; S1 = DAYOPEN - STR; S2 = S1 - (STR * 0.5); S3 = S1 - STR; IF MarketPosition == 0 AND BDATE != EXITDATE(1) Then { IF H < L1 AND NEXTBARSDATE == SDATE Then BUY("L1",ATSTOP,L1); IF L > S1 AND NextBarSdate == SDATE THEN SELL("S1",ATSTOP,S1); } # 매수 피라미딩 IF MarketPosition == 1 AND STIME <153000 THEN { if highest(h,BarsSinceEntry) < L2 Then buy("L2",ATSTOP,L2); if highest(h,BarsSinceEntry) < L1 + LTR Then buy("L3",ATSTOP, L3); } # 매수청산 IF MarketPosition == 1 then { if NextBarSdate == SDATE Then ExitLong("LS",AtStop,LatestEntryPrice - LTR); NL1 = LatestEntryPrice(1); NL2 = NL1 + LTR * 0.5; NL3 = NL1 + LTR; IF NextBarSdate != SDATE Then ExitLong("EL",ATMARKET); } # 매도 피라미딩 IF MarketPosition == -1 AND STIME < 153000 THEN { IF Lowest(L,BarsSinceEntry) > S2 Then SELL("S2",AtStop,S2); IF Lowest(L,BarsSinceEntry) > S1 - STR Then SELL("S3",AtStop,S3); } # 매도청산 IF MarketPosition == -1 then { IF NextBarSdate == SDATE Then EXITSHORT("SS",AtStop,LatestEntryPrice + STR); NS1 = LatestEntryPrice(1); NS2 = NS1 - STR * 0.5; NS3 = NS1 - Str; SetStopEndofday(); } ELSE SetStopEndofday(0); #해제 # 재진입 IF MARKETPOSITION == 0 AND BDATE == EXITDATE(1) THEN { IF LatestExitName(1) == "LS" AND H < NL1 AND NextBarSdate == sDate THEN BUY("NL1",ATSTOP,NL1); IF LatestExitName(1) == "SS" AND L > NS1 AND NextBarSdate == sDate THEN SELL("SN1", ATSTOP,NS1); } # 재진입 피라미딩 IF BDATE == EXITDATE(1) THEN { IF LatestEntryName == "NL1" AND Highest(H,BarsSinceEntry) < NL2 THEN BUY("NL2",ATSTOP,NL2); IF LatestEntryName == "NL2" AND Highest(H,BarsSinceEntry) < NL3 THEN BUY("NL3",ATSTOP,NL3); IF LatestEntryName == "NS1" AND Lowest(L,BarsSinceEntry) > NS2 THEN SELL("NS2",ATSTOP,NS2); IF LatestEntryName == "NS2" AND Lowest(L,BarsSinceEntry) > NS3 THEN SELL("NS3",ATSTOP,NS2); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-05-29 11:26:31

안녕하세요 예스스탁입니다. 청산은 수정할 필요가 없습니다. 재집입도 동일하게 적용됩니다. L1 = DAYOPEN + LTR ; L2 = L1 + (LTR * 0.5); L3 = L1 + LTR; S1 = DAYOPEN - STR; S2 = S1 - (STR * 0.5); S3 = S1 - STR; NL1 = LatestEntryPrice(1)+LTR; NL2 = NL1 + LTR * 0.5; NL3 = NL1 + LTR; NS1 = LatestEntryPrice(1)-STR; NS2 = NS1 - STR * 0.5; NS3 = NS1 - Str; IF MarketPosition == 0 AND BDATE != EXITDATE(1) Then { IF H < L1 AND NEXTBARSDATE == SDATE Then BUY("L1",ATSTOP,L1); IF L > S1 AND NextBarSdate == SDATE THEN SELL("S1",ATSTOP,S1); } # 매수 피라미딩 IF MarketPosition == 1 AND STIME <153000 and IsEntryName("L1") == true THEN { if highest(h,BarsSinceEntry) < L2 Then buy("L2",ATSTOP,L2); if highest(h,BarsSinceEntry) < L1 + LTR Then buy("L3",ATSTOP, L3); } # 매수청산 IF MarketPosition == 1 then { if NextBarSdate == SDATE Then ExitLong("LS",AtStop,LatestEntryPrice - LTR); IF NextBarSdate != SDATE Then ExitLong("EL",ATMARKET); } # 매도 피라미딩 IF MarketPosition == -1 AND STIME < 153000 and IsEntryName("S1") == true THEN { IF Lowest(L,BarsSinceEntry) > S2 Then SELL("S2",AtStop,S2); IF Lowest(L,BarsSinceEntry) > S1 - STR Then SELL("S3",AtStop,S3); } # 매도청산 IF MarketPosition == -1 then { IF NextBarSdate == SDATE Then EXITSHORT("SS",AtStop,LatestEntryPrice + STR); SetStopEndofday(); } ELSE SetStopEndofday(0); #해제 # 재진입 IF MARKETPOSITION == 0 AND BDATE == EXITDATE(1) THEN { IF MarketPosition(1) == 1 AND H < NL1 AND NextBarSdate == sDate THEN BUY("NL1",ATSTOP,NL1); IF MarketPosition(1) == -1 AND L > NS1 AND NextBarSdate == sDate THEN SELL("SN1", ATSTOP,NS1); } # 재진입 피라미딩 IF BDATE == EXITDATE(1) and MarketPosition == 1 and IsEntryName("NL1") == true EN { IF LatestEntryName == "NL1" AND Highest(H,BarsSinceEntry) < NL2 THEN BUY("NL2",ATSTOP,NL2); IF LatestEntryName == "NL2" AND Highest(H,BarsSinceEntry) < NL3 THEN BUY("NL3",ATSTOP,NL3); } IF BDATE == EXITDATE(1) and MarketPosition == -1 and IsEntryName("SN1") == true THEN { IF LatestEntryName == "NS1" AND Lowest(L,BarsSinceEntry) > NS2 THEN SELL("NS2",ATSTOP,NS2); IF LatestEntryName == "NS2" AND Lowest(L,BarsSinceEntry) > NS3 THEN SELL("NS3",ATSTOP,NS2); } 즐거운 하루되세요 > 엠씨용가 님이 쓴 글입니다. > 제목 : 청산후 재진입가 조정 > 질문은 크게 두가지 입니다 1. 재 진입시 진입가격 정정 매수/매도 포지션 보유 중 청산조건에 부합하여 청산한 뒤에 재진입할 경우 진입가를 정정하고 싶습니다 기초 진입은 L1~L3, S1~S3 하되 청산조건에 부합하여 청산하면 NL1 ~ NL3, NS1~ NS3 로 진입가를 정정하고 싶습니다 그리고 NL1 ~ NL3 진입가 수식은 NL1 = 매수포지션 보유중에 청산조건에 부합하여 마지막으로 청산된 가격에서 + LTR NL2 = NL1 + LTR * 0.5 NL3 = NL1 + LTR NS1 ~ NS3 진입가 수식은 NS1 = 매도포지션 보유중에 청산조건에 부합하여 마지막으로 청산된 가격에서 - STR NS2 = NS1 - STR * 0.5 NS3 = NS1 - STR 2. 재 진입 이후 청산조건 - 재 진입을 하고 나서 청산조건을 새로 작성해야되는지 궁금합니다! # ENTRY L1 = DAYOPEN + LTR ; L2 = L1 + (LTR * 0.5); L3 = L1 + LTR; S1 = DAYOPEN - STR; S2 = S1 - (STR * 0.5); S3 = S1 - STR; IF MarketPosition == 0 AND BDATE != EXITDATE(1) Then { IF H < L1 AND NEXTBARSDATE == SDATE Then BUY("L1",ATSTOP,L1); IF L > S1 AND NextBarSdate == SDATE THEN SELL("S1",ATSTOP,S1); } # 매수 피라미딩 IF MarketPosition == 1 AND STIME <153000 THEN { if highest(h,BarsSinceEntry) < L2 Then buy("L2",ATSTOP,L2); if highest(h,BarsSinceEntry) < L1 + LTR Then buy("L3",ATSTOP, L3); } # 매수청산 IF MarketPosition == 1 then { if NextBarSdate == SDATE Then ExitLong("LS",AtStop,LatestEntryPrice - LTR); NL1 = LatestEntryPrice(1); NL2 = NL1 + LTR * 0.5; NL3 = NL1 + LTR; IF NextBarSdate != SDATE Then ExitLong("EL",ATMARKET); } # 매도 피라미딩 IF MarketPosition == -1 AND STIME < 153000 THEN { IF Lowest(L,BarsSinceEntry) > S2 Then SELL("S2",AtStop,S2); IF Lowest(L,BarsSinceEntry) > S1 - STR Then SELL("S3",AtStop,S3); } # 매도청산 IF MarketPosition == -1 then { IF NextBarSdate == SDATE Then EXITSHORT("SS",AtStop,LatestEntryPrice + STR); NS1 = LatestEntryPrice(1); NS2 = NS1 - STR * 0.5; NS3 = NS1 - Str; SetStopEndofday(); } ELSE SetStopEndofday(0); #해제 # 재진입 IF MARKETPOSITION == 0 AND BDATE == EXITDATE(1) THEN { IF LatestExitName(1) == "LS" AND H < NL1 AND NextBarSdate == sDate THEN BUY("NL1",ATSTOP,NL1); IF LatestExitName(1) == "SS" AND L > NS1 AND NextBarSdate == sDate THEN SELL("SN1", ATSTOP,NS1); } # 재진입 피라미딩 IF BDATE == EXITDATE(1) THEN { IF LatestEntryName == "NL1" AND Highest(H,BarsSinceEntry) < NL2 THEN BUY("NL2",ATSTOP,NL2); IF LatestEntryName == "NL2" AND Highest(H,BarsSinceEntry) < NL3 THEN BUY("NL3",ATSTOP,NL3); IF LatestEntryName == "NS1" AND Lowest(L,BarsSinceEntry) > NS2 THEN SELL("NS2",ATSTOP,NS2); IF LatestEntryName == "NS2" AND Lowest(L,BarsSinceEntry) > NS3 THEN SELL("NS3",ATSTOP,NS2); }