커뮤니티

자꾸 재문의를 드리네요

프로필 이미지
맴맴잉
2021-03-15 09:27:41
570
글번호 147084
답변완료
안녕하세요 전에 도식화로 시스템식을 요청드렷던 사람입니다. 시스템 검증 과정에서 저의 생각과 좀 틀린부분이 있어 요청을 드립니다. 매수포지션을 가져가서 횡보할때 매수한지 1시간 이후에 청산하는 부분이 있었습니다. 1타점 매수, 2타점 매수, 3타점 매수 분할매수로 되어있는데. 매수한지 1시간 이후는 1타점 매수에 대해서만. 해당 되는 것 같아 요청드립낟. 예를 들면, 1타점 매수후 2타점이 까지 조건이 만족해서 2타점 까지 매수하여 횡보하던중.. 제 기준은 2타점 매수후 1시간 횡보하면, 청산이였는데.. 시스템식을 돌려보니 1타점 매수후부터로 1시간 횡보하면 청산되는 것으로 나오게 됩니다. 기존에 요청드렸던 시스템식을 같이 송부합니다. 확인 부탁드리겠습니다. var : entry(0),AP(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and Dayopen(0) >= DayClose(1)*1.005 Then { if entry == 0 or (entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then Buy("b1",AtLimit,DayOpen*0.97); } if Dayopen(0) >= DayClose(1)*1.005 and ( (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or (MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06))) Then Buy("b2",AtLimit,DayOpen*0.94); if Dayopen(0) >= DayClose(1)*1.005 and ((MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true)) Then Buy("b3",AtLimit,DayOpen*0.91); if MarketPosition == 1 Then { AP = AvgEntryPrice; if MaxEntries == 1 and IsEntryName("b1") == true Then { ExitLong("bp1",AtLimit,AP*1.02); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx1"); } if (MaxEntries == 2 and IsEntryName("b1") == true) or (MaxEntries == 1 and IsEntryName("b2") == true) Then { ExitLong("bp2",AtLimit,AP*1.01); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx2"); } if (MaxEntries == 3 and IsEntryName("b1") == true) or (MaxEntries == 2 and IsEntryName("b2") == true) Then { ExitLong("bp3",AtLimit,AP*1.005); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx3"); } ExitLong("bl",AtStop,DayOpen*0.88); } SetStopEndofday(151800);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-03-15 16:24:05

안녕하세요 예스스탁입니다. 시간청산이 첫진입 기준으로 되어 있었습니다. 최근진입기준으로 변경했습니다. var : entry(0),AP(0),TT(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and Dayopen(0) >= DayClose(1)*1.005 Then { if entry == 0 or (entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then Buy("b1",AtLimit,DayOpen*0.97); } if Dayopen(0) >= DayClose(1)*1.005 and ( (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or (MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06))) Then Buy("b2",AtLimit,DayOpen*0.94); if Dayopen(0) >= DayClose(1)*1.005 and ((MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true)) Then Buy("b3",AtLimit,DayOpen*0.91); if MarketPosition == 1 Then { AP = AvgEntryPrice; if CurrentContracts > CurrentContracts[1] Then TT = TimeToMinutes(stime); if MaxEntries == 1 and IsEntryName("b1") == true Then { ExitLong("bp1",AtLimit,AP*1.02); if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then ExitLong("bx1"); } if (MaxEntries == 2 and IsEntryName("b1") == true) or (MaxEntries == 1 and IsEntryName("b2") == true) Then { ExitLong("bp2",AtLimit,AP*1.01); if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then ExitLong("bx2"); } if (MaxEntries == 3 and IsEntryName("b1") == true) or (MaxEntries == 2 and IsEntryName("b2") == true) Then { ExitLong("bp3",AtLimit,AP*1.005); if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then ExitLong("bx3"); } ExitLong("bl",AtStop,DayOpen*0.88); } SetStopEndofday(151800); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 자꾸 재문의를 드리네요 > 안녕하세요 전에 도식화로 시스템식을 요청드렷던 사람입니다. 시스템 검증 과정에서 저의 생각과 좀 틀린부분이 있어 요청을 드립니다. 매수포지션을 가져가서 횡보할때 매수한지 1시간 이후에 청산하는 부분이 있었습니다. 1타점 매수, 2타점 매수, 3타점 매수 분할매수로 되어있는데. 매수한지 1시간 이후는 1타점 매수에 대해서만. 해당 되는 것 같아 요청드립낟. 예를 들면, 1타점 매수후 2타점이 까지 조건이 만족해서 2타점 까지 매수하여 횡보하던중.. 제 기준은 2타점 매수후 1시간 횡보하면, 청산이였는데.. 시스템식을 돌려보니 1타점 매수후부터로 1시간 횡보하면 청산되는 것으로 나오게 됩니다. 기존에 요청드렸던 시스템식을 같이 송부합니다. 확인 부탁드리겠습니다. var : entry(0),AP(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and Dayopen(0) >= DayClose(1)*1.005 Then { if entry == 0 or (entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then Buy("b1",AtLimit,DayOpen*0.97); } if Dayopen(0) >= DayClose(1)*1.005 and ( (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or (MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06))) Then Buy("b2",AtLimit,DayOpen*0.94); if Dayopen(0) >= DayClose(1)*1.005 and ((MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true)) Then Buy("b3",AtLimit,DayOpen*0.91); if MarketPosition == 1 Then { AP = AvgEntryPrice; if MaxEntries == 1 and IsEntryName("b1") == true Then { ExitLong("bp1",AtLimit,AP*1.02); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx1"); } if (MaxEntries == 2 and IsEntryName("b1") == true) or (MaxEntries == 1 and IsEntryName("b2") == true) Then { ExitLong("bp2",AtLimit,AP*1.01); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx2"); } if (MaxEntries == 3 and IsEntryName("b1") == true) or (MaxEntries == 2 and IsEntryName("b2") == true) Then { ExitLong("bp3",AtLimit,AP*1.005); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx3"); } ExitLong("bl",AtStop,DayOpen*0.88); } SetStopEndofday(151800);