MarketQuotingStrategy
Atom
9/20/2014
RomSunZ


Изучаю поведение MarketQuotingStrategy и возник такой вопрос. Если выставлять тип цена Following и отступ от лучшей цены Bid/Ask больше 0, то в итоге получаем, что заявка выставляется в стакан как положено с учетом отступа, но MarketQuotingStrategy получает обновление стакана уже с учетом выставленной своей же заявки и считает, что лучшая цена изменилась и вновь переставляет свою заявку с учетом отступа. И это происходит до тех пор, пока заявка не придет на противоположный край спреда в стакане и не исполнится. Подскажите, как или что нужно переопределить/указать/изменить в MarketQuotingStrategy, чтобы стакан она мониторила без учета всех моих заявок? Код использую такой, проверял на низколиквидных инструментах с широким спредом в стакане: [code=csharp] var v1 = new Unit(1, UnitTypes.Step, Security); var v2 = new Unit(0, UnitTypes.Step, Security); var strategy = new MarketQuotingStrategy(direction, volume) ; ChildStrategies.Add(strategy);

[/code]


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 9/20/2014
Reply


Thanks:

Валентин Лебедев

Avatar
Date: 9/20/2014
Reply


Если у тебя будет BestPriceOffset >= PriceOffset, то такого происходить не будет, по крайней мере если судить по старым сорцам из паблика.

Thanks: Mikhail Sukhov RomSunZ Andrii

RomSunZ

Avatar
Date: 9/23/2014
Reply


