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

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


Den

Avatar
S# 2.6.2 + Quik 5.17

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

Code
this.Trader.RegisterQuotes(_RI);

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

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

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


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

Code
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 Go to

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



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

Den

Avatar
Date: 6/19/2011
Reply


Mikhail Sukhov Go to
Den Go to

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



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


Спасибо! нашел: Если код и класс инструмента содержат символ дефис, то рекомендуется поменять разделитель на другой символ через свойство QuikTerminal::MarketDepthDelimiter.

Но, проблемы продолжились...
Сделал
Code
this.Trader.Terminal.MarketDepthDelimiter = "@";


После вызова

Code
MarketDepth md = this.Trader.GetMarketDepth(_RI);


Получаю md со значениями BestAsk.{Price, Volume} все время равными 0.
А Trader.ProcessDataError выдает:


Code
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 Go to
Mikhail Sukhov Go to
Den Go to

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



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


Спасибо! нашел: Если код и класс инструмента содержат символ дефис, то рекомендуется поменять разделитель на другой символ через свойство QuikTerminal::MarketDepthDelimiter.

Но, проблемы продолжились...
Сделал
Code
this.Trader.Terminal.MarketDepthDelimiter = "@";


После вызова

Code
MarketDepth md = this.Trader.GetMarketDepth(_RI);


Получаю md со значениями BestAsk.{Price, Volume} все время равными 0.
А Trader.ProcessDataError выдает:


Code
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.
Thanks:

Mikhail Sukhov

Avatar
Date: 6/19/2011
Reply


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


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


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

loading
clippy