Не работает котирование

Не работает котирование
Atom
11/14/2011
pehas


Приветствую! Есть проблема с котированием

Стратегия котирования выставляет заявку в квик. Перекотирует ее один раз, а дальше не может отследить состояние вновь выставленной заявки. Пишет "Заявка ХХХХХХХХХ не имеет состояния"

Лог: :::spoiler

15:19:43.203 | | QuikTrader | Экспорт запущен. 15:19:42.921 | | QuikTrader | New order: TransactionId=49849438, Id=1091158826, Price=1601,55, Balance=50, Security=UXZ1@UX, State=Done 15:19:43.484 | | QuikTrader | New order: TransactionId=0, Id=1091159261, Price=1600,3, Balance=48, Security=UXZ1@UX, State=Done 15:19:43.546 | | QuikTrader | New order: TransactionId=0, Id=1091577287, Price=1768,7, Balance=0, Security=UXZ1@UX, State=Done 15:19:50.421 | | TS | Стратегия запущена. 15:24:22.640 | | TS | Пробой канала DOWN 15:24:22.859 | | MQS | Стратегия запущена. 15:24:23.109 | | MQS | Регистрация новой заявки на Sell с ценой 1583,00 и объемом 15. 15:24:23.140 | | QuikTrader | RegisterOrder: TransactionId=55179001, Id=0, Price=1583,00, Balance=15, Security=UXZ1@UX, State=None 15:24:23.171 | | MQS | Заявка 55179001 на Sell отправлена с ценой 1583,00 объемом 15. 15:24:23.906 | Warning | MQS | Заявка 55179001 не имеет состояния. 15:24:24.031 | | QuikTrader | New order: TransactionId=55179001, Id=1091971814, Price=1583,00, Balance=15, Security=UXZ1@UX, State=Active 15:24:32.906 | | MQS | Цена текущей 1583,00 и лучшей 1582,20. 15:24:32.906 | | MQS | Лучший бид 1581,05 и лучший аск 1582,2. 15:24:32.921 | | MQS | Котирование заявки 55179001 на Sell с ценой 1583,00 объемом 15. 15:24:32.937 | | MQS | Перекотирование зарегистрировано для заявки 55179002 на Sell с ценой 1582,20 объемом 15. 15:24:33.625 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:33.625 | | QuikTrader | New order: TransactionId=0, Id=1091972970, Price=1582,2, Balance=15, Security=UXZ1@UX, State=Active 15:24:33.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:34.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:35.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:36.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:37.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:38.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:39.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:40.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:41.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:42.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:43.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:44.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:45.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:46.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:47.906 | Warning | MQS | Заявка 55179002 не имеет состояния. 15:24:48.906 | Warning | MQS | Заявка 55179002 не имеет состояния. ... до бесконечности

Код запуска котирования


            var MarketPrice = this.Security.GetMarketPrice(Direction);
            var order = this.CreateOrder(Direction, MarketPrice, 15);

            // Регистрация заявки через котирование
            var quotingStrategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
            this.ChildStrategies.Add(quotingStrategy);

Интересно, что заявка остается висеть в стакане. И не перекотируется. Она в итоге исполняется по выставленной ранее цене. Но стратегия по прежнему пишет варнинги и не знает, что появились трейды по заявке

Версия S# - 4.0.5. При тестировании данной стратегии на истории котирование работает.

В чем может быть проблема?


Tags:


Thanks:


1 2  >
Alexander

Avatar
Date: 11/14/2011
Reply


А зачем в котирование передавать пустые Unit?

new Unit(), new Unit()

Thanks:

pehas

Avatar
Date: 11/14/2011
Reply


А зачем в котирование передавать пустые Unit?

new Unit(), new Unit()

Взял из примера SimpleSMA..


// регистрируем заявку (через котирование)
var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
base.ChildStrategies.Add(strategy);

Да в принципе, такая же проблема и с действием ClosePosition() для правила. Оно тоже пытается закрыть позицию котированием. И получаются те же сообщения. Одна перекотировка, а далее только сообщения о том, что заявка не имеет состояния. На истории все работает.

Может проблема в неправильной синхронизации шлюза ITrader с биржей? Возможно по какой-то из таблиц отваливается экспорт DDE или еще что? Что вообще значит "Заявка не имеет состояния" ?

Thanks:

Alexander

Avatar
Date: 11/14/2011
Reply


А зачем в котирование передавать пустые Unit?

new Unit(), new Unit()

Взял из примера SimpleSMA..


// регистрируем заявку (через котирование)
var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
base.ChildStrategies.Add(strategy);

Да в принципе, такая же проблема и с действием ClosePosition() для правила. Оно тоже пытается закрыть позицию котированием. И получаются те же сообщения. Одна перекотировка, а далее только сообщения о том, что заявка не имеет состояния. На истории все работает.

Может проблема в неправильной синхронизации шлюза ITrader с биржей? Возможно по какой-то из таблиц отваливается экспорт DDE или еще что? Что вообще значит "Заявка не имеет состояния" ?

Значит заявка не переходит в состояние Active. А Verifier ошибок не выдаёт?

Thanks:

pehas

Avatar
Date: 11/15/2011
Reply


Alexander Mukhanchikov: Значит заявка не переходит в состояние Active. А Verifier ошибок не выдаёт?

Verifier пишет зеленым "Все настроено правильно". Лимитированные заявки отрабатывают. А вот с котированием такая проблема..

Thanks:

esper

Avatar
Date: 11/15/2011
Reply


Сейчас сделал небольшую программу, которая просто выполняет котирование, запустил примерно 20 раз - такой ситуации ни разу не возникло. У вас данная ситуация воспроизводится стабильно? Есть возможность позапускать программу с расширенным логированием?

Thanks:

Mikhail Sukhov

Avatar
Date: 11/15/2011
Reply


pehas: Verifier пишет зеленым "Все настроено правильно". Лимитированные заявки отрабатывают. А вот с котированием такая проблема..

А что это за заявка такая в логе с номером транзакции 0?

Thanks:

Alexander

Avatar
Date: 11/15/2011
Reply


Mikhail Sukhov:

pehas: Verifier пишет зеленым "Все настроено правильно". Лимитированные заявки отрабатывают. А вот с котированием такая проблема..

А что это за заявка такая в логе с номером транзакции 0?

Тут такая же проблема

Thanks:

Mikhail Sukhov

Avatar
Date: 11/15/2011
Reply


esper: Сейчас сделал небольшую программу, которая просто выполняет котирование, запустил примерно 20 раз - такой ситуации ни разу не возникло.

А у тебя MOVE был заявки или снятие + регистрация новой? Судя по логу, там заявка была именно "подвинута".

Thanks:

Mikhail Sukhov

Avatar
Date: 11/15/2011
Reply


Alexander Mukhanchikov: Тут такая же проблема

Не, там наверняка какая-то бага в настройках. А тут 0 судя по всему от MOVE. Что-то вспоминаю насчет этого, и воспоминания говорят о том, что Квик для таких заявок возвращает нулевой номер транзакции.

Thanks:

pehas

Avatar
Date: 11/15/2011
Reply


Mikhail Sukhov:

Alexander Mukhanchikov: Тут такая же проблема

Не, там наверняка какая-то бага в настройках. А тут 0 судя по всему от MOVE. Что-то вспоминаю насчет этого, и воспоминания говорят о том, что Квик для таких заявок возвращает нулевой номер транзакции.

Доктор, скажите, есть ли от этого лекарство? [huh] И что такое MOVE заявка?

Сегодня в торговой сессии не успел потестировать получше. Попробую еще на акциях завтра погонять. Может это фьючерс глючит так. Прикол украинской биржи. Например, у нас не работает метод Strategy.ClosePosition(), так как на UX на фьючерсе нельзя выставить заявку с нулевой ценой. Приходится пользовать самописный метод для закрытия позиции. Или закрываться через котирование действием ClosePosition, что опять таки не работает из за той ошибки.. [sad]

Thanks:
1 2  >

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

loading
clippy