Чтобы не плодить тем еще один вопрос над которым я уже всю голову сломал. Открываем позицию по RIZ (тестовый квик Церих) выше описанных методом и в PnL получаю всякую муру: [quote] 19:35:40.618| |PS_RIZ4@FORTS_SPBFUT00756|Начинаем котирование по RIZ4@FORTS направление покупка объем 1 реверс=False 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Переход из состояния Stopped в Started. 19:35:40.618| |MQS_RIZ4@FORTS_SPBFUT00756|Стратегия запущена. [0,1]. Позиция 0. 19:35:40.618| |MQS_RIZ4@FORTS_SPBFUT00756|Котирование на Buy объема 1. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Приостановка правил. _rulesSuspendCount 1. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Возобновление правил. _rulesSuspendCount 0. 19:35:40.618| |MQS_RIZ4@FORTS_SPBFUT00756|Цена текущей NULL и лучшей 114780. 19:35:40.618| |MQS_RIZ4@FORTS_SPBFUT00756|Лучший бид 114770 и лучший аск 114800. 19:35:40.618| |MQS_RIZ4@FORTS_SPBFUT00756|Регистрация новой Limit (0x471E6) заявки на Buy с ценой 114780 и объемом 1. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки 70469690/ (0xBD1D52)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки 70469690/ (0x120EB7B)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение 70469690/ (0x15BCA51)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение 70469690/ (0x4E5EA8)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Все сделки заявки 70469690/ (0x3E608C0)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Отмена заявки 70469690/ (0x256457E)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки 70469690/ (0x36725F)'. Подписалось на события. 19:35:40.618|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка снятия заявки 70469690/ (0x3766F33)'. Подписалось на события. 19:35:40.981|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:40.981|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Заявка 70469690 (0x471E6) в процессе регистрации. 19:35:41.066| |PS_RIZ4@FORTS_SPBFUT00756|PnL=0 Realised PnL=0 Unrealized PnL=0 Ask=114800 Bid=114780 Sec=RIZ4@FORTS 19:35:41.066| |PS_RIZ4@FORTS_SPBFUT00756|PnL=0 Realised PnL=0 Unrealized PnL=0 Ask=114800 Bid=114780 Sec=RIZ4@FORTS 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки 70469690/2450692238 (0xBD1D52)'. Активация. 19:35:41.066| |MQS_RIZ4@FORTS_SPBFUT00756|Заявка 70469690 (0x471E6) принята биржей. 19:35:41.066| |MQS_RIZ4@FORTS_SPBFUT00756|Сброс счетчика ошибок регистрации с 0 до нуля. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки 70469690/2450692238 (0xBD1D52)'. Удаляется. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки 70469690/2450692238 (0xBD1D52)'. Освободило ресурсы. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки 70469690/2450692238 (0x120EB7B)'. Удаляется. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки 70469690/2450692238 (0x120EB7B)'. Освободило ресурсы. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки 70469690/2450692238 (0x120EB7B)'. Удалено. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки 70469690/2450692238 (0xBD1D52)'. Удаление. 19:35:41.066|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки 70469690/2450692238 (0x120EB7B)'. Удаление. 19:35:41.066| |PS_RIZ4@FORTS_SPBFUT00756|PnL=0 Realised PnL=0 Unrealized PnL=0 Ask=114800 Bid=114780 Sec=RIZ4@FORTS 19:35:41.097|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:41.342|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:41.596|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:42.113|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:42.360|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:42.621|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:42.886|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:43.145|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:43.390|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:43.652|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:43.908|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:44.180|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:44.248|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:44.511|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:45.031|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:45.297|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:45.776|Debug |MQS_RIZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента RIZ4@FORTS (0x2831D96)'. Активация. 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|Новая Buy сделка 116513939 по цене 114780 на 1 заявки 70469690. 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|PnL=-114780 Realised PnL=0 Unrealized PnL=-114780 Ask=114800 Bid=114770 Sec=RIZ4@FORTS 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|PnL=-114780 Realised PnL=0 Unrealized PnL=-114780 Ask=114800 Bid=114770 Sec=RIZ4@FORTS 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|Новая позиция: SPBFUT00756-RIZ4@FORTS=1. 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|PnL=-114780 Realised PnL=0 Unrealized PnL=-114780 Ask=114800 Bid=114770 Sec=RIZ4@FORTS 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|По заявке котирования новая сделка средняя цена=114780 объем=1 время первой сделки=23.09.2014 16:35:47 время последней=23.09.2014 16:35:47 проскальзывание= задержка= 19:35:46.023| |PS_RIZ4@FORTS_SPBFUT00756|Кол-во стратегий в порцессе работы осталось: 0 19:36:35.535| |PS_RIZ4@FORTS_SPBFUT00756|PnL=-231.37260 Realised PnL=0 Unrealized PnL=-231.37260 Ask=114750 Bid=114740 Sec=RIZ4@FORTS 19:36:35.535| |PS_RIZ4@FORTS_SPBFUT00756|PnL=-231.37260 Realised PnL=0 Unrealized PnL=-231.37260 Ask=114750 Bid=114740 Sec=RIZ4@FORTS [/quote]

Стоимость шага цены из таблицы инструментов 7,71242, лот=1, шаг цены=10. Почему сразу после открытия позиции PnL=-114780 вместо нуля и почему он дальше считает непонятную цифру без учета шага цены (в 10 раз больше, чем нужно)?

Открыл пример quik sample, там в таблице инструментов у всех инструментов шаг стоит как по умолчанию 0,01

Thanks:

RomSunZ

Avatar
Date: 9/29/2014
Reply


А в ответ тишина...

Еще такая проблема с котированием, стратегия не может переставить заявку:

