Page 1 of 1

Приходит статус filled, хотя остались еще контракты.

Posted: 09 Jul 2015
by zysmn
И снова добрый день, прошу помочь разобраться.
Опишу ситуацию с поясняющим скриншотом.
Робот выставил стоп-лимит на покупку в 800 лотов в 10:30 (красный). В 11:01 стоп цена была достигнута, в результате чего появился лимитник с соответствующей ценой. Почему по заполнению 236 контрактов пришел статус Filled, хотя еще осталось 564? (Также в коде пришло событие Orders_Changed со статусом filled, хотя еще есть Left_Contracts, и тем самым внесло смуту и недопонимание в ряды исполняющего кода.) Соответственно после было нагенерировано на оставшейсе кол-во лотов стоп-лимитников (я так понимаю потому, что в коде исполнения скрипта ордера на определенное кол-во контрактов никто не отменял), и ситуация повторилась уже с кол-вом 564 (желтый). Но по факту когда весь этот экшен закончился, у меня было исполнено всего 404 контракта, больше никаких ордеров на покупку не осталось (после события первого события Orders_Changed со статусом Filled сработал некоторый триггер, и скрипт начал отсчитывать тайм аут. В скрипте указано продолжать выставлять ордера на покупку до истечения тайм аута, после чего выставлять ордера на продажу), и оставшиеся 396 пришлось добить, что называется, руками (зеленый). Собственно основные вопросы, это почему пришел статус filled, хотя еще были контракты, и соответственно почему за этим возникла такая чехарада с последующими стоп-лимитниками на покупку.
В самом Квике заявки на 800 и на 564 висят со статусом "Снята" и с остатками 564 и 396 соответственно.
Использую MultiCharts .NET64 Version 9.0 Release (Build 11212), синхронный режим, Real-Time data from Broker, IOG enabled.

Re: Приходит статус filled, хотя остались еще контракты.

Posted: 14 Jul 2015
by Henry MultiСharts
Добрый день, zysmn.

Частично заполненные ордера имеют статус Filled, это ожидаемое поведение, так как есть заполненные контракты.

В общем случае ордер может быть отменен по следующим причинам:
1) скрипт перестал генерировать ордер;
2) на очередном просчете скрипта был сгенерирован набор ордеров, отличный от предыдущего;
3) при наличии активных прайсовых ордеров был сгенерирован маркетовый ордер, что привело к отмене прайсовых ордеров;
4) влияние опций со вкладки Auto trading.

Для детального анализа ситуации подобного рода необходимо изучить логи MultiCharts.
Логи автоматически оцищаются при перезапуске всех процессов MultiCharts.
Если Вы еще не перезапускали платфору, либо ситуация вновь воспроизведется, то откройте данный путь в проводнике:
%USERPROFILE%\Local Settings\Application Data\TS Support\
должны быть две папки
MultiCharts .NET64
и DataServer
Необходимо заархивировать их.
Затем сделать экспорт Order and Position Tracker вкладка Orders, в Excel выделить ордера по которым необходим детальный анализ.
Добавьте данный файл в архив с логами и вышлите нам для дальнейшего разбора на support@multicharts.com
Если размер файла больше 10 мб, пожалуйста, загрузите его на какой-либо файлообменник и пришлите нам ссылку на скачивание.

Re: Приходит статус filled, хотя остались еще контракты.

Posted: 15 Jul 2015
by zysmn
С логами у меня напряженка, все поотключал в реестре.
Если статус Filled появляется при частичном заполнении ордера, то в чем разница с РartiallyFilled? В мануале указано
eTM_OS_PartiallyFilled = 7, - partially filled, will continue to be filled and will turn to eTM_OS_Filled state.
eTM_OS_Filled = 3, - filled, Final status.
поэтому я ожидал, что после статуса filled никаких дополнительных действий с ордером не происходит.

Правильно я понимаю, что в случае если не было изменениий в просчете скрипта для выставления ордера, то МС после частично заполненого ордера создаст такой же ордер на недостающее для первоначального кол-во контрактов? Т.е. был стоп-лимит на покупку 100 контрактов, исполнилась стоп цена, выставился лимитник на 100, затем лимитник залили на 57 контрактов, пришел статус Filled, и МС при очередном просчете скрипта отправил лимитник по первоначальной цене недостающие 43, так? И МС кстати отправит лимитник или стоп-лимит, при том что в коде отправляется стоп-лимит?

Re: Приходит статус filled, хотя остались еще контракты.

Posted: 17 Jul 2015
by Henry MultiСharts
МС не будет отправлять и отменять ордера, если в результате просчета скрипта сгенерировались точно такие же ордера, как и на предыдущем просчете, и будет продолжать заполнение ордера до 100 контрактов. После его исполнения - отправит на брокер все, что не противоречит правилам генерирования ордеров.

Если же помимо заполняющегося ордера с ним в ОСО-cancel группе были другие ордера, то поскольку, по остальным ордерам пришла отмена (так работает OCO руппа), то после просчета, выяснится, что на брокере всего один ордер, и соответственно, чтобы разместить всю группу - МС отправит команду на отмену заполняющемуся ордеру, в результате получит статус Filled на 57 из 100 контрактов.

Далее все зависит от опции “Replace to market partially filed orders”. Если она включена, то пошлется маркет на оставшиеся 43 контракта. И после отправится все, что не нарушает правила генерирования ордеров.
Если опция выключена, то на дозаполнение ничего отправляться не будет. Сразу пошлется все, что не противоречит правилам генерирования ордеров.

Если была группа ReduceSize (только в случае, если отправлялись исключительно выходы), то отмены по первому - же кусочку заполнения остальных ордеров не произойдет, и, соответственно, группа продолжить жить, пока не заполнится начавший заполняться ордер, или не отменится один из ордеров в группе, после чего произойдет просчет скрипта.

Это всё, опять же, в общем случае. Есть еще нюансы связанные с “Unfilled strategy order replacement” и режимами авто торговли (SA/AA). Как я говорил ранее - для детального и полного анализа ситуации подобного рода необходимо изучить логи MultiCharts. Без логов остается только обсуждать теоретическую часть, и делать это можно будет долго. Пожалуйста, включите логи и воспроизведите ситуацию, тогда можно будет конкретно указать на причину отмены частично заполненного ордера.

Re: Приходит статус filled, хотя остались еще контракты.

Posted: 29 Oct 2015
by txls
Робот выставил стоп-лимит на покупку в 800 лотов в 10:30
Добрый день.

Просматривал, так сказать, архивные материалы форума, увидел ваш пост.

Как у вас обстоят дела с исполнением стоп-лимитов такого объёма с таким небольшим отступом, если не секрет?

Спасибо заранее.