Снова веда с состоянием заявки


Снова веда с состоянием заявки
Atom Reply
9/16/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

Tags:


Thanks:




23 Answers
Mikhail Sukhov

Avatar
Date: 9/16/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/17/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 9/17/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/18/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 9/20/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/21/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 9/21/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/22/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 9/22/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/23/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 9/23/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/28/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 9/28/2010
Reply


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

Thanks:

Tauler

Avatar
Date: 9/29/2010
Reply


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

dart

Avatar
Date: 10/1/2010
Reply


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

Mikhail Sukhov

Avatar
Date: 10/1/2010
Reply


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

Tauler

Avatar
Date: 10/2/2010
Reply


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

dart

Avatar
Date: 10/4/2010
Reply


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

Mikhail Sukhov

Avatar
Date: 10/5/2010
Reply


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


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

dart

Avatar
Date: 10/21/2010
Reply


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


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

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

Mikhail Sukhov

Avatar
Date: 10/21/2010
Reply


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


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

dart

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


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

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

dart

Avatar
Date: 10/21/2010
Reply


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

Mikhail Sukhov

Avatar
Date: 10/21/2010
Reply


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


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


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

loading
clippy