[quote] 14:40:16.593|Debug |MQS_GAZP@TQBR_10756|Заявка 52450048 (0x3822C8B) в процессе перерегистрации на заявку 52450051 (0xA221EB). 14:40:16.692| |PS_GAZP@TQBR_10756|PnL=-86.49 Realised PnL=-0.49 Unrealized PnL=-86.00 Ask=137.42 Bid=137.37 Sec=GAZP@TQBR 14:40:16.692|Error |MQS_GAZP@TQBR_10756|Заявка 52450048 (0x3822C8B) не была отменена по причине System.InvalidOperationException: Сервер для транзакции 'ACTION=MOVE_ORDERS; CLASSCODE=TQBR; SECCODE=GAZP; MODE=0; FIRST_ORDER_NUMBER=1468216; FIRST_ORDER_NEW_PRICE=137.41; FIRST_ORDER_NEW_QUANTITY=0; TRANS_ID=52450051;' вернул неправильное сообщение ' Указанная транзакция по указанному классу не найдена: "TQBR".' по передвинутым заявкам.. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка снятия заявки 52450048/1468216 (0x227AAE5)'. Активация. 14:40:16.692|Error |PS_GAZP@TQBR_10756|Заявка 52450051 (0xA221EB) не была принята по причине System.InvalidOperationException: Сервер для транзакции 'ACTION=MOVE_ORDERS; CLASSCODE=TQBR; SECCODE=GAZP; MODE=0; FIRST_ORDER_NUMBER=1468216; FIRST_ORDER_NEW_PRICE=137.41; FIRST_ORDER_NEW_QUANTITY=0; TRANS_ID=52450051;' вернул неправильное сообщение ' Указанная транзакция по указанному классу не найдена: "TQBR".' по передвинутым заявкам.. 14:40:16.692|Error |MQS_GAZP@TQBR_10756|Заявка 52450051 (0xA221EB) не была принята по причине System.InvalidOperationException: Сервер для транзакции 'ACTION=MOVE_ORDERS; CLASSCODE=TQBR; SECCODE=GAZP; MODE=0; FIRST_ORDER_NUMBER=1468216; FIRST_ORDER_NEW_PRICE=137.41; FIRST_ORDER_NEW_QUANTITY=0; TRANS_ID=52450051;' вернул неправильное сообщение ' Указанная транзакция по указанному классу не найдена: "TQBR".' по передвинутым заявкам.. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка регистрации заявки 52450051/ (0x27FE98A)'. Активация. 14:40:16.692|Error |MQS_GAZP@TQBR_10756|Заявка 52450051 (0xA221EB) не была принята по причине 'Сервер для транзакции 'ACTION=MOVE_ORDERS; CLASSCODE=TQBR; SECCODE=GAZP; MODE=0; FIRST_ORDER_NUMBER=1468216; FIRST_ORDER_NEW_PRICE=137.41; FIRST_ORDER_NEW_QUANTITY=0; TRANS_ID=52450051;' вернул неправильное сообщение ' Указанная транзакция по указанному классу не найдена: "TQBR".' по передвинутым заявкам.'. 14:40:16.692| |MQS_GAZP@TQBR_10756|Текущее кол-во ошибок 1. Максимальное 100. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка регистрации заявки 52450051/ (0x27FE98A)'. Удаляется. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка регистрации заявки 52450051/ (0x27FE98A)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Регистрация заявки 52450051/ (0x19B24E4)'. Удаляется. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Регистрация заявки 52450051/ (0x19B24E4)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Регистрация заявки 52450051/ (0x19B24E4)'. Удалено. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Полное исполнение 52450051/ (0x276C9C3)'. Удаляется. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Полное исполнение 52450051/ (0x276C9C3)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Полное исполнение 52450051/ (0x276C9C3)'. Удалено. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка регистрации заявки 52450051/ (0x27FE98A)'. Удаление. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Регистрация заявки 52450051/ (0x19B24E4)'. Удаление. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Полное исполнение 52450051/ (0x276C9C3)'. Удаление. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Отмена заявки 52450051/ (0x34BF142) OR Полное исполнение 52450051/ (0x2B8C0FE) OR Все сделки заявки 52450051/ (0x1C7284D) OR Ошибка регистрации заявки 52450051/ (0x3A41CA9)'. Активация. 14:40:16.692| |MQS_GAZP@TQBR_10756|Заявка 52450051 (0xA221EB) больше не активна. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Отмена заявки 52450051/ (0x34BF142) OR Полное исполнение 52450051/ (0x2B8C0FE) OR Все сделки заявки 52450051/ (0x1C7284D) OR Ошибка регистрации заявки 52450051/ (0x3A41CA9)'. Удаляется. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Отмена заявки 52450051/ (0x34BF142)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Полное исполнение 52450051/ (0x2B8C0FE)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Все сделки заявки 52450051/ (0x1C7284D)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Полное исполнение 52450051/ (0x2B8C0FE) OR Все сделки заявки 52450051/ (0x1C7284D)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка регистрации заявки 52450051/ (0x3A41CA9)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Отмена заявки 52450051/ (0x34BF142) OR Полное исполнение 52450051/ (0x2B8C0FE) OR Все сделки заявки 52450051/ (0x1C7284D) OR Ошибка регистрации заявки 52450051/ (0x3A41CA9)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка снятия заявки 52450051/ (0x1FEA431)'. Удаляется. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка снятия заявки 52450051/ (0x1FEA431)'. Освободило ресурсы. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка снятия заявки 52450051/ (0x1FEA431)'. Удалено. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Отмена заявки 52450051/ (0x34BF142) OR Полное исполнение 52450051/ (0x2B8C0FE) OR Все сделки заявки 52450051/ (0x1C7284D) OR Ошибка регистрации заявки 52450051/ (0x3A41CA9)'. Удаление. 14:40:16.692|Debug |MQS_GAZP@TQBR_10756|Правило 'Ошибка снятия заявки 52450051/ (0x1FEA431)'. Удаление. 14:40:16.811|Debug |MQS_GAZP@TQBR_10756|Правило 'Изменение стакана инструмента GAZP@TQBR (0x237DDC0)'. Активация. 14:40:16.811|Debug |MQS_GAZP@TQBR_10756|Перерегистрация не была выполнена. Ожидание исполнения заявки 52450048 (0x3822C8B). 14:40:16.906|Debug |MQS_GAZP@TQBR_10756|Правило 'Изменение стакана инструмента GAZP@TQBR (0x237DDC0)'. Активация. 14:40:16.906|Debug |MQS_GAZP@TQBR_10756|Перерегистрация не была выполнена. Ожидание исполнения заявки 52450048 (0x3822C8B). 14:40:17.022|Debug |MQS_GAZP@TQBR_10756|Правило 'Изменение стакана инструмента GAZP@TQBR (0x237DDC0)'. Активация. [/quote]

С чем может быть связано?

Thanks:

RomSunZ

Avatar
Date: 10/3/2014
Reply


И еще вопрос, как в marketquotingstrategy бороться с ошибкой "Идет пром. клиринг, нельзя совершать торговые операции"? Возникает в случае, когда котирование началось перед клирингом, но заявки не успели исполниться.

Thanks:

Andrii

Avatar
Date: 10/21/2014
Reply


[quote=viosee;31703]Если у тебя будет BestPriceOffset >= PriceOffset, то такого происходить не будет, по крайней мере если судить по старым сорцам из паблика.[/quote] А в чем разница между BestPriceOffset и PriceOffset ? что это параметры означают?

Thanks:

Andrii

Avatar
Date: 10/21/2014
Reply


[quote=Andrii;31981][quote=viosee;31703]Если у тебя будет BestPriceOffset >= PriceOffset, то такого происходить не будет, по крайней мере если судить по старым сорцам из паблика.[/quote] А в чем разница между BestPriceOffset и PriceOffset ? что это параметры означают? [/quote]

что будет если BestPriceOffset и PriceOffset будут равны?

[code=csharp]BestPriceOffset = PriceOffset = new Unit(1, UnitTypes.Step, Security);[/code]

[list][]заявка будет дублировать лучшею цену? []что будет в случае, при покупке, если лучшая цена изменница в меньшую сторону, цена заявки останется или тоже уменьшится? как сделать, чтобы уменьшилась и как чтобы продолжала висеть?[/list]

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy