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

Questions about QUIK trading plugin for Russian brokers and general MultiCharts questions can be asked here in Russian; they will be answered in Russian by our staff. No registration necessary.
zysmn
Posts: 68
Joined: 27 Feb 2014
Has thanked: 7 times
Been thanked: 4 times

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

Postby zysmn » 09 Jul 2015

И снова добрый день, прошу помочь разобраться.
Опишу ситуацию с поясняющим скриншотом.
Робот выставил стоп-лимит на покупку в 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.
Attachments
screen.jpg
(193.72 KiB) Downloaded 1139 times

User avatar
Henry MultiСharts
Posts: 9165
Joined: 25 Aug 2011
Has thanked: 1264 times
Been thanked: 2957 times

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

Postby Henry MultiСharts » 14 Jul 2015

Добрый день, 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 мб, пожалуйста, загрузите его на какой-либо файлообменник и пришлите нам ссылку на скачивание.

zysmn
Posts: 68
Joined: 27 Feb 2014
Has thanked: 7 times
Been thanked: 4 times

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

Postby zysmn » 15 Jul 2015

С логами у меня напряженка, все поотключал в реестре.
Если статус 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, так? И МС кстати отправит лимитник или стоп-лимит, при том что в коде отправляется стоп-лимит?

User avatar
Henry MultiСharts
Posts: 9165
Joined: 25 Aug 2011
Has thanked: 1264 times
Been thanked: 2957 times

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

Postby Henry MultiСharts » 17 Jul 2015

МС не будет отправлять и отменять ордера, если в результате просчета скрипта сгенерировались точно такие же ордера, как и на предыдущем просчете, и будет продолжать заполнение ордера до 100 контрактов. После его исполнения - отправит на брокер все, что не противоречит правилам генерирования ордеров.

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

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

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

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

txls
Posts: 76
Joined: 17 Nov 2010
Has thanked: 36 times
Been thanked: 24 times

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

Postby txls » 29 Oct 2015

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

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

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

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


Return to “MultiCharts QUIK”