Нестабильная работа stocksharp - quik(lua)
Atom
05.04.2017


При подключении к квику через lua коннектор примерно в 50% случаев возникают ошибки, которые препятствуют дальнейшей работе, например после них могут не приходить инструменты через событие OnNewSecurity.
Ошибки следующие:
Это самая частая-
2017-04-05 10:00:01,938 ERROR Connector Out channel thread. OrderMaker.Robot - Сообщение 0 типа AN не было корректно обработано FIX сервером. Причина () .
System.InvalidOperationException: Сообщение 0 типа AN не было корректно обработано FIX сервером. Причина () .
2017-04-05 10:00:01,942 ERROR Connector Out channel thread. OrderMaker.Robot - Сообщение 0 типа AF не было корректно обработано FIX сервером. Причина () .
System.InvalidOperationException: Сообщение 0 типа AF не было корректно обработано FIX сервером. Причина () .

А вот эта реже:
2017-03-31 10:00:03,167 ERROR Connector Out channel thread. OrderMaker.Robot - Ошибка получение маркет-даты. Код '0', текст 'An item with the same key has already been added.'.
System.InvalidOperationException: Ошибка получение маркет-даты. Код '0', текст 'An item with the same key has already been added.'.

БКС Quik 7.2.2.3
StockSharp 4.3.19.4

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


Теги:


Спасибо: Николай_Флёров


< 1 2 3  >
Support

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


А при получении инструментов это поле заполнено?
Спасибо: Николай_Флёров

Oleg

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


Тоже не заполнено.
image340.png
image340.png 37 KB (458)
Спасибо: Николай_Флёров

Support

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


Проверьте поля после выполнения RegisterSecurity? Что это за инструмент?
Спасибо: Николай_Флёров

Oleg

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


RegisterSecurity я вообще не вызываю, мне это не нужно. Но ради интереса добавил вызов - все равно поле Class не заполнилось.
По поводу инструмента можно уточнить вопрос, что именно интересует, на скриншоте видно код инструмента.
Спасибо: Николай_Флёров

Support

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


Поле класс Вы с какой целю используете?
Спасибо: Николай_Флёров

Support

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


Support Перейти
Поле класс Вы с какой целю используете?
В s# классу соответствует поле board.

Спасибо: Николай_Флёров

Oleg

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


Один и тот же инструмент(с одинаковым кодом) может торговаться в разных классах, мне надо понимать к какому классу он относится, так как лимиты у меня считаются в разрезе класса.
Зачем тогда поле Class в инструменте, тем более почему в предыдущей версии все работало?
Спасибо: Николай_Флёров

Support

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


В s# инструмент уникальным образом идентифицирует id (code + board).. Поле Class просто дублировало информацию.
Спасибо: Николай_Флёров

Oleg

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


Переделал. Обновился до версии 4.3.24.
Поставил режим логирования Debug.

В lua логе есть следующие ошибки.
2017/05/29 09:50:15.939|Error |LuaServer |OnMoneyLimitF System.InvalidCastException: Can't convert CNT of type 'System.String' to type 'StockSharp.Messages.CurrencyTypes'. ---> System.ArgumentException: Requested value 'CNT' was not found.
at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at Ecng.Common.Converter.To(Object value, Type destinationType)
--- End of inner exception stack trace ---
at Ecng.Common.Converter.To(Object value, Type destinationType)
at Ecng.Common.Converter.To[T](Object value)
at StockSharp.Algo.TraderHelper.FromMicexCurrencyName(String name)
at OnMoneyLimit(lua_State* ls, object* table, Int64 transactionId)

