Обнаружилась проблема с QuikTrader
Библиотека работает через QuikTrader-LUA-Quik. При разрыве соединения со стороны квика (например, при сетевой ошибке) после восстановления связи QuikTrader самостоятельно подключается, все восстанавливается кроме подписки на свечи. События connector.Connected не возникает. Это лечится подпиской на свечи заново, например так:
Код(connector as QuikTrader).NewMessage+= (mes)=>
{
if (mes is ConnectMessage)
{
if (_strategy != null && _strategy.CandleSeries != null)
{
((Connector)connector).SubscribeCandles(_strategy.CandleSeries, DateTime.Today.AddDays(-1));
((Connector)connector).CandleSeriesProcessing += DrawCandle;
}
}
};
Другая проблема, более глобальная. После ночи (когда квик работает, но брокер рубит соединения), утром все восстанавливается, переподключается, НО:
ни одно событие на сделки не обрабатываетсяorder.WhenNewTrade(Connector).Do(NewTrade).Apply() - внутри стратегии, NewTrade не вызывается
connector.NewMyTrade - не возникает
При этом события на ордеры возникают, connector.NewOrder и другие
В итоге, после ночи запущенная стратегия выставляет ордера, они исполняются, но сама стратегия и коннектор не знают об исполнении.
Это печально