Как в роботе МТ5 выставить лимитные заявки, снятые во время клиринга?

 

В МТ5 робот выставляет лимитные заявки, во время клиринга они снимаются, как выставить их обратно, на те же места, нужна помощь

 
Alex610:

В МТ5 робот выставляет лимитные заявки, во время клиринга они снимаются, как выставить их обратно, на те же места, нужна помощь

Просто в своём коде запоминайте цену и тип ордера. Можете через глобальные переменные (не путайте с глобальными переменными терминала) - объявите в шапке программы два массива

ENUM_ORDER_TYPE   typy_my_order[];
double            price_my_order[];

остаётся при выставлении/удалении ордеров работать с массивом. 

 
Karputov Vladimir:

Просто в своём коде запоминайте цену и тип ордера. Можете через глобальные переменные (не путайте с глобальными переменными терминала) - объявите в шапке программы два массива

остаётся при выставлении/удалении ордеров работать с массивом. 

С таким рейтингом как у вас - это очень не профессиональный ответ, я бы даже сказал ламерский ответ. А если массивы слетят при непредвиденных обстоятельствах?

Надо просто проверить, если ордера нет - поставить его обратно. Его место надо рассчитывать из рыночного окружения, из того что есть на данный момент. 

 
Чего-то не совсем понятно, что надо сделать?
 
Alex610:
Чего-то не совсем понятно, что надо сделать?

Нужно менять логику советника.

Есть еще способ, задать необходимое время экспирации, с помощью ORDER_TIME_SPECIFIED_DAY. Тогда ордера не будут слетать.

В любом случае нужно править код советника.

Поэтому выкладываете код советника, тогда более детально вам смогут помочь, или заказывайте доработку через фриланс

 
у моего брокера вот эту настройку задать нельзя ORDER_TIME_SPECIFIED_DAY
так бы да они стояли бы до окончания контракта
 
Alex610:
у моего брокера вот эту настройку задать нельзя ORDER_TIME_SPECIFIED_DAY
так бы да они стояли бы до окончания контракта

Какой брокер? В Открытии работает.

Что написано в этой строчке?

 

 Так пробовали?

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

ФОРТС: В помощь начинающим

Mikhail Filimonov, 2015.12.08 19:33

Часто используемые и полезные функции:  

Если мы хотим, чтобы отложенный ордер действовал не только в текущий день, то

в запросе нужно указывать так (в примере указан день экспирации)

(Спасибо Сергею) Как недавно выяснилось в такой реализации это работает на текущем фьючерсе и на следующем.

На более дальних НЕ РАБОТАЕТ!:

int OnInit()
{
  exp_day = GetCutTime( aSymbol );
  return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert Set expiration day function                              |
//+------------------------------------------------------------------+ 
datetime GetCutTime( const string t_symbol )
{
  MqlDateTime b_time;
  datetime a_time = datetime( SymbolInfoInteger( t_symbol, SYMBOL_EXPIRATION_TIME ) );
  TimeToStruct( a_time, b_time );
  b_time.hour = 0;
  b_time.min = 0;
  b_time.sec = 0;
  return( StructToTime( b_time ) );
} 

//--- При установке и модификации ордера
  request.type_time = ORDER_TIME_SPECIFIED_DAY;
  request.expiration = exp_day;
p.s. ссылка не работает
 
Спасибо за помощь, попробую...
Причина обращения: