커뮤니티

재문의 드립니다.

프로필 이미지
가자아이
2025-01-02 18:01:00
507
글번호 186822
답변완료
보내주신 서식으로 시뮬레이션을 했으나 생각과 다른 매매가 이루어져 다시 여쭙습니다. 다시 문의 드립니다. 1. 미국 미니 나스닥100 5분봉 2. 미국시간으로 19:30분에 시스템 시작 3. 미국시간으로 그 다음날 01:20분에 청산 (약 6시간만 매매, 그 외의 시간은 아무런 매매가 이루지지 않음) 4. 5분봉 기준으로 19:30분부터 3개의 봉이 지나고 4개째 봉부터 매수/매도 체결 input : StartTime(093000),EndTime(065500); input: tt(150000); var: chkP(3), reChkP(10), stopChk(20); var: HH(0), LL(0), BS(0), SS(0); var: dayChk(0); var : Tcond(False),ii(0); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; IF Endtime <= starttime Then { SetStopEndofday(0); } } if BarIndex == 0 then ClearDebug(); if bdate !=Bdate[1] Then ii = 0; Else ii = ii +1; if ii == chkP then { HH = Highest(Max(C,O), chkP+1); LL = Lowest(Min(C,O), chkP+1); #if date == 20240612 then messageLog("--HH %.2f, LL: %.2f", HH, LL); } #if High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then messageLog("HH %.2f, High: %.2f", HH, High); if Tcond == true and ii >= chkP and Time < 95000 and sDate == NextBarSdate and EntryDate(0) < Date and EntryDate(1) < Date Then { Buy("B1", AtStop, HH); Sell("S1", AtStop, LL); } //if dayChk == 0 and High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then { // messageLog("HH %.2f, High: %.2f", HH, High); // dayChk = 1; //} if ExitDate(1) == Date and Time < 150000 and Tcond == true // and LatestEntryName(1) != "B2" // and LatestEntryName(1) != "S2" // and LatestEntryName(0) != "B2" // and LatestEntryName(0) != "S2" Then { if ii < reChkP Then { HH = Highest(Max(C,O), ii+1); LL = Lowest(Min(C,O), ii+1); } Else { HH = Highest(Max(C,O), reChkP); LL = Lowest(Min(C,O), reChkP); } Buy("B2", AtStop, HH); Sell("S2", AtStop, LL); } if (MarketPosition == 1) Then { if ii < stopChk Then { BS = Lowest(Min(C,O), ii+1); } Else { BS = Lowest(Min(C,O), stopChk); } ExitLong("EL", AtStop, BS); } if (MarketPosition == -1) Then { if ii < stopChk Then { SS = Highest(Max(C,O), ii+1); } Else { SS = Highest(Max(C,O), stopChk); } #messageLog(" SS %.2f", SS); ExitShort("ES", AtStop, SS); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-01-03 09:52:19

안녕하세요 예스스탁입니다. 1 각 진입식의 Time < 95000, Time < 150000 조건은 지정하신 시간조건과 맞지 않아 삭제해 드립니다. 당일봉수를 지정한 시작시간 이후의 봉수로 변경하고 수식내 당일 첫진입 두번째 진입의 구분돠 지정시간이후 진입횟수로 변경해 드립니다. 2 input : StartTime(193000),EndTime(012000); input: tt(150000); var: chkP(3), reChkP(10), stopChk(20); var: HH(0), LL(0), BS(0), SS(0); var: dayChk(0); var : Tcond(False),ii(0),TotalCount(0),PreDay(0),DayEntry(0); TotalCount = TotalTrades; IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; PreDay = TotalCount[1]; ii = 0; IF Endtime <= starttime Then { SetStopEndofday(0); } } Else ii = ii + 1; DayEntry = (TotalCount-PreDay)+IFF(MarketPosition != 0,1,0); if BarIndex == 0 then ClearDebug(); if ii == chkP then { HH = Highest(Max(C,O), chkP+1); LL = Lowest(Min(C,O), chkP+1); #if date == 20240612 then messageLog("--HH %.2f, LL: %.2f", HH, LL); } #if High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then messageLog("HH %.2f, High: %.2f", HH, High); if Tcond == true and ii >= chkP and bDate == NextBarbdate and dayEntry == 0 Then { Buy("B1", AtStop, HH); Sell("S1", AtStop, LL); } //if dayChk == 0 and High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then { // messageLog("HH %.2f, High: %.2f", HH, High); // dayChk = 1; //} if dayEntry > 0 and Tcond == true // and LatestEntryName(1) != "B2" // and LatestEntryName(1) != "S2" // and LatestEntryName(0) != "B2" // and LatestEntryName(0) != "S2" Then { if ii < reChkP Then { HH = Highest(Max(C,O), ii+1); LL = Lowest(Min(C,O), ii+1); } Else { HH = Highest(Max(C,O), reChkP); LL = Lowest(Min(C,O), reChkP); } Buy("B2", AtStop, HH); Sell("S2", AtStop, LL); } if (MarketPosition == 1) Then { if ii < stopChk Then { BS = Lowest(Min(C,O), ii+1); } Else { BS = Lowest(Min(C,O), stopChk); } ExitLong("EL", AtStop, BS); } if (MarketPosition == -1) Then { if ii < stopChk Then { SS = Highest(Max(C,O), ii+1); } Else { SS = Highest(Max(C,O), stopChk); } #messageLog(" SS %.2f", SS); ExitShort("ES", AtStop, SS); } 즐거운 하루되세요 > 가자아이 님이 쓴 글입니다. > 제목 : 재문의 드립니다. > 보내주신 서식으로 시뮬레이션을 했으나 생각과 다른 매매가 이루어져 다시 여쭙습니다. 다시 문의 드립니다. 1. 미국 미니 나스닥100 5분봉 2. 미국시간으로 19:30분에 시스템 시작 3. 미국시간으로 그 다음날 01:20분에 청산 (약 6시간만 매매, 그 외의 시간은 아무런 매매가 이루지지 않음) 4. 5분봉 기준으로 19:30분부터 3개의 봉이 지나고 4개째 봉부터 매수/매도 체결 input : StartTime(093000),EndTime(065500); input: tt(150000); var: chkP(3), reChkP(10), stopChk(20); var: HH(0), LL(0), BS(0), SS(0); var: dayChk(0); var : Tcond(False),ii(0); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; IF Endtime <= starttime Then { SetStopEndofday(0); } } if BarIndex == 0 then ClearDebug(); if bdate !=Bdate[1] Then ii = 0; Else ii = ii +1; if ii == chkP then { HH = Highest(Max(C,O), chkP+1); LL = Lowest(Min(C,O), chkP+1); #if date == 20240612 then messageLog("--HH %.2f, LL: %.2f", HH, LL); } #if High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then messageLog("HH %.2f, High: %.2f", HH, High); if Tcond == true and ii >= chkP and Time < 95000 and sDate == NextBarSdate and EntryDate(0) < Date and EntryDate(1) < Date Then { Buy("B1", AtStop, HH); Sell("S1", AtStop, LL); } //if dayChk == 0 and High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then { // messageLog("HH %.2f, High: %.2f", HH, High); // dayChk = 1; //} if ExitDate(1) == Date and Time < 150000 and Tcond == true // and LatestEntryName(1) != "B2" // and LatestEntryName(1) != "S2" // and LatestEntryName(0) != "B2" // and LatestEntryName(0) != "S2" Then { if ii < reChkP Then { HH = Highest(Max(C,O), ii+1); LL = Lowest(Min(C,O), ii+1); } Else { HH = Highest(Max(C,O), reChkP); LL = Lowest(Min(C,O), reChkP); } Buy("B2", AtStop, HH); Sell("S2", AtStop, LL); } if (MarketPosition == 1) Then { if ii < stopChk Then { BS = Lowest(Min(C,O), ii+1); } Else { BS = Lowest(Min(C,O), stopChk); } ExitLong("EL", AtStop, BS); } if (MarketPosition == -1) Then { if ii < stopChk Then { SS = Highest(Max(C,O), ii+1); } Else { SS = Highest(Max(C,O), stopChk); } #messageLog(" SS %.2f", SS); ExitShort("ES", AtStop, SS); }