Предложение по Trader.IsExportRunning
Atom Ответить
02.08.2010


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

Теги:


Спасибо:



Поздравляем именинников: Станислав Гайворонский

4 Ответов
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