2017/05/29 10:00:08.499|Debug |LuaServer |OnMoneyLimit done
2017/05/29 10:00:08.549| |FixServer |From FIrobot 127.0.0.1:51177: SecurityListRequest
2017/05/29 10:00:08.551|Debug |FixServer |To client FIrobot (127.0.0.1:51177): 8=FIX.4.4^9=104^35=y^49=FIrobot^56=StockSharpMD^52=20170529-07:00:02.194^34=2^320=36001606^322=636312489633403871^560=1^10=137^
2017/05/29 10:00:08.551| |FixServer |From FIrobot 127.0.0.1:51176: RequestForPositions
2017/05/29 10:00:08.551|Error |FixServer |System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Ecng.Collections.SynchronizedPairSet`2.OnAdding(TKey key, TValue value)
at Ecng.Collections.KeyedCollection`2.Add(TKey key, TValue value)
at Ecng.Collections.SynchronizedPairSet`2.Add(TKey key, TValue value)
at StockSharp.Fix.FixServer.CreateTransactionId(FixSession session, String requestId)
at StockSharp.Fix.FixServer.OnProcess(FixSession session, String msgType, IFixReader reader)
at StockSharp.Fix.FixServer.#=q8RDrWV96P8h9_4FRQxT$1w==(IFixReader #=qsrpvUmPcfg40EJoGrn2AYA==, FixSession[] #=q6Ixoy5bFQl6PJEKUr3tyEQ==, #=qzmASZMX3zuoN6QiqOm6pZq_KsK9X1zhh98A1q9CCzg7XY3RK3HderxahGTdgPXPV& #=qMnVbaI76SINJREo_NrJxgw==, TcpClient #=q252tX$mdrzCXTsQH0du2tw==, EndPoint #=q615yt5h0ZHTpimXLiL1jMQ==, String& #=quvtThBwtDxHRVDbm8ruV7A==, Boolean& #=qQsQh_T$oRFR0MMED4k9CUQ==)
at StockSharp.Fix.FixServer.#=q5Az29$Z2UkszXRDB6GaerRUTniFSLzbcQ3gGhsxBQE0=.#=qWU5hAUJvLKUa80eTh2yePA==(IAsyncResult #=qT9LMkgWTB1AHkq7lHluG4g==)
2017/05/29 10:00:08.551|Error |FixServer |8=FIX.4.4^9=81^35=x^49=FIrobot^56=StockSharpMD^52=20170529-07:00:02.193^34=2^320=36001606^559=4^10=228^
2017/05/29 10:00:08.561|Debug |FixServer |To client FIrobot (127.0.0.1:51176): 8=FIX.4.4^9=74^35=3^49=FIrobot^56=StockSharpTS^52=20170529-07:00:02.204^34=2^45=0^372=AN^10=114^
2017/05/29 10:00:08.561|Error |FixServer |System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Ecng.Collections.SynchronizedPairSet`2.OnAdding(TKey key, TValue value)
at Ecng.Collections.KeyedCollection`2.Add(TKey key, TValue value)
at Ecng.Collections.SynchronizedPairSet`2.Add(TKey key, TValue value)
at StockSharp.Fix.FixServer.CreateTransactionId(FixSession session, String requestId)
at StockSharp.Fix.FixServer.OnProcess(FixSession session, String msgType, IFixReader reader)
at StockSharp.Fix.FixServer.#=q8RDrWV96P8h9_4FRQxT$1w==(IFixReader #=qsrpvUmPcfg40EJoGrn2AYA==, FixSession[] #=q6Ixoy5bFQl6PJEKUr3tyEQ==, #=qzmASZMX3zuoN6QiqOm6pZq_KsK9X1zhh98A1q9CCzg7XY3RK3HderxahGTdgPXPV& #=qMnVbaI76SINJREo_NrJxgw==, TcpClient #=q252tX$mdrzCXTsQH0du2tw==, EndPoint #=q615yt5h0ZHTpimXLiL1jMQ==, String& #=quvtThBwtDxHRVDbm8ruV7A==, Boolean& #=qQsQh_T$oRFR0MMED4k9CUQ==)
at StockSharp.Fix.FixServer.#=q5Az29$Z2UkszXRDB6GaerRUTniFSLzbcQ3gGhsxBQE0=.#=qWU5hAUJvLKUa80eTh2yePA==(IAsyncResult #=qT9LMkgWTB1AHkq7lHluG4g==)
2017/05/29 10:00:08.561|Error |FixServer |8=FIX.4.4^9=82^35=AN^49=FIrobot^56=StockSharpTS^52=20170529-07:00:02.194^34=2^710=36001607^724=0^10=013^
2017/05/29 10:00:08.561| |FixServer |From FIrobot 127.0.0.1:51176: OrderMassStatusRequest
2017/05/29 10:00:08.561|Debug |FixServer |To client FIrobot (127.0.0.1:51176): 8=FIX.4.4^9=74^35=3^49=FIrobot^56=StockSharpTS^52=20170529-07:00:02.205^34=3^45=0^372=AF^10=108^
2017/05/29 10:00:08.561|Error |FixServer |System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Ecng.Collections.SynchronizedPairSet`2.OnAdding(TKey key, TValue value)
at Ecng.Collections.KeyedCollection`2.Add(TKey key, TValue value)
at Ecng.Collections.SynchronizedPairSet`2.Add(TKey key, TValue value)
at StockSharp.Fix.FixServer.CreateTransactionId(FixSession session, String requestId)
at StockSharp.Fix.FixServer.OnProcess(FixSession session, String msgType, IFixReader reader)
at StockSharp.Fix.FixServer.#=q8RDrWV96P8h9_4FRQxT$1w==(IFixReader #=qsrpvUmPcfg40EJoGrn2AYA==, FixSession[] #=q6Ixoy5bFQl6PJEKUr3tyEQ==, #=qzmASZMX3zuoN6QiqOm6pZq_KsK9X1zhh98A1q9CCzg7XY3RK3HderxahGTdgPXPV& #=qMnVbaI76SINJREo_NrJxgw==, TcpClient #=q252tX$mdrzCXTsQH0du2tw==, EndPoint #=q615yt5h0ZHTpimXLiL1jMQ==, String& #=quvtThBwtDxHRVDbm8ruV7A==, Boolean& #=qQsQh_T$oRFR0MMED4k9CUQ==)
at StockSharp.Fix.FixServer.#=q5Az29$Z2UkszXRDB6GaerRUTniFSLzbcQ3gGhsxBQE0=.#=qWU5hAUJvLKUa80eTh2yePA==(IAsyncResult #=qT9LMkgWTB1AHkq7lHluG4g==)
2017/05/29 10:00:08.561|Error |FixServer |8=FIX.4.4^9=82^35=AF^49=FIrobot^56=StockSharpTS^52=20170529-07:00:02.194^34=3^584=36001608^585=7^10=028^
2017/05/29 10:00:08.609|Debug |LuaServer |OnMoneyLimit
2017/05/29 10:00:08.610|Debug |LuaServer |Out. Portfolio,T(L)=0001.01.01 00:00:00.000,Name=30_5003
2017/05/29 10:00:08.610|Debug |LuaServer |Out. PortfolioChange,T(L)=0001.01.01 00:00:00.000,T(S)=2017.05.29 10:00:02.253,P=30_5003,Changes=[BeginValue, 50800000000],[CurrentValue, 50800000000],[Leverage, 10000000],[BlockedValue, 98000]
2017/05/29 10:00:08.610|Debug |LuaServer |OnMoneyLimit done
2017/05/29 10:00:08.610|Debug |LuaServer |OnMoneyLimit
2017/05/29 10:00:08.610|Debug |LuaServer |Out. Portfolio,T(L)=0001.01.01 00:00:00.000,Name=30_12342
2017/05/29 10:00:08.610|Debug |LuaServer |Out. PortfolioChange,T(L)=0001.01.01 00:00:00.000,T(S)=2017.05.29 10:00:02.254,P=30_12342,Changes=[BeginValue, 395000000],[CurrentValue, 395000000],[Leverage, 10000000],[BlockedValue, 68550000]


2017-05-29 10:00:02,215 ERROR Connector Out channel thread. OrderMaker.Robot - Сообщение 0 типа AN не было корректно обработано FIX сервером. Причина () .
System.InvalidOperationException: Сообщение 0 типа AN не было корректно обработано FIX сервером. Причина () .
2017-05-29 10:00:02,216 ERROR Connector Out channel thread. OrderMaker.Robot - Сообщение 0 типа AF не было корректно обработано FIX сервером. Причина () .
System.InvalidOperationException: Сообщение 0 типа AF не было корректно обработано FIX сервером. Причина () .

И еще добавилась.
2017-05-29 10:00:02,210 ERROR Connector Out channel thread. OrderMaker.Robot - Error lookup code InvalidOrUnsupportedRequest. Text ''.
System.InvalidOperationException: Error lookup code InvalidOrUnsupportedRequest. Text ''.

Это происходит только на боевом сервере квика, там я эксперименты проводить не могу, а на тесте таких проблем не возникает.
Спасибо: Николай_Флёров

Support

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


Какая ошибка в коннекторе в итоге проявилась? Инструмент не был получен, заявка не выставилась?
Спасибо: Николай_Флёров
< 1 2 3  >

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

loading
clippy