Ошибка экспорта стакана

Ошибка экспорта стакана
Atom
6/10/2011
Den


S# 2.6.2 + Quik 5.17

Вызываю для текущего фьюча на RTS:

```

this.Trader.RegisterQuotes(_RI);

Стакан открывается сам.

Потом использую код из примера:

           ```
 foreach (var qoute in this.Trader.GetMarketDepth(_RI))
            {
                Console.WriteLine("Направление {0} Объем {1} Цена {2}", qoute.OrderDirection, qoute.Volume, qoute.Price);
            } 

Получаю серию ошибок:

System.InvalidOperationException: Название таблицы со стаканом оформлено неверно '[стакан]RTS-6.11-SPBFUT'.
   at Ecng.Trading.Quik.QuikTrader.#=qTre19CdRPyKpnVO8WaQdUkvQrIiCuIHe9XcW7RXbC04=.#=qwQWcSTSHTT$2hNIl5pTVwA==()
   at Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)

Скриншот настроек:

Помогите разобраться в чем дело, пожалуйста!


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 6/10/2011
Reply


Den: ODE0�

В документации написано про случай с дефисом.

Thanks: Den

Den

Avatar
Date: 6/19/2011
Reply


Mikhail Sukhov:

Den: ODE0�

В документации написано про случай с дефисом.

Спасибо! нашел: Если код и класс инструмента содержат символ дефис, то рекомендуется поменять разделитель на другой символ через свойство 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)

Что можно с этим сделать?

Thanks:

Den

Avatar
Date: 6/19/2011
Reply


Den:

Mikhail Sukhov:

Den: ODE0�

В документации написано про случай с дефисом.

Спасибо! нашел: Если код и класс инструмента содержат символ дефис, то рекомендуется поменять разделитель на другой символ через свойство 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==(IList1 #=qGZJOOyj9_11QAXVxoVAHJQ==, Action2 #=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.
Thanks:

Mikhail Sukhov

Avatar
Date: 6/19/2011
Reply


Den: Еще Verifier неверно выдает ошибку названия стакана если в программе изменено значение Trader.Terminal.MarketDepthDelimiter.

Начиная с 3.x это свойство вообще исчезло как рудимент. Так что рекомендую обновиться.

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy