ФОРТС SL и TP - страница 6

 
ottenand:
То есть вы хотите, чтобы селл-лимит ордер в стакане встал среди бай-лимитов?

Нет, он хочет очередной раз доказать, что он тут один ДыАртаньян
 
prostotrader:


Нет, чтобы выставить ордер в стакан (и он там будет находится) нужно использовать

request.type_filling=ORDER_FILLING_RETURN;‌

Д‌обавлено

И‌змените ORDER_FILLING_IOC на ORDER_FILLING_RETURN (в моём примере)

и‌ цену на SYMBOL_SESSION_PRICE_LIMIT_MAX

и Вы увидите ордер в стакане 

:) А какой тип ордера использовать? 
 
Yury Kulikov:
:) А какой тип ордера использовать? 

void SetSyncOrder(const bool deffered)
  {
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
   order_ticket=0;
   request.magic=Magic;
   request.symbol=Symbol();
   request.volume=1;
   if(deffered)
   {
     request.type_filling=ORDER_FILLING_RETURN;  //Отложенный ордер
   }
   else
   {
     request.type_filling=ORDER_FILLING_IOC;  //Рыночный ордер
   }  
   request.type_time=ORDER_TIME_DAY;
   request.action=TRADE_ACTION_PENDING;
   request.type=ORDER_TYPE_SELL_LIMIT;
   request.comment="";
   if(deffered)
   {
     request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX);
   }
   else
   {
     request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MIN);
   }  
   if(OrderSend(request,result))
     {
      if(result.retcode==TRADE_RETCODE_DONE)
        {
         order_ticket=result.order;
         if(OrderSelect(order_ticket))
           {
            ENUM_ORDER_STATE order_state=ENUM_ORDER_STATE(OrderGetInteger(ORDER_STATE));
            switch(order_state)
              {
               case ORDER_STATE_STARTED:
               case ORDER_STATE_REQUEST_ADD:
               case ORDER_STATE_REQUEST_MODIFY:
               case ORDER_STATE_REQUEST_CANCEL:
                  Print(__FUNCTION__,": Order is busy! State: ",EnumToString(order_state));
                  break;
               case ORDER_STATE_CANCELED:
               case ORDER_STATE_PARTIAL:
               case ORDER_STATE_FILLED:
               case ORDER_STATE_REJECTED:
               case ORDER_STATE_EXPIRED:
                  Print(__FUNCTION__,": Order not found.");
                  break;
               case ORDER_STATE_PLACED:
                 Print(__FUNCTION__,": Sync Order place done and found in terminal.");
               break;
              }
           }
        }
     }
   else {Print("Order not sent.");}
  }
Цены указаны в качестве примера
Файлы:
 
prostotrader:


Я ничего не хочу.

П‌рочтите внимательно ВЕСЬ топик.

Не поясничайте, вам пытаются помочь, постарайтесь вникнуть и разобраться. Ниже текущей цены на бирже в стакане могут стоять только бай-лимиты. Все остальное ниже цены может стоять в виде стоп-заявки на сервере у брокера. Тот селл-лимит ордер у вас исполнился по цене ближайшего спроса, читай по рынку, потому что невозможно впихнуть невпихуемое, т.е. селл-лимит ваш засунуть в стакане в очередь покупок ниже цены. Хотите продать ниже цены с условием - ставьте на сервер брокеру селл-стоп.
 
ottenand:
Не поясничайте, вам пытаются помочь, постарайтесь вникнуть и разобраться. Ниже текущей цены на бирже в стакане могут стоять только бай-лимиты. Все остальное ниже цены может стоять в виде стоп-заявки на сервере у брокера. Тот селл-лимит ордер у вас исполнился по цене ближайшего спроса, читай по рынку, потому что невозможно впихнуть невпихуемое, т.е. селл-лимит ваш засунуть в стакане в очередь покупок ниже цены. Хотите продать ниже цены с условием - ставьте на сервер брокеру селл-стоп.

Тогда и Вы не поясняйте...
 
prostotrader:
   request.type=ORDER_TYPE_SELL_LIMIT;

Зачем приводить такой длинный текст на простой вопрос, т.е. ваш ответ: тип ордера Sell Limit.

 
Yury Kulikov:

Зачем приводить такой длинный текст на простой вопрос, т.е. ваш ответ: тип ордера Sell Limit.


:)
 
Хех, ладно, дело ваше =)
 

Поправьте меня, если где-то ошибаюсь =)

 
Yury Kulikov:

Зачем приводить такой длинный текст на простой вопрос, т.е. ваш ответ: тип ордера Sell Limit.


Юрий!

Я‌ давал файл (спецификацию Plaza II)

В‌ спецификации нигде нет ни полстрочки о лимитный, рыночный или отложенный ордер.

О‌рдера на бирже принимаются по 4-м основным параметрам

1‌. Цена

2‌. Направление ордера (buy/sell)

3‌. Объём

4. Тип (в MQL filling)

Это ребята разработчики назвали лимитный, рыночный или отложенный ордер.

Ч‌тобы правильно выставлять ордера, нужно понимать как эти ордера будут восприниматься Биржей

в‌ соответствии со спецификацией.

Д‌обавлено

Н‌апример, чтобы ордер остался в стакане

в‌ SELL зоне

Д‌остаточно задать одну из цен из sell зоны

и‌ request.type_filling=ORDER_FILLING_RETURN;

Н‌о если Вы зададите цену из Buy зоны, то Ваш ордер тут же исполнится.

П‌оэтому, чтобы было хоть какое-то соответствие с биржевой спецификацией, я назваю ордера:

О‌тложенный - ордер который "стоит" в стакане

Рыночный - исполняется по любой цене

Л‌имитный - исполняется по цене, указанной в ордере.

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