Снова веда с состоянием заявки
Atom Ответить
16.09.2010


Ошибка повторилась

10:30:52,176 - Order check in Name = RSZ0_VS_9, TransID = 37517, Id =
2324443352, Vol = 3, Bal = 3, State = Active, Status = Done
10:30:52,176 - Order check in Name = RSZ0_VS_9, TransID = 37517, Id =
2324443352, Vol = 3, Bal = 3, State = Active, Status = Done
10:30:52,223 - Order check in Name = RSZ0_VS_9, TransID = 37517, Id =
2324443352, Vol = 3, Bal = 3, State = Done, Status = Done
10:30:52,223 - Instr RSZ0_VS_9. Sec = RSZ0. Remove canceled empty
order, TransID = 37517, Vol = 3, Bal = 3, State = Done, Status = Done

а реально из заявки 1 контракт прошел. стокшарп 2.4

Теги:


Спасибо:




23 Ответов
Mikhail Sukhov

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


По логу же заявка не возвращается в активное состояние.

Спасибо:

Tauler

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


а у меня после того как заявка Done/Done - лог прекращается. суть в
том что эта заявка была отменена, но в ней из 3-х контрактов один
прошел, т оесть баланс в квике был равен двум.

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

Mikhail Sukhov

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


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

Спасибо:

Tauler

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


нене. давно все передало на класс Strategy. лог пишется посредством
log4net в событии OrderChanged.

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

Mikhail Sukhov

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


В конечном итоге баланс обновился? Сделки пришли?

Спасибо:

Tauler

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


в квике да - сделка пришла с одним контрактом, и баланс в заявке
обновился. в роботе не знаю - у меня по логике если заявка Done/Done,
она выбрасывает из отслеживаемых. но думаю что так же пришла потом в
OrderChanged с балансом 2.

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

Mikhail Sukhov

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


Вообще это важно отследить. Потому как тут ситуация следующая. Квик
прислал необновленный баланс и статус снята. Что QuikTrader делать?
Естественно что OrdersChanged. Догадаться о том, что потом Квик пришел
еще сделку по данной заявке (и баланс измениться) невозможно. А вдруг
не изменится никогда? Это ведь и может быть обычная заявка, которая не
исполнилась ни по одному контракту. Надо мучить Квик поддержку. Это
явная бага. Потому как сейчас увы не гарантировать ничего. Так же
потом Квик может одуматься и сказать, нет-нет, стойте. Оказывает еще
одна сделка была по заявке.

Спасибо:

Tauler

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


а помните вы говориле про кое-какую эвристику? может она хулиганичает?

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

Mikhail Sukhov

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


Она объем изменяет, а не состояние. По вновь поступившим сделкам. А
тут он вообще не изменился.

Спасибо:

Tauler

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


Короче квик - это барахло. буду на палуз переходить.

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

Mikhail Sukhov

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


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

Спасибо:

Tauler

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


Думаю тогда сделать что то отстойника для заявок с Done/Done. буду там
пару секунд их еще держать.

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

Mikhail Sukhov

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


Я бы посоветовал чуть усложнить. Отстойник только для тех заявок, на
которые был послан сигнал отмены.

Спасибо:

Tauler

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


Да так и планировал. Трабла то тока с отменяемыми.
Автор топика
Спасибо:

dart

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


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

Mikhail Sukhov

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


Конечно можно, но лечить нужно причину, а не следствие. Данное сообщение говорит о том, что по выставленной заявке не присылается уведомление подтверждения регистрации. В чем причина? Можете точно узнать, регистрируются ли с указанным номером транзакции завки в Квике? Если нет, то смотрите на событие ITrader.OrdersFailed, где смотрятся ошибки по выставляемым заявкам.
Спасибо:

Tauler

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


а бывает - в процессе работы экспорт по DDE таблицы отваливается.
Автор топика
Спасибо:

dart

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


Вот опять случилось только что: "Заявка 46560182 не имеет состояния". В квике у меня этот номер заявки = 2422005946, ID транзакции = 46560182 . Она исполнилась.
Покупка произошла. При этом на панели Поза по этой стратегии равна нулю, хотя должно было стать > 0. То есть информация о том что покупка произошла, не отразилась.
Другие стратегии продолжают нормально работать параллельно.
Щас придётся вырубать робота, жалко - другие то стратегии работают, и теперь им придётся два таймфрейма пропустить.
Своеобразный перерыв в работе робота получится, за исключением адаптера.
ЗЫ: На всякий случай проверил, ДДЕ-экспорт в во всех таблицах вроде включен.
Спасибо:

Mikhail Sukhov

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


dart
ЗЫ: На всякий случай проверил, ДДЕ-экспорт в во всех таблицах вроде включен.


Судя по симптомам (и заявка не изменилась и сделка не пришла) все таки нет.
Спасибо:

dart

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


Mikhail Sukhov
dart
ЗЫ: На всякий случай проверил, ДДЕ-экспорт в во всех таблицах вроде включен.


Судя по симптомам (и заявка не изменилась и сделка не пришла) все таки нет.

А как проверить что ДДЕ отрубился и что в таких ситуациях делать?
Вот сейчас опять впервые за долгое время это случилось. Заявка в квик послана и исполнилась, а S# шлёт сообщения "Заявка такая-то не имеет состояния". Проверил все таблицы в квике. Везде ДДЕ включен, потом я вручную останавливал ДДЕ, вручную запускал.
Не помогло
Заранее спасибо
Спасибо:

Mikhail Sukhov

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


dart
А как проверить что ДДЕ отрубился и что в таких ситуациях делать?


ReConnectionManager такое умеет. Что делать - перезапускать экспорт, что тоже он умеет.

dart

Проверил все таблицы в квике. Везде ДДЕ включен, потом я вручную останавливал ДДЕ, вручную запускал.


Все не надо, достаточно только таблицу заявок.

Желательно больше деталей. Например, какие еще есть не обновленные поля у заявки. Какой режим у QuikTrader.IsAsyncMode.
Спасибо:

dart

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


Я пробовал останавливать экспорт при работающих стратегиях (состояние runned). Потом запускал снова. Не помогает.
Режим синхронный.
Когда останавливаю соответствующую стратегию, начинают сыпаться сообщения что котирование продолжается.
Спасибо:

Mikhail Sukhov

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


dart
Я пробовал останавливать экспорт при работающих стратегиях (состояние runned). Потом запускал снова. Не помогает.
Режим синхронный.
Когда останавливаю соответствующую стратегию, начинают сыпаться сообщения что котирование продолжается.


Это все следствие. Котирование должно отменяет заявку, но ее состояние не меняется... Первопричина - почему заявка не обновляется. Кроме состояния, что еще по заявке не обновляется? Событие OrdersChanged по заявке приходит?
Спасибо:


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

loading
clippy