← 返回

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

Итак Выложили 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()

本主题对您有帮助吗?

分享主题

评论 (6)

登录创建账户, 登录或注册以发表评论

Mikhail Sukhov
Mikhail Sukhov

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

JaguarFX
JaguarFX 作者

Сегодня протестил 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.
JaguarFX
JaguarFX 作者

Выложили 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?

Sid
Sid

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

JaguarFX
JaguarFX 作者

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

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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