Тестирование версии 2.9

Тестирование версии 2.9
Atom
5/5/2014
JaguarFX


Итак Выложили 4.2.3.0 , где появилось обновление API для работы с TransaqConnector версии 2.9.

Первые результаты тестирования:

  1. В режиме RealTimeEmulation:
  • список бумаг приходит,
  • портфели не приходят,
  • стаканы не приходят,
  • свечки не приходят. При этом никаких ошибок система не регистрирует. Вообще впечатление такое что режим полностью мертв, даже при включении параметра расширенного логирования MaxLogging, никакой информации в Окно интерпретации не поступает.
  1. В режиме живого подключения:
  • список бумаг приходит,
  • портфели приходят,
  • стаканы приходят,
  • свечки приходят.

Но есть два досадных глюка

  1. Сразу после подключения, до запуска каких-либо стратегий, система по всем инструментам, вписанным в созданные стратегии, выдает ошибку Error System.ArgumentException: Инструмент ХХХХ@НННН не имеет информации о подключении.

Стек-трейс ошибки:

TransaqTrader 05.05.2014 20:12:59 Error System.ArgumentException: Инструмент SRM4@FORTS не имеет информации о подключении. Имя параметра: security в #=qGkaWoNDIavvUdLr2DVmRQt3n5QGo8w1KTn2IKHZOGbQ=.#=qNa7Ej7$TGDLQQoLsRqp7NA==(Security #=qX3hKkeny6tCcaCiJMvXTdw==) в StockSharp.Algo.TraderHelper.GetMarketTime(Security security) в StockSharp.Algo.Strategies.StrategyHelper.GetMarketTime(Strategy strategy) в StockSharp.Algo.Strategies.StrategyHelper.IsTradeTime(Strategy strategy) в StockSharp.Algo.Strategies.Strategy.#=qoQVeRziv8qL78jMkBmvaz3NUKqmARWp0DHkkNfGM_Tg=(TimeSpan #=qfEVh9LW8LZzabPmc25$2EQ==) в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в StockSharp.Algo.Connector.#=qGlBOSm6XwE23tJ9Vj$Zw25y9X05v2hlLLEJNR5ZDGcg=(TimeSpan #=qfEVh9LW8LZzabPmc25$2EQ==) в StockSharp.Algo.Connector.#=qOVJ7lNdqw0puzaU_icDI$Q0t_necMNBmIfAT3$d$c6I=() в StockSharp.Algo.Connector.OnProcessMessage(Message message, MessageAdapterTypes adapterType, MessageDirections direction) в StockSharp.Transaq.TransaqTrader.OnProcessMessage(Message message, MessageAdapterTypes adapterType, MessageDirections direction) в StockSharp.Algo.Connector.#=qNSEHxtb7GzfF2fRppbMEreBLYGfPFEZzUlaHXkjQ_$6UEQOkAU3_PlL34KtxRvil(Message #=qfIRrKuNjZ85B6GcxUAdgJQ==) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в StockSharp.Messages.MessageAdapter1.OnOutMessageProcessor(Message message, IMessageAdapter adapter) в System.Action2.Invoke(T1 arg1, T2 arg2) в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action2 handler, T1 arg1, T2 arg2) в StockSharp.Messages.MessageProcessorPool.<StartProcessor>b__0(Message m, IMessageAdapter a) в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2) в StockSharp.Messages.MessageProcessor.<StockSharp.Messages.IMessageProcessor.Start>b__0()

  1. При отключении от коннектора возникает ошибка "Ссылка на объект не указывает на экземпляр объекта.", которая валит процесс. Стек-трейс ошибки:

в StockSharp.Messages.MessageAdapter1.SendOutMessage(Message message) в StockSharp.Messages.MessageAdapter1.<StartMarketTimer>b__f() в Ecng.Common.ThreadingHelper.<>c__DisplayClass1.<Timer>b__0(Object s) в System.Threading.TimerQueueTimer.CallCallbackInContext(Object state) в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) в System.Threading.TimerQueueTimer.CallCallback() в System.Threading.TimerQueueTimer.Fire() в System.Threading.TimerQueue.FireNextTimers() в System.Threading.TimerQueue.AppDomainTimerCallback()


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 5/6/2014
Reply


Пробовали запускать SampleTransaq?

Thanks:

JaguarFX

Avatar
Date: 5/6/2014
Reply


Сегодня протестил SampleTransaq, там возникают еще две ощибки:

  1. Сразу после подключения идет ошибка с конвертацией форматов "Cannot convert RUR to type StockSharp.Messages.CurrencyTypes." Скрин-шот ошибки: http://yadi.sk/d/AX0Gj1scPJf6a Стек-трейс:
в Ecng.Common.Converter.To(Object value, Type destinationType) в Ecng.Common.Converter.To(Object value) в StockSharp.Transaq.TransaqMessageAdapter.#=qyWHJjx$V7JIMvyK3Kedv61HVyQEJh00u1_xSHXTNY34=(#=qYJCxzEVHmZXb4JTADsUwb9caYPEeZUwlq0hjzeVlYogGtLm9QI3T8FXGwow$MJOmptgL3xklbXLdZ3Ix$mHYHQ== #=qbItcKPpaBzotZMkrhhp_AQ==) в StockSharp.Transaq.TransaqSessionHolder.#=qxmX3xmOEoD8EGet_HlMNGxo7smw$1BEaNLDk1w7IDNM=.#=q8gnYxk2Jin9467GVBu4bwEPggmnUJl5vnDwAG1KSBdA=(#=qWWPYLUYc0j4UlGlfVKoW5TiZi20ZN3IrO$SR8lov5Xt_MM2UUdNCSrh4M7QK$_ZO #=qUFZ_brcNO$fTdTAPrBmwwA==) в StockSharp.Transaq.TransaqSessionHolder.#=qa_LbneijAnrUDXdz$8PrY_lohxVQVAp684Wn9ST$l28=(#=qWWPYLUYc0j4UlGlfVKoW5TiZi20ZN3IrO$SR8lov5Xt_MM2UUdNCSrh4M7QK$_ZO #=qaUOXEo$QDZUViwcnVHdwqg==) в StockSharp.Transaq.TransaqMessageAdapter.#=q_iM3iPNjBYaEglGHNAIgig==(String #=qk70wh4dyxiMQ4jjmNStu$Q==)
  1. Если отключится и повторно подключиться, то последовательно возникают две ошибки: а) "" б) "Соединение на было установлено в заданный отрезок времени". Скрин-шот ошибок: http://yadi.sk/d/-8k6-zyJPJi6j Стек-трейса нет, там стоит null.
Thanks:

JaguarFX

Avatar
Date: 5/12/2014
Reply


Выложили 4.2.3.4

Из 4х перечисленных выше багов 3 успешно закрыты.

Осталась только один "Error System.ArgumentException: Инструмент ХХХХ@НННН не имеет информации о подключении." Как я выяснил, возникает он при любом обращении в коде к параметрам стратегии (Robot.BaseShellStrategy.Params.get, Robot.BaseShellStrProp.SchedulerIsEnabled.get и пр.), после которого происходит вызов StockSharp.Messages.MessageProcessor который в конечном итоге приводит к вызову StockSharp.Algo.TraderHelper.GetMarketTime(Security security) и выбросу соответствующей ошибки.


TransaqTrader System.ArgumentException: Инструмент SBER@EQBR не имеет информации о подключении.
Имя параметра: security
   в #=qacynAIhtgtztRObHyEwezG3DjmrajT4b$26mg$BozSA=.#=qufu03XUHvrbMWNWUCMDVIQ==(Security #=qHbOdN49Nbg2Rhzb3wvaGag==)
   в StockSharp.Algo.TraderHelper.GetMarketTime(Security security)
   в StockSharp.Algo.Strategies.StrategyHelper.GetMarketTime(Strategy strategy)
   в StockSharp.Algo.Strategies.StrategyHelper.IsTradeTime(Strategy strategy)
   в StockSharp.Algo.Strategies.Strategy.#=q4hBbZNrW6Ximixhh8a2iAo_qioSsdF5BRWzfupoVpy0=(TimeSpan #=qLmY731szGXrILCs6MWMHBw==)
   в System.Action`1.Invoke(T obj)
   в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
   в StockSharp.Algo.Connector.#=qhGMxIzDzRZLtr5fYCi2F$J9tEc9vHy8G9UlbaNFm7ZU=(TimeSpan #=qtLbcrqxcYJt4HIlyhgjJeQ==)
   в StockSharp.Algo.Connector.#=qT2ZEqZeL305WaA1ncSMsxh0L1dpDacPzMpbAVBhd6os=()
   в StockSharp.Algo.Connector.OnProcessMessage(Message message, MessageAdapterTypes adapterType, MessageDirections direction)
   в StockSharp.Transaq.TransaqTrader.OnProcessMessage(Message message, MessageAdapterTypes adapterType, MessageDirections direction)
   в StockSharp.Algo.Connector.#=q_tLKPhTvm0BVAsLFNBZ3ABv27YAksyLgpPr0axSPVOdBpOkzdFYg5wx$G5$1ZQcF(Message #=qR6hf99jV6LgIO9ubxsK1uw==)
   в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
   в StockSharp.Messages.MessageAdapter`1.OnOutMessageProcessor(Message message, IMessageAdapter adapter)
   в System.Action`2.Invoke(T1 arg1, T2 arg2)
   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)
   в StockSharp.Messages.MessageProcessorPool.<StartProcessor>b__0(Message m, IMessageAdapter a)
   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)
   в StockSharp.Messages.MessageProcessor.<StockSharp.Messages.IMessageProcessor.Start>b__0()

Очевидно баг не связан с TransaqConnector как таковым, хотя и заявлен мной тут, так как получил я его при работе с TransaqConnector.

Но вопрос - зачем при обращении к параметрам тестовых и незапушенных стратегийвызывается StockSharp.Messages.MessageProcessor?

Thanks:

Sid

Avatar
Date: 5/15/2014
Reply


Версия коннектора, предоставленного Финамом, 2.9.1.0, а версия txmlconnector.dll, выгружаемого при запуске учебного примера на S# API 4.2.3.4, показывает 5.9.2.9. Где-то "косяк" ). Но где, пока не понял. Библиотека StockSharp.Transaq.dll защищена, как посмотреть какой коннектор зашит в ней ?

Thanks:

JaguarFX

Avatar
Date: 5/19/2014
Reply


Ну может быть там версия зашифрована - не столь важно, так как хоть плохо, но работает. Так сегодня мне удалось нормально выставить заявку на покупку, которая успешно исполнилась на рынке.

Но при тестировании на живом подключении выявился еще один баг: приходит только одна первая свечка, затем полная тишина. Ни свечек, ни сообщений об ошибке. Скрин-шот: http://yadi.sk/d/06Jipx4YQkHPa

При этом проанализировав события MarketDepthsChanged я выяснил, что стаканы приходят. но в стаканах неверно указано время его формирования. Скрин-шот: http://yadi.sk/d/nicPRNMrQkJ4e

Может как раз это причина бага с отсутствием свечек?

Thanks:

Mikhail Sukhov

Avatar
Date: 5/20/2014
Reply


Предлагаю как-то разделить то, что относится к Транзаку, и то, что относится к эмулятору. Сейчас пока вопросы не понятны.

Thanks:


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

loading
clippy