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

Ошибка в матлабовском листнере на события NewTrades и SecuritiesChanged
Atom
2/12/2015
galeese


используется связка quik <->S#.API 4.2.43<-> Matlab на базе представленного: http://stocksharp.com/doc/html/e3f889a5-ddcd-4c77-a174-2f24385386a0.htm

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

Сообщение '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 генерит не только сделки, но еще и ошибки.


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 2/12/2015
Reply


Thanks:

galeese

Avatar
Date: 2/15/2015
Reply


получил колл-стек выдаваемой ошибки в System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) в dotnetcli.NETEventListener.EventListenerCallbackFcn(Object evtSrc, Object evtArgs) в Ecng.Common.DelegateHelper.SafeInvoke(EventHandler1 handler, Object sender, T args, Action1 action) в Ecng.Common.DelegateHelper.SafeInvoke(EventHandler1 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==, Func2 #=qcbjPid7EOf5Lfb7YPwJMEg==, Action2 #=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)

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

Thanks:

Mikhail Sukhov

Avatar
Date: 2/15/2015
Reply


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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 2/15/2015
Reply


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

Thanks:


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

loading
clippy