← Zurück

WhenCandlesFinished() при отсутствии данных

При потере связи через ReConnectionSettings.ExportTimeOutInterval случается событие ReConnectionSettings.ExportTimeOut. Почему-то в это же время срабатывает правило WhenCandlesFinished со свечкой из всех пришедших сделок текущего таймфрэйма. Это так задумано или нет? Я думал, это правило срабатывает только по пришествию сделки следующего таймфрэйма.

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

Версия S#? Приводите лог где это будет видно.

mdv
mdv Autor

Извините, что долго.

Версия 4.1.3. Вот лог, когда ведется мониторинг экспорта. Неполная свечка формируется в момент события ReConnectionSettings.ExportTimeOut.

2012.08.24 16:57:42.412|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки QuikDisconnected Сообщение Net error: [10053] Software caused connection abort
2012.08.24 16:57:52.399|       |A_L       |Отключились от QUIK.
2012.08.24 16:57:52.619|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки DllConnected Сообщение Терминал не подключен к серверу.
2012.08.24 16:57:57.430|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки QuikDisconnected Сообщение Net error: [10065] No Route to Host
...
2012.08.24 16:59:02.455|       |A_L       |Отключились от QUIK.
2012.08.24 16:59:02.647|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки DllConnected Сообщение Терминал не подключен к серверу.
2012.08.24 16:59:08.805|Error  |A_L       |Таймаут поступающих данных из quik.
2012.08.24 16:59:10.528|       |S         |Cвечка 24.08 16:00: O = 31989, L = 31963, H = 32014, C = 31988.

А вот лог, когда экспорт отключен (ReConnectionSettings.ExportTimeOutInterval = -1). Неполная свечка формируется в момент восстановления связи.

2012.09.04 16:23:32.254|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки QuikDisconnected Сообщение Net error: [10053] Software caused connection abort
2012.09.04 16:23:42.249|       |A_L       |Отключились от QUIK.
2012.09.04 16:23:42.443|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки DllConnected Сообщение Терминал не подключен к серверу.
...
2012.09.04 16:28:32.504|       |A_L       |Отключились от QUIK.
2012.09.04 16:28:32.690|Error  |A_L       |StockSharp.Quik.ApiException: Код ошибки DllConnected Сообщение Терминал не подключен к серверу.
2012.09.04 16:28:42.504|       |A_L       |Соединение восстановлено после разрыва.
2012.09.04 16:28:44.013|       |S         |Cвечка 04.09 16:00: O = 141325, L = 140985, H = 141360, C = 141190.
mdv
mdv Autor

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

Добавил к инициализации QuikTrader

_trader = new QuikTrader(Path.Text);
_trader.TradesKeepTime = TimeSpan.FromHours(2);
_trader.ReConnectionSettings.IsReStartExport = true;
_trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
...

Ну и вывод сообщения о неправильной свечке

private void ProcessCandle(Candle candle)
{
 if(candle.OpenTime + (candle as TimeFrameCandle).TimeFrame > Trader.GetMarketTime(Exchange.Rts))
 {
  MessageBox.Show("Пришла свечка из будущего за " + candle.OpenTime);
 }
 ...
}

Далее эксперимент такой. Запускаю, жду, пока все загрузится, выключаю интернет, включаю назад и вижу неполную сформированную свечку.

Mikhail Sukhov
Mikhail Sukhov

mdv: Минимальные изменения примера SampleSMA, в котором приходит свечка из будущего. Версия свежая, пару дней назад брал с кодплекса.

Спасибо за информацию. Мы занесли проблему в список наших задач. Как решим более приоритетные задачи, обязательно вернемся к данной проблеме.