Вопрос по режиму заполнения - страница 2

 
Dennis Kirichenko:
Мама велит читать Документацию и верить офиц.документам. Извиняться - хрен!
Только читать она тебя не научила.
 
Alexey Viktorov:
Только читать она тебя не научила.
Это может быть. Ну так просьба ткнуть носом непонимающего в то место, где описано реальное положение дел ;-)
 

Видно, что хромает Документация.

Ибо в самой Стандартной библиотеке есть такой метод, как CTrade::FillingCheck().

В нём есть проверка:

//--- check execution mode again
   if(exec==SYMBOL_TRADE_EXECUTION_MARKET)
     {
      //--- for the MARKET execution mode
      //--- analyze order
      if(m_request.action!=TRADE_ACTION_PENDING)
        {
         //--- in case of instant execution order
         //--- if the required filling policy is supported, add it to the request
         if(m_type_filling==ORDER_FILLING_FOK && (filling & SYMBOL_FILLING_FOK)!=0)
           {
            m_request.type_filling=m_type_filling;
            return(true);
           }
         if(m_type_filling==ORDER_FILLING_IOC && (filling & SYMBOL_FILLING_IOC)!=0)
           {
            m_request.type_filling=m_type_filling;
            return(true);
           }
         //--- wrong filling policy, set error code
         m_result.retcode=TRADE_RETCODE_INVALID_FILL;
         return(false);
        }
      return(true);
     }

Так вот. Выделенный красным блок делает негодным Документацию, в части рыночного ордера в режимах "Исполнение по рынку".

ORDER_FILLING_RETURN

Данный режим используется для рыночных (ORDER_TYPE_BUY и ORDER_TYPE_SELL), лимитных и стоп-лимитных ордеров (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT) и только в режимах "Исполнение по рынку" и "Биржевое исполнение". В случае частичного исполнения рыночный или лимитный ордер с остаточным объемом не снимается, а продолжает действовать.

Для ордеров ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT при активации будет создан соответствующий лимитный ордер ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT с типом исполнения ORDER_FILLING_RETURN.


Потому как, если задать для рыночного исполнения режим ORDER_FILLING_RETURN, то получим ошибку...

 

Пока для информации:

Политика исполнения 

Применение политик исполнения в зависимости от режима исполнения можно представить в виде таблицы:

Режим исполнения\Политика исполнения

Все/Ничего (FOK)

Все/Частично (IOC)

Вернуть (Return)

Немедленное исполнение

+

Исполнения по запросу

+

Исполнение по рынку

+

+

+

Биржевое исполнение

+

+

+