Den Mikhail Sukhov Den КодSystem.InvalidOperationException: Название таблицы со стаканом оформлено неверно '[стакан]RTS-6.11-SPBFUT'.
at Ecng.Trading.Quik.QuikTrader.#=qTre19CdRPyKpnVO8WaQdUkvQrIiCuIHe9XcW7RXbC04=.#=qwQWcSTSHTT$2hNIl5pTVwA==()
at Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)
В документации написано про случай с дефисом.
Спасибо! нашел: Если код и класс инструмента содержат символ дефис, то рекомендуется поменять разделитель на другой символ через свойство QuikTerminal::MarketDepthDelimiter.
Но, проблемы продолжились...
Сделал
Кодthis.Trader.Terminal.MarketDepthDelimiter = "@";
После вызова
КодMarketDepth md = this.Trader.GetMarketDepth(_RI);
Получаю md со значениями BestAsk.{Price, Volume} все время равными 0.
А Trader.ProcessDataError выдает:
КодSystem.ArgumentException: An item with the same key has already been added.
at Ecng.Trading.Quik.QuikTrader.#=qTre19CdRPyKpnVO8WaQdUkvQrIiCuIHe9XcW7RXbC04=.#=qIP9csWbWPPOGL_MWOFxf4w==(Exception #=qUOhrk6Em1lNQ6backpqQJg==)
at Ecng.Trading.Quik.DdeTable.#=qZiwPb3v2t_oT0D7mrAAKDQ==(IList`1 #=qGZJOOyj9_11QAXVxoVAHJQ==, Action`2 #=qytkU$YIpb54LPXCs3YXrAA==, Action`1 #=qrtTaqcpDj5SIhcizQIpeJg==)
at Ecng.Trading.Quik.QuikTrader.#=qTre19CdRPyKpnVO8WaQdUkvQrIiCuIHe9XcW7RXbC04=.#=qwQWcSTSHTT$2hNIl5pTVwA==()
at Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)
Что можно с этим сделать?
Удалось воспроизвести на Quik-Junior:
Если в стакане наряду с колонками "покупка, продажа" также присутствуют колонки "сумма лучшей {покупки,продажи}", и при этом
в настройках нет галочки "Покупку показывать сверху", то BestAsk.{Price, Volume} все время равны 0.
Особо интересен факт, что даже если потом галочку поставить, то все равно будут эксепшены и BestAsk.{Price, Volume} равными 0.
Чтобы избавиться от нее нужно закрывать стакан и настраивать новый.
Если колонок "сумма лучшей {покупки,продажи}" в стакане нет, то настройка "Покупку показывать сверху" ни на что не влияет.
Михаил,
возможно это стоит добавить в Verifier.
Еще Verifier неверно выдает ошибку названия стакана если в программе изменено значение Trader.Terminal.MarketDepthDelimiter.