← 戻る

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

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

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
Mikhail Sukhov

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

Tauler
Tauler 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

dart
dart

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

Mikhail Sukhov
Mikhail Sukhov

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

Tauler
Tauler 著者

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

dart
dart

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

Mikhail Sukhov
Mikhail Sukhov

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

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

dart
dart

Mikhail Sukhov:

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

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

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

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

dart
dart

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

Mikhail Sukhov
Mikhail Sukhov

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

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