Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Отслеживай хиты продаж в Маркете!
SniperProfit
234
SniperProfit 2015.04.15 15:49 

Подскажите, в чем может быть причина ошибки? Нужно выставить BuyStop на конкретную цену.

 

void OnTick()
  {
   double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double price = 89915.0;
   double sl = NormalizeDouble(price-200*_Point,_Digits);
   if(OrdersTotal() == 0)
     {
      MqlTradeRequest Req = {0};
      MqlTradeResult  Res = {0};
      Req.action          = TRADE_ACTION_PENDING;
      Req.symbol          = _Symbol;
      Req.volume          = 1.0;
      Req.price           = price;
      Req.sl              = sl;
      Req.type            = ORDER_TYPE_BUY_STOP;
      Req.type_filling    = ORDER_FILLING_RETURN;
      Req.type_time       = ORDER_TIME_DAY;
      if(OrderSend(Req,Res))
        {
         if(Res.retcode == TRADE_RETCODE_PLACED) Alert(_Symbol," ok");
        }
     }
   Comment(Ask," / ",price);
  }
Andrey Khatimlianskii
55794
Andrey Khatimlianskii 2015.04.16 23:29  

Цену нужно нормализовать с учетом минимального шага цены.

И попробуйте без СЛ ставить, он тоже генерирует эту ошибку. 

Mikhail Filimonov
5931
Mikhail Filimonov 2015.04.17 00:35  
komposter:

Цену нужно нормализовать с учетом минимального шага цены.

И попробуйте без СЛ ставить, он тоже генерирует эту ошибку. 

Точно, для RTS шаг цены 10 пунктов,

не  может быть 89915.0 -  89910.0 или 89920.0

P/S Топикстартер уверен, что хочет выставить ордер ORDER_TYPE_BUY_STOP?

Это стоп-ордер.

Для стоп-ордеров, должна указываться (дополнительно) стоп-цена. 

Справка на терминал (не MQL):

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

 И еще:

 ORDER_FILLING_RETURN - не совместим со стоп-ордерами

Andrey Khatimlianskii
55794
Andrey Khatimlianskii 2015.04.17 01:36  
Mikalas:

P/S Топикстартер уверен, что хочет выставить ордер ORDER_TYPE_BUY_STOP?

Это стоп-ордер.

Для стоп-ордеров, должна указываться (дополнительно) стоп-цена. 

Какая стоп-цена, вы о чем?

Это для стоп-лимит ордеров указывается дополнительная цена, для обычных стоп-ордеров достаточно указать price.

 

По type_filling толковое замечание, я не заметил.

Mikhail Filimonov
5931
Mikhail Filimonov 2015.04.17 01:45  
komposter:

Какая стоп-цена, вы о чем?

Это для стоп-лимит ордеров указывается дополнительная цена, для обычных стоп-ордеров достаточно указать price.

 

По type_filling толковое замечание, я не заметил.

Ок, но я понял (из справки),

До достижения стоп-цены данные типы ордеров обрабатываются внутри платформы MetaTrader 5.

 

 что для всех стоп-ордеров должна быть стоп-цена, если Вы

точно знаете, что только для стоп-лимит, то спасибо. 

P/S Разработчики даже перечислили какие типы должны иметь стоп-цену:

 (Buy Stop, Sell Stop, Buy Stop Limit и Sell Stop Limit)

 

Andrey Khatimlianskii
55794
Andrey Khatimlianskii 2015.04.17 02:42  
Mikalas:

Ок, но я понял (из справки),

 

 что для всех стоп-ордеров должна быть стоп-цена, если Вы

точно знаете, что только для стоп-лимит, то спасибо. 

P/S Разработчики даже перечислили какие типы должны иметь стоп-цену:

 (Buy Stop, Sell Stop, Buy Stop Limit и Sell Stop Limit)

Возможно, стоп-ордера не отправляются на биржу (там ведь нет стоп-ордеров?).

Значит, их хранит сервер МТ, и отправляет обычный рыночный ордер в момент касания ценой уровня стоп-ордера.

 

Но это все равно не значит, что есть еще какая-то дополнительная стоп-цена. Цена у этого ордера одна, и задается полем price. 

Mikhail Filimonov
5931
Mikhail Filimonov 2015.04.17 02:44  
komposter:

Возможно, стоп-ордера не отправляются на биржу (там ведь нет стоп-ордеров?).

Значит, их хранит сервер МТ, и отправляет обычный рыночный ордер в момент касания ценой уровня стоп-ордера.

 

Но это все равно не значит, что есть еще какая-то дополнительная стоп-цена. Цена у этого ордера одна, и задается полем price. 

Спасибо, но я всё же задал уточняющий вопрос разработчикам (а вдруг...:) ).
SniperProfit
234
SniperProfit 2015.04.17 10:52  
Mikalas:
Спасибо, но я всё же задал уточняющий вопрос разработчикам (а вдруг...:) ).
Спасибо вам за ответы! Попробовал с ценой 89920, работает)
SniperProfit
234
SniperProfit 2015.04.17 11:07  
komposter:

Какая стоп-цена, вы о чем?

Это для стоп-лимит ордеров указывается дополнительная цена, для обычных стоп-ордеров достаточно указать price.

 

По type_filling толковое замечание, я не заметил.

Кроме ORDER_FILLING_RETURN больше никак не работает, все комбинации перепробовал.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий