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


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


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

Tags:


Thanks:




4 Answers
Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 8/3/2010
Reply


А что за сбой?

Thanks:

Alter

Avatar
Date: 8/3/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 8/4/2010
Reply


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

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

Thanks:

Alter

Avatar
Date: 8/4/2010
Reply


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

Topic starter
Thanks:


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

loading
clippy