Ибо в самой Стандартной библиотеке есть такой метод, как CTrade::FillingCheck().
В нём есть проверка:
//--- check execution mode againif(exec==SYMBOL_TRADE_EXECUTION_MARKET)
{
//--- for the MARKET execution mode//--- analyze orderif(m_request.action!=TRADE_ACTION_PENDING)
{
//--- in case of instant execution order//--- if the required filling policy is supported, add it to the requestif(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, то получим ошибку...
Мама велит читать Документацию и верить офиц.документам. Извиняться - хрен!
Только читать она тебя не научила.
Видно, что хромает Документация.
Ибо в самой Стандартной библиотеке есть такой метод, как CTrade::FillingCheck().
В нём есть проверка:
Так вот. Выделенный красным блок делает негодным Документацию, в части рыночного ордера в режимах "Исполнение по рынку".
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)
Немедленное исполнение
+
—
—
Исполнения по запросу
+
—
—
Исполнение по рынку
+
+
+
Биржевое исполнение
+
+
+