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


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

Теги:


Спасибо:




19 Ответов
Dmitriy Klimov

Фотография
Дата: 12.07.2010
Ответить


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.07.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.07.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.07.2010
Ответить


Спасибо:

Dmitriy Klimov

Фотография
Дата: 12.07.2010
Ответить


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

Автор топика
Спасибо:

Dmitriy Klimov

Фотография
Дата: 12.07.2010
Ответить


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.07.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.07.2010
Ответить


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

Спасибо:

Dmitriy Klimov

Фотография
Дата: 12.07.2010
Ответить


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


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.07.2010
Ответить


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

Спасибо:

Dmitriy Klimov

Фотография
Дата: 12.07.2010
Ответить


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

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

Автор топика
Спасибо:

Dmitriy Klimov

Фотография
Дата: 13.07.2010
Ответить


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

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

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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.07.2010
Ответить


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

Спасибо:

Dmitriy Klimov

Фотография
Дата: 21.07.2010
Ответить


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.07.2010
Ответить


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

Спасибо:

Dmitriy Klimov

Фотография
Дата: 21.07.2010
Ответить


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.07.2010
Ответить


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

Спасибо:

Dmitriy Klimov

Фотография
Дата: 23.07.2010
Ответить


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

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

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

2. Не планируете ли вы в будущем релизе добавить возможность задавать
ограничение на количество перестановок в MarketQuotingStrategy? Если
после N перестановок заявка не исполнилась, генерировать
соответствующее событие.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


1. Из стакана и берется.
2. Уже сделал. Осталось только оттесить. А вот тут проблемы. Плаза
вносит свои особенности и прихоидтся тратить время на изыскания -
глюзя ли плазы или S#.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy