Некорректно оторабатывает Verifier из примеров

Некорректно оторабатывает Verifier из примеров
Atom
15.04.2016
PavelAd


Когда-то еще на сборке 4.12.20 успешно написал робота, и вроде бы не новичок в программировании на C# с использование библиотеки S#. Но сейчас, после долгого перерыва работы со S#, не могу даже нормально заставить работать примеры в связке с Quik. То одна ошибка вылазит, то другая.

Настройку таблиц Квика открываю из сборки S#: StockSharp_4.3.13\Samples\Quik\info_lua.wnd

Запускаю проверку из Tools\VerifierPublic из S# (сборка 4.3.13). Нажимаю "проверить" и получаю сообщения:

Ошибка. Таблица все сделки. Окно не найдено. Ошибка. Таблица заявки. Окно не найдено. Ошибка. Таблица стоп-заявки. Окно не найдено. Ошибка. Таблица мои сделки. Окно не найдено. Ошибка. Таблица портфель по бумагам. Окно не найдено. Ошибка. Таблица портфель по деривативам. Окно не найдено. Ошибка. Таблица позиции по бумагам. Окно не найдено. Ошибка. Таблица позиции по деривативам. Окно не найдено. Хотя все эти окна в Квике открыты.

В StockSharp.QuikLua.log сообщения об ошибке типа:


2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.ReadString()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)

Может быть проблема в том что называются они немножко по другому? например: "Таблица заявки", называется в кивке "таблица заявок"; "Таблица стоп-заявки", называется в кивке "Таблица стоп-заявок" итп.

Полный лог StockSharp.QuikLua.log:


2016/04/15 18:04:43.538|       |LuaServer |OnInit
2016/04/15 18:04:43.558|       |FixServer |Server 0.0.0.0:5001 started.
2016/04/15 18:04:43.559|       |FixServer |FixServer started.
2016/04/15 18:04:43.560|       |LuaServer |OnInit done
2016/04/15 18:04:43.560|       |FixServer |FixServer outgoing thread started.
2016/04/15 18:04:43.566|       |LuaServer |Main
2016/04/15 18:09:49.036|       |FixServer |Connected '127.0.0.1:41978' to '0.0.0.0:5001'.
2016/04/15 18:09:49.048|       |FixServer |Received first byte from '127.0.0.1:41978'.
2016/04/15 18:09:49.068|       |FixServer |From : Logon
2016/04/15 18:09:49.091|       |FixServer |Клиент quik (127.0.0.1:41978) авторизован.
2016/04/15 18:09:49.095|       |FixServer |Connected '127.0.0.1:41979' to '0.0.0.0:5001'.
2016/04/15 18:09:49.095|       |FixServer |Received first byte from '127.0.0.1:41979'.
2016/04/15 18:09:49.095|       |FixServer |From : Logon
2016/04/15 18:09:49.095|       |FixServer |Клиент quik (127.0.0.1:41979) авторизован.
2016/04/15 18:09:50.059|       |FixServer |Отправка Logon клиенту.
2016/04/15 18:09:50.059|       |FixServer |Отправка Logon клиенту.
2016/04/15 18:09:50.062|       |FixServer |Сессия запущена.
2016/04/15 18:09:50.062|       |FixServer |Сессия запущена.
2016/04/15 18:09:50.085|       |FixServer |From quik 127.0.0.1:41978: RequestForPositions
2016/04/15 18:09:50.086|       |FixServer |From quik 127.0.0.1:41979: SecurityListRequest
2016/04/15 18:09:50.102|       |FixServer |From quik 127.0.0.1:41978: OrderMassStatusRequest
2016/04/15 18:09:50.102|       |LuaServer |Request: Type = PortfolioLookup TrId = 65388535 Value =  SecId =  OrdType =  IsSubscribe = False DataType = Level1
2016/04/15 18:09:50.103|       |LuaServer |LookupPortfolios
2016/04/15 18:09:50.110|       |FixServer |From quik 127.0.0.1:41978: Logout
2016/04/15 18:09:50.111|       |FixServer |Disconnect quik (127.0.0.1:41978)
2016/04/15 18:09:50.112|       |LuaServer |LookupPortfolios done
2016/04/15 18:09:50.117|       |LuaServer |LookupPositions
2016/04/15 18:09:50.119|       |LuaServer |LookupPositions done
2016/04/15 18:09:50.119|       |LuaServer |Request: Type = OrderStatus TrId = 65388536 Value =  SecId =  OrdType =  IsSubscribe = False DataType = Level1
2016/04/15 18:09:50.119|       |FixServer |From quik 127.0.0.1:41979: Logout
2016/04/15 18:09:50.119|       |FixServer |Disconnect quik (127.0.0.1:41979)
2016/04/15 18:09:50.119|       |LuaServer |LookupStopOrders
2016/04/15 18:09:50.119|       |LuaServer |Stop orders count: 0
2016/04/15 18:09:50.119|       |LuaServer |LookupStopOrders done
2016/04/15 18:09:50.120|       |LuaServer |LookupOrders
2016/04/15 18:09:50.120|       |LuaServer |Orders count: 0
2016/04/15 18:09:50.120|       |LuaServer |LookupOrders done
2016/04/15 18:09:50.121|       |LuaServer |LookupTrades
2016/04/15 18:09:50.121|       |LuaServer |Own trades count: 0
2016/04/15 18:09:50.121|       |LuaServer |LookupTrades done
2016/04/15 18:09:50.121|       |LuaServer |Request: Type = SecurityLookup TrId = 65388537 Value =  SecId = S#:@, Native:,Type: OrdType =  IsSubscribe = False DataType = Level1
2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.ReadString()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)
2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.ReadTag()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=qA9h963H6a2_at4By9OtoFA==(IFixReader #=q6LDgwIUmPZCzltoJTEa9FA==, FixTags #=qQkzPjAO5R5oNzYtEvWGqGA==)
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)
2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.SkipValue()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)
2016/04/15 18:09:50.127|       |FixServer |Disconnect quik (127.0.0.1:41978)
2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.ReadString()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)
2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.ReadTag()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=qA9h963H6a2_at4By9OtoFA==(IFixReader #=q6LDgwIUmPZCzltoJTEa9FA==, FixTags #=qQkzPjAO5R5oNzYtEvWGqGA==)
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)
2016/04/15 18:09:50.127|Error  |FixServer |System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен.
Имя объекта: "System.Net.Sockets.NetworkStream".
   в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   в System.IO.Stream.ReadByte()
   в StockSharp.Fix.Native.BaseFixReader.ReadByte()
   в StockSharp.Fix.Native.TextFixReader.SkipValue()
   в #=qvuqj58cZwcf7eXybFOcm6u5ZNuyg4rDHdTqIVDu5WCgVs$KX0tVVNlUrbGKXfN4j.#=q0YtWR8xddc5pKZiW8hz2XA==(IFixReader #=qOorF40kbUw5v5ERqKTTKgg==, Boolean #=qyzk0Wrs7K_mCdAnbX8eQs3rNFXBF$goJALOVLQI8SSw=, String #=qa7ctjrNjdLhGYt9kv6m68M4YD75v02cRPELMUIWgl_E=, ILogReceiver #=qwpDGcdSat6wSUY8AispMCA==, String #=q90aLTXETm57qF6inAuYd3A==, Func`3 #=qstBAGW8iNj3TzWpAQdhAUQ==, Action`1 #=qh0c7dFAaugN_JwXq2wk52Q==)
2016/04/15 18:09:50.127|       |FixServer |Disconnect quik (127.0.0.1:41979)
2016/04/15 18:09:50.127|       |LuaServer |LookupSecurities
2016/04/15 18:09:50.140|Error  |FixServer |Клиент quik (ошибок 1/1). Ошибка 'System.IO.IOException: Не удается записать данные в транспортное соединение: Программа на вашем хост-компьютере разорвала установленное подключение. ---> System.Net.Sockets.SocketException: Программа на вашем хост-компьютере разорвала установленное подключение
   в System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   в System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   --- Конец трассировки внутреннего стека исключений ---
   в System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   в StockSharp.Fix.FixServer.#=qyT9uoOFOm9tnjW8xAkcvGw==()'.
2016/04/15 18:09:50.140|Error  |FixServer |Клиент quik был ранее отключен.
2016/04/15 18:09:50.140|Error  |FixServer |Клиент quik был ранее отключен.
2016/04/15 18:09:50.140|Error  |FixServer |Клиент quik был ранее отключен.
2016/04/15 18:09:50.140|Error  |FixServer |Клиент quik был ранее отключен.
2016/04/15 18:09:50.209|       |LuaServer |LookupSecurities done

Помогите пожалуйста разобраться. Возникают мысли, может просто примеры на этой версии не работают? или Квики у меня версии с которой не работает связка?

ss_quik.png 20 KB (382)

Теги:


Спасибо:


Slepoy

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


А какой смысл в использовании VerifierPublic? Я так понял она была полезна имнено для ДДЕ подключения. Сейчас ЛУА, и на таблицы по большому счёту плевать. Надо всего-то парочку открыть: какие именно описано в инструкции к коннектору. Предлагаю вообще эту штуку выпилить из СтокШарпа, как более неактуальную. Она лишь вводит людей в заблуждение.

Спасибо:

PavelAd

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


А какой смысл в использовании VerifierPublic?

Вот что сказано в документации по этому поводу:

Проверить наличие всех необходимых таблиц в терминале можно с помощью программы Verifier, который использует разные варианты проверки для Lua режима и Dde. Режим проверки выбирается соответствующей галочкой.

Вот это я и хотел проверить. В итоге получается что пример не рабочий, или проблема только у меня?

Спасибо:

Slepoy

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


PavelAd: Вот это я и хотел проверить. В итоге получается что пример не рабочий, или проблема только у меня?

У меня версия 4.3.13 - работала без проблем. Названия таблиц в Квике - для ЛУА вообще не важны. Попробуй скачать официальную демку Квика с сайта АРКИ, а то тут уже были сообщения, когда "модифицированные" Квики от брокеров, криво работают со СтокШарп.

Спасибо:

PavelAd

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


Попробую только не верю что он будет работать с демо-счетом Finam. А писать и проверять бота хочу на нем пока.

У меня ошибки типа: System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен. Имя объекта: "System.Net.Sockets.NetworkStream". так же в логе есть и при подключении к Квику из S#.Designer

Нашел на форуме несколько тем с такой же ошибкой, но они без ответов.

Спасибо:


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

loading
clippy