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


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


Теги:


Спасибо:


Mikhail Sukhov

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


А что за сбой?

Спасибо:

Alter

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


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

Спасибо:

Mikhail Sukhov

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


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

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

Спасибо:

Alter

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


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

Спасибо:


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

loading
clippy