Уточнение к разработчикам

 

Добрый день!

В справке к терминалу МТ5 написано:

Стоп и Стоп-Лимитные ордера

Как правило, Стоп и Стоп-Лимитные ордера (Buy Stop, Sell Stop, Buy Stop Limit и Sell Stop Limit)
в отличие от лимитных ордеров не выводятся во внешнюю торговую систему (биржу) напрямую.
До достижения стоп-цены данные типы ордеров обрабатываются внутри платформы MetaTrader 5.
•При достижении стоп-цены, указанной в Buy Stop или Sell Stop ордере, выполняется соответствующая рыночная операция.
•При достижении стоп-цены, указанной в Buy Stop Limit или Sell Stop Limit ордере, выставляется соответствующая лимитная заявка, которая будет видна остальным участникам рынка.

 Вопросы:

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

2. Стоп-ордер (Sell stop или Buy stop ) должен иметь стоп-цену (из вышеприведённой справки).

Стоп-цена (для стоп-ордера) это request.price или она указывается дополнительно в request.stoplimit?

 

1. В Robo сказали что стопы хранятся на сервере брокера, но исполняются маркетными заявками, по достижении цены. Возможно проскальзывание. 

2.Кусок функции из совы,  выставляющей отложенные ордера всех  типов.   

Не претендую на истину,  но возможно  моё мнение будет полезно 

MqlTradeRequest request;
 ZeroMemory(request);
 
 request.action = TRADE_ACTION_PENDING;
 request.symbol = _SY;
 request.price =_price;
 request.magic =_Magic;
 request.type = _typOrder;
 //request.type_time=ORDER_TIME_GTC;//ORDER_TIME_DAY/ ORDER_TIME_SPECIFIED/ ORDER_TIME_SPECIFIED_DAY
 request.type_time=_pord_time;
 request.type_filling = ORDER_FILLING_FOK;//ORDER_FILLING_IOC,ORDER_FILLING_RETURN
 request.expiration= TimeCurrent()+(datetime)_pord_exp;   
 
 request.comment=_comment;
 if (_typOrder==ORDER_TYPE_BUY_LIMIT||_typOrder==ORDER_TYPE_BUY_STOP||_typOrder==ORDER_TYPE_BUY_STOP_LIMIT){
  if(!LotCorrect(_SY,_Lot,POSITION_TYPE_BUY,_MaxPercentUseDeposit))
  {Print(__FUNCTION__,"():Неверный лот BUY Market");return(false);}
 if (_typOrder==ORDER_TYPE_BUY_STOP_LIMIT) request.stoplimit = _priceSL;  //вот  здесь задается цена лимитного ордера для Buy_Stop_Limit
  request.volume = _Lot;
  if(_Stop) request.sl = _price-_Stop*_Point;
  else    request.sl =0.0;
  if(_Take) request.tp = _price+_Take*_Point;
  else    request.tp =0.0;
 
 }else{//ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_SELL_STOP, ORDER_TYPE_SELL_STOP_LIMIT
  if(!LotCorrect(_SY,_Lot,POSITION_TYPE_SELL,_MaxPercentUseDeposit))
  {Print(__FUNCTION__,"():Неверный лот SELL Market");return(false);}
  request.volume = _Lot;
  if(_typOrder==ORDER_TYPE_SELL_STOP_LIMIT) request.stoplimit = _priceSL;
  if(_Stop)   request.sl = _price+_Stop*_Point;
  else  request.sl =0.0;
  if(_Take)   request.tp = _price-_Take*_Point;
  else  request.tp =0.0;
 }
 
Очень интересный вопрос. Тоже хотелось бы услышать ответ!
Причина обращения: