← 戻る

Поломался запуск экспорта кастомных таблиц DDE в 4.3.13

Когда запускаем экспорт одиночной таблицы через quikTrader.StartExport(table), все нормально, экспорт стартует. Для всех последующих таблиц запуск экспорта не срабатывает. В лог пишется:

2015/10/05 16:09:54.210|Debug  |QuikTrader|BP:MarketData,T(L)=2015.10.05 16:09:54.210,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=0
2015/10/05 16:09:54.538|Debug  |QuikTrader|BP:MarketData,T(L)=2015.10.05 16:09:54.538,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=0
2015/10/05 16:09:54.538|Error  |QuikTrader|System.InvalidOperationException: Subscribed
2015/10/05 16:09:55.023|Debug  |QuikTrader|BP:MarketData,T(L)=2015.10.05 16:09:55.037,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=0
2015/10/05 16:09:55.037|Error  |QuikTrader|System.InvalidOperationException: Subscribed

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

コメント (2)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Mikhail Sukhov
Mikhail Sukhov

А что говорит ГитХаб?😉

Валентин Лебедев
Валентин Лебедев 著者

Как я понял полистав исходники, проблема возникает в BasketMessageAdapter.cs, exception выдает строка 310. Там перед тем как обработать входящее сообщение, из MarketDataMessage функцией CreateKey создается ключ к словарю _subscriptionStates, и если такой ключ уже есть, выдается ошибка. Проблема в том что в функции CreateKey не учитывается, что CustomExportMessage отличаются лишь своими внутренними свойствами. Как один из вариантов решения, можно в конструкторе CustomExportMessage задавать SecurityId с SecurityCode = имени таблицы.