← Zurück

Котирование и событие исполнения заявки

Михаил, есть вопрос про котирование и событие исполнения заявки: Я в стратегии использую MarketQuotingStrategy как дочернюю торговую стратегию для покупок/продаж по рыночной цене на фортсе. В стратегии необходимо отслеживать момент исполнения заявки, чтобы после этого момента основная стратегия продолжила работу. Должен ли я для этого подписываться на MarketQuotingStrategy.NewMyTrades, или метод OnNewMyTrades моей стратегии будет вызван автоматически? Спасибо.

Kommentare (19)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Dmitriy Klimov
Dmitriy Klimov Autor

При попытке выставления заявки через котирование вылетает ошибка: "Заявка ... не имеет состояния. Котирование продолжается". Что может быть не так?

Mikhail Sukhov
Mikhail Sukhov

Асинх режим? Это нормально. Заявка еще не получила состояние. Поэтмоу котирование пока не знает что с ней делать (дожидается принятия биржей).

Mikhail Sukhov
Mikhail Sukhov

Вообще дочерняя стратегия так устроена, что родит не продолжает свою работу, пока она не будет исполнена. В случае котирования - пока не реализуется необходимы

Mikhail Sukhov
Mikhail Sukhov
Dmitriy Klimov
Dmitriy Klimov Autor

Да, режим асинхронный (как в примерах). При выставлении заявка даже в таблицах Квика (версия 5.17) не появляется, поэтому ошибка возникает многократно до тех пор, пока программа вообще не вылетает. Похоже, что возникает ошибка при высталении заявки в Квик. Что-то можно придумать, чтобы выловить эту ошибку?

Dmitriy Klimov
Dmitriy Klimov Autor

У меня родительская стратегия вызывается не из менеджера стратегий. Метод OnProcess вызывается самой же стратегией по определенным событиям, поэтому работа при запуске дочерней стратегии не прекращается. Вот я и хотел знать, достаточно ли использовать метод OnNewMyTrades основной стратегии для отслеживания исполнения заявок, или надо подписываться на это событие у дочерней?

Mikhail Sukhov
Mikhail Sukhov

А почему заявка то не регистрируется? ITrader.OrdersFailed что нибудь пишет?

Mikhail Sukhov
Mikhail Sukhov

Не могу сказать - надо пробовать.

Dmitriy Klimov
Dmitriy Klimov Autor

Возникает вот такая ошибка:http://screencast.com/t/M2U3MjE0

Из нее мне не понятно, что я сделал не так. Заявку выставлял как в примере SampleSMA. Единственное, класс стратегии наследовал напрямую от Strategy, а не от TimeFrameStrategy.

Mikhail Sukhov
Mikhail Sukhov

Тут чем-то строка транзакции не нравиться Квику... А ручками через Sample можете купить продать контракт?

Dmitriy Klimov
Dmitriy Klimov Autor

Все, разобрался. Сам ошибся.

Теперь остался открытым вопрос о перехвате события исполнения заявки после котирования.

Dmitriy Klimov
Dmitriy Klimov Autor

Часто при котировании возникает такая ошибка:http://screencast.com/t/OGZlYjIy

У MarketQuotingStrategy сво-во IsForts выставил в true. Похоже, это с этим связано?

И еще небольшой вопрос: как-то можно выставить ограничение на кол-во перестановок при котировании, чтобы если этот процесс затянулся, то вырубать его? А еще лучше котирование проводить до тех пор, пока не исполнилось како-то произволное условие (ситуация в стакане изменилась). Создавать для этого производный класс?

Mikhail Sukhov
Mikhail Sukhov
  1. Такая ошибка сигнализирует о том, что заявку уже или снята или исполнена.
  2. Да, и перегружать его методы.
Dmitriy Klimov
Dmitriy Klimov Autor

Очень разочаровывает скорость исполнения заявок при котировании. Запускал робота на фьючерсе индекса РТС, и при не самых сильных движения рынка заявка переставляется по три-четыре раза, прежде чем исполняется. И это при том, что к цене первой заявки я добавляю/ отнимаю 10 пунктов. Как можно сократить количество перестановок и заходить в сделку действительно по лучшей цене? Пробовал цену входа брать не из таблицы инструмента, а из стакана (так как он чаще обновляется), но все-равно не помогает. Может, сам Квик можно ускорить, или еще какие-то хитрости есть? Квик и так работает через сервер с plaza2, вроде бы быстрее некуда получать/отправлять данные. Буду благодарен любым советам по решению данной проблемы...

Mikhail Sukhov
Mikhail Sukhov

А настройки в ini прописали, чтобы Квик стакан быстрее обновлял?

Dmitriy Klimov
Dmitriy Klimov Autor

Да, price-timeout=10 прописал.

Mikhail Sukhov
Mikhail Sukhov

Кстати, проверьте, применились ли? Попробуйте вывод перенаправить в Эксель. Так же быстро? Я выложил еще так же файл Program.cs (2). Так же быстро нотификацию выдает? Сам вывод в лог что выдает котировщик? Правильные цены?

Dmitriy Klimov
Dmitriy Klimov Autor

Спасибо, проверю.

Михаил, еще пара вопросов:

  1. У вас в документации про котировщик написано: MarketQuotingStrategy
  • данный алгоритм мониторит лучшую котировку (Security.BestBid для покупки или Security.BestAsk для продажи), выставляя свои заявки по этим же ценам, или чуть лучше, в зависимости от значения MarketQuotingStrategy.PriceDelta.

Правильно ли я понимаю, что лучшую цену он берет из таблицы инструментов, а не из стакана? Стакан обновляется быстрее. Может, из него брать эту цену?

  1. Не планируете ли вы в будущем релизе добавить возможность задавать ограничение на количество перестановок в MarketQuotingStrategy? Если после N перестановок заявка не исполнилась, генерировать соответствующее событие.
Mikhail Sukhov
Mikhail Sukhov
  1. Из стакана и берется.
  2. Уже сделал. Осталось только оттесить. А вот тут проблемы. Плаза вносит свои особенности и прихоидтся тратить время на изыскания - глюзя ли плазы или S#.