Ошибка в матлабовском листнере на события NewTrades и SecuritiesChanged


Ошибка в матлабовском листнере на события NewTrades и SecuritiesChanged
Atom Ответить
12.02.2015


используется связка quik <->S#.API 4.2.43<-> Matlab на базе представленного:
https://stocksharp.ru/do...77-a174-2f24385386a0.htm

все события кроме 'NewTrades' и 'SecuritiesChanged' работают замечательно - заявки выставляются/исполняются из матлам, информация по позициям по текущему стакану обновляется и передается в матлаб.
Собственно оба события 'NewTrades' и 'SecuritiesChanged' генерят одну и ту же ошибку:

Сообщение 'Execution,T(L)=2015/02/12 19:59:56.541,T(S)=2015/02/12 10:45:28.086,(Tick),Sec=S#:USD000UTSTOM@CETS, Native:,Type:Stock,Ord=0/0/0,Fail=,TId=93094026,Pf=,TPrice=66.528,UId=' привело к ошибке обработки.
Сообщение 'Execution,T(L)=2015/02/12 19:59:56.544,T(S)=2015/02/12 10:45:47.937,(Tick),Sec=S#:USD000UTSTOM@CETS, Native:,Type:Stock,Ord=0/0/0,Fail=,TId=93094082,Pf=,TPrice=66.548,UId=' привело к ошибке обработки.
Индекс находился вне границ массива.
Сообщение 'Execution,T(L)=2015/02/12 19:59:56.547,T(S)=2015/02/12 10:45:52.453,(Tick),Sec=S#:USD000UTSTOM@CETS, Native:,Type:Stock,Ord=0/0/0,Fail=,TId=93094141,Pf=,TPrice=66.52,UId=' привело к ошибке обработки.
Сообщение 'Execution,T(L)=2015/02/12 19:59:56.547,T(S)=2015/02/12 10:45:53.044,(Tick),Sec=S#:USD000UTSTOM@CETS, Native:,Type:Stock,Ord=0/0/0,Fail=,TId=93094145,Pf=,TPrice=66.526,UId=' привело к ошибке обработки.
Индекс находился вне границ массива.
Индекс находился вне границ массива.
Индекс находился вне границ массива.
Индекс находился вне границ массива.


Подскажите пожалуйста в какой класс смотреть чтобы понять откуда лезет ошибка, как ее отследить и какова примерная природа ошибки?

привожу используемый в матлабе код( необходимые библиотеки подключены):

...Начальный матлабовский код
connector = StockSharp.MatLab.MatLabConnector(StockSharp.Quik.QuikTrader(connector_path));

addlistener(connector, 'Connected', @connectorConnected);
addlistener(connector, 'NewTrades', @onalltrades);
addlistener(connector, 'ProcessDataError', @processError);
Connect(connector.RealConnector);
... конечный матлабовский код





-- Начало обработчика всех сделок
function onalltrades(sender, args)

q=1;
--// Конец обработчика всех сделок

Все! больше никаких действий не совершается( те код намеренно упрощен чтобы исключить др модули), и самое интересное что лиснер работает и сделки идут нормальным временем/объемом/ценой / направлением при этом между нормальными сделки лезет эта злополучная ошибка.
как будто NewTrades генерит не только сделки, но еще и ошибки.

Теги:


Спасибо:




4 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.02.2015
Ответить


Спасибо:

galeese

Фотография
Дата: 15.02.2015
Ответить


получил колл-стек выдаваемой ошибки
в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
в dotnetcli.NETEventListener.EventListenerCallbackFcn(Object evtSrc, Object evtArgs)
в Ecng.Common.DelegateHelper.SafeInvoke[T](EventHandler`1 handler, Object sender, T args, Action`1 action)
в Ecng.Common.DelegateHelper.SafeInvoke[T](EventHandler`1 handler, Object sender, T args)
в StockSharp.Algo.Connector.#=qo7MxDeOfDh7ktfId1vUtS7jlWNZpibBa0kmNL5LQaok=(Security #=qelC0j0knw9lGV4fmO3HD7A==, ExecutionMessage #=qcdNHLcM0l5L$xGKCyvn$ZQ==)
в StockSharp.Algo.Connector.#=qLFCL01w5eLFhCa1yjA1zuumXIVk4VbbtSF8uymWICLA=.#=qVEBfi_7THor7h1XZh7VVPNndNy1RHolo1ahXmPFEaCw=(Security #=qJT1LC_aF9yWUITLPp9Y6lA==)
в StockSharp.Algo.Connector.#=qETOePoBid_elfAn2vzbvyHFcM$_EyhSgJo3qoi$nxUQ=[TMessage](TMessage #=qE9HJVP_xcazKp6qoWNpmRw==, Func`2 #=qcbjPid7EOf5Lfb7YPwJMEg==, Action`2 #=qT5N5KfJWf6ctgLaDe55_$Q==, Boolean #=qzZfvIKuG2TIlLWRPh16CnoiRaUaF2pSCya6cYr$VMis=, String #=qWmSGrZrY_ul3FuezMhdzOuQPeLLyVvnbZ8cWUAoC8Eo=)
в StockSharp.Algo.Connector.#=qHmnRaS0meA3XCn$1C$83WKZqTrLA4Jpc9YeWMbSaJb0=(ExecutionMessage #=qhUq7Y1IZPTToLRidkqjQ_g==)
в StockSharp.Algo.Connector.OnProcessMessage(Message message, MessageAdapterTypes adapterType, MessageDirections direction)


Видно что ошибка зиждется глубоко внутри ядра стокшарпа, в публичных исходниках этого нет. Подскажите, пожалуйста, что я делаю не так?
Спасибо
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.02.2015
Ответить


galeese Перейти
в публичных исходниках этого нет.


Все там есть. Потратьте хотя бы неделю на освоение. Вы сыкономите себе кучу времени.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.02.2015
Ответить


Хотя падает то вообще внутрях МатЛаб. Подозреваю, что вы с событиями неправильно в самом мат лабе работаете. Идет изменение подписчиков во время вызова.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy