Скачать MetaTrader 5

Блокировка торговли после стоплосса

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114283
Forex Trader  
Товарищи, написал советника, все хорошо но бывает такое что он после одной неудачной позиции открывает другую, третью... и сливает весь счет.

Поскольку на уровне индикаторов я как смог, точки слива уже перекрыл, возникла идея, а может просто заблокировать советник на неделю после первого стоплосса?

Заблокировать получилось, но хочется чтобы он еще сам разблокировался . Идеи будут?

вот код
идея в том чтобы жестко установленный стоп-лосс перехватить, и поставить паузу.
Проблема в том что советник просто блокируется и не разблокируется через 7 дней (работаем на дневном графике)

////////////////////////////////////////STOP LOSS INTERCEPTION\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
IfClosed=false;
if (OrderOpened==True && Bid-10*Point<OrderStopLoss()) 
IfClosed=OrderClose(OrderTicket(), OrderLots(), Bid, 5, Red);

////////////////////////////////////////////TIME PAUSE\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
       if (IfClosed==true)
     {Alert("AfterLoss time pause is on.", OrderSymbol());
      LossDay=DayOfYear();
      Comment(TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS)+"  AfterLoss pause activated"+".   Restart the advisor 7 days later");
      while (LossDay+7>DayOfYear())
      {}
     }



спасибо

Forex Trader
114283
Forex Trader  
Надо просто запоминать CurTime() в момент срабатывания СЛ, а в самом начале функции старт добавить строку
if ( CurTime() - SLTime <= 7 * 24 * 60 * 60 ) return(0);



DayOfYear() нельзя использовать, потому что в начале года он будет меньше дня срабатывания СЛ, и система остановится ;)

Forex Trader
114283
Forex Trader  
Merci beaucoup, я про недочеты DayOfYear тоже подумал, но решил что потом улажу, а что касается простого If, то это действительно лучший способ, надо было просто SLTime объявить перед стартом. Спасибо.
Forex Trader
114283
Forex Trader  
ИМХО, SLTime лучше сделать глобальной, соответствующим образом поименовав, особенно если предполагается одновременная работа нескольких экземпляров эксперта.
Forex Trader
114283
Forex Trader  
ИМХО, SLTime лучше сделать глобальной, соответствующим образом поименовав, особенно если предполагается одновременная работа нескольких экземпляров эксперта.
Да, правильно. И чтоб после перезапуска терминала пауза работала ;)
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий