Предложение по Trader.IsExportRunning

Предложение по Trader.IsExportRunning
Atom
8/2/2010
Alter


Сейчас Trader.IsExportRunning возвращает true когда запуск экспорта еще не завершен и экспортируются еще не все таблицы. Это приводит к сбоям в работе стратегий во время перезапуска экспорта. Будет лучше, если это свойство в данном случае вернет false.


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 8/3/2010
Reply


А что за сбой?

Thanks:

Alter

Avatar
Date: 8/3/2010
Reply


Ну например в квике оборвалась связь, reconnection manager переподключился и перезапустил экспорт. В какой-то момент уже запустился экспорт всех таблиц, кроме таблицы с позициями. В это время стратегия проверяет, заработал ли экспорт, IsExportRunning возвращает true, стратегия в полной уверенности, что все хорошо, запрашивает позицию и получает устаревшие данные. Дальше происходит все что угодно, вплоть до выставления ненужных заявок на добор позиции и превышения ее лимита. Поэтому хочется иметь IsExportRunning == true только при экспортировании всех предназначенных для вывода таблиц.

Thanks:

Mikhail Sukhov

Avatar
Date: 8/4/2010
Reply


Так просто это не сделать. Дело в том, что нельзя точно сказать, что идет экспорт или нет. Только по косвенным признакам... Как обходной путь - подписаться на событие ITrader.PositionsChanged. А в ReConnectionManager.ConnectionRestored возводить спец. флаг - дожидаться изменения позиции.

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

Thanks:

Alter

Avatar
Date: 8/4/2010
Reply


Судя по всему, ждать Changed для всех нужных таблиц - это единственное решение.

Thanks:


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

loading
clippy