Лимитный ордер вместо рыночного в MQL5

 

Всем привет!

При открытии позиции Бай по рынку, можно получить очень большое проскальзывание. Например, на новостях. Хочется этого избежать.

Подобная тема уже поднималась: https://www.mql5.com/ru/forum/11920

Предлагается вместо открытия Бай по рынку, выставить БайЛимит, по цене, например, на 100 пипсов выше текущей Аск. Утверждается, что в этом случае сразу откроется рыночный Бай. Т.к. текущая Аск на 100 пипсов лучше, чем цена установки БайЛимит (Аск+100).

У меня открыть рыночную позицию не получилось.

Возвращается ошибка [Invalid price]. Т.е. выставить БайЛимит выше рынка нельзя? Вот мой код:

   double ask=SymbolInfoDouble(Symbol(), SYMBOL_ASK);
   
   MqlTradeRequest request;
   MqlTradeResult   result;
   
   request.action       = TRADE_ACTION_PENDING;
   request.magic        = 123456;
   request.order        = 0;
   request.symbol       = Symbol();
   request.volume       = 0.01;
   request.price        = ask+100*_Point;
   request.sl           = 0;
   request.tp           = 0;
   request.deviation    = 200;
   request.type         = ORDER_TYPE_BUY_LIMIT;
   request.type_filling = ORDER_FILLING_FOK;
   request.type_time    = ORDER_TIME_GTC;
   request.expiration   = 0;
   request.comment      = "";     
     
   if(!OrderSend(request, result))
   {
      PrintFormat("OrderSend error %d",GetLastError());
      PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
   }
Лимитный ордер при биржевом исполнении
Лимитный ордер при биржевом исполнении
  • 2013.04.30
  • www.mql5.com
Какие цены я должен указать в структуре MqlTradeRequest (double price; double stoplimit;).
 
twin2012:

Всем привет!

При открытии позиции Бай по рынку, можно получить очень большое проскальзывание. Например, на новостях. Хочется этого избежать.

Подобная тема уже поднималась: https://www.mql5.com/ru/forum/11920

Предлагается вместо открытия Бай по рынку, выставить БайЛимит, по цене, например, на 100 пипсов выше текущей Аск. Утверждается, что в этом случае сразу откроется рыночный Бай. Т.к. текущая Аск на 100 пипсов лучше, чем цена установки БайЛимит (Аск+100).

У меня открыть рыночную позицию не получилось.

Возвращается ошибка [Invalid price]. Т.е. выставить БайЛимит выше рынка нельзя? Вот мой код:

Скорее всего, исполнение по рынку вместо лимитки зависит от брокера (помниться я пробовал - работает).

В любом случае, либо гарантируется цена но не гарантируется исполнение при лимитных ордерах, либо гарантируется исполнение но не гарантируется цена при рыночных ордерах.

В случае, если лимитный ордер указан по цене хуже рынка, то (если поддерживается брокером) ордер будет исполнен как рыночный, со всеми вытекающими последствиями.

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

 
ICMarkets MT5 ECN. Спасибо, я это понимаю. Странно, что это раньше работало, а теперь нет. И почему это зависит от брокера? Принципы торговли же одинаковые. Пробовал и на Alpari, тоже не работает. Хотелось бы узнать мнение разработчиков
 
TheXpert:
по-моему так никогда не работало на МТ. ни разу не видел чтобы в МТ можно было поставить бай лимит выше аска.
поставить то не получится в любом случае, имеется ввиду что при попытке выставления лимитки должен исполнится маркет, верно, стартер?
 
Да, меня интересует открытие рыночного ордера с возможностью контролировать его проскальзывание. Лимитный ордер - это лишь инструмент открытия такого рыночного ордера 
 
twin2012:
а пробовали с режимом исполнения ORDER_FILLING_RETURN?
 
Может выше рынка надо бай стоп, а не бай лимит.
 
TheXpert:
а пробовали с режимом исполнения ORDER_FILLING_RETURN?

Да, пробовал разные варианты. Не работает. Ошибка именно [Invalid price]

 
jdjahfkahjf:
Может выше рынка надо бай стоп, а не бай лимит.

Стоповый ордер не станет сразу рыночным

 
TheXpert:
а пробовали с режимом исполнения ORDER_FILLING_RETURN?

Так и надо делать

 
prostotrader:

Так и надо делать

FOK по идее тоже должен работать, если реализован. смущает что ошибка invalid price. может не везде можно или что-то поправили и вообще нельзя

Причина обращения: