← 戻る

Проблема с заявками

esper: Выложили 4.2.16.0

Фичи:- Transaq. Версия библиотек обновлена до v2.10.

  • Connector. Добавлен метод GetFilteredMarketDepth для получения стакана без своих заявок.
  • Connector. При выключенных UpdateSecurityLastQuotes и UpdateSecurityByLevel1 значения полей инструментов не изменяются.
  • Emulator. Изменены примеры тестирования (передача level1 данных для инструмента).
  • OrderGrid. Добавлена ссылка для копирования текста ошибки.
  • OrderWindow. Добавлены предопределенные значения цен и объема.
  • SciChart. Контекстное меню для добавления элементов показывается только в интерактивном режиме.
  • Security. Изменены значения по умолчанию для MinPrice и MaxPrice.
  • Security. Добавлено поле BinaryOptionType.

Баги:- Connector. Ошибка обработки OrderFail.

  • Emulator. Ошибка с неверным временем при тестировании на тиках.
  • QuotingStrategy. Ошибка перестановки заявок.
  • MarketDepthControl. Не показывается дробная часть для цены.

Добрый день, у меня перестали отправляться заявки по LUA, в логе:

t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SPU4" t["QUANTITY"] = "3" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "B" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "5762" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "45414414" sendTransaction(t)

2014/08/18 12:37:59.377| |FixServer |From client quik: TestRequest 2014/08/18 12:38:00.969| |FixServer |From client quik: TestRequest

более ничего не происходит, ордер висит в статусе Pending, подскажите где копать? В DDE режиме все работает. Ордера отправляются только в версии 4.2.8.0, в версиях 4.2.14.0 и 4.2.16.0 наблюдается вышеуказанная ошибка. Робот полностью один и тот же.

Также в версии 4.2.8.0 в файле StockSharp.QuikLua.FatalError.log выдается постоянно ошибка:

[18.08.2014 12:51:45] StockSharp.Fix.resources, Version=4.2.8.0, Culture=ru, PublicKeyToken=null: System.IO.FileNotFoundException: Не удается найти указанный файл. (Исключение из HRESULT: 0x80070002) в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence) в System.Reflection.Assembly.LoadFile(String path) в CurrentDomain_AssemblyResolve(Object sender, ResolveEventArgs args)

このトピックは参考になりましたか?

トピックを共有

コメント (38)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

vsnoopy83
vsnoopy83 著者

esper: Выложили 4.2.17.0

Фичи:- Для Security и MarketDepth поле Connector не заполняется.

  • SecurityGrid. Обновление информации по инструменту выполняется с помощью IMarketDataProvider.

Баги:- Transaq. Ошибка трансляции Level1 данных.

  • QuotingStrategy. Ошибка обработки цены с учетом своих заявок.
  • OrderWindow. Не работает подстановка предопределенных значений цены.
  • Connector. Не вызывается событие NewOrders.

Ордера так и не выставляются по LUA, лог:

2014/08/18 18:39:06.793| |None |GetSecurities 2014/08/18 18:39:09.483|Error |None |Пустой код инструмента для класса QJSIM. 2014/08/18 18:39:09.530|Error |None |Пустой код инструмента для класса SPBFUT. 2014/08/18 18:39:09.687|Error |None |Пустой код инструмента для класса SPBOPT. 2014/08/18 18:39:10.348|Error |None |Пустой код инструмента для класса EQRP_INFO. 2014/08/18 18:39:10.348|Error |None |Пустой код класса для getClassesList. 2014/08/18 18:39:10.391| |None |GetSecurities done 2014/08/18 18:39:14.718| |FixServer |From client quik: MarketDataRequest 2014/08/18 18:39:15.593| |FixServer |From client quik: MarketDataRequest 2014/08/18 18:39:15.593| |FixServer |From client quik: MarketDataRequest 2014/08/18 18:39:15.593| |FixServer |From client quik: MarketDataRequest 2014/08/18 18:39:15.593| |FixServer |From client quik: MarketDataRequest 2014/08/18 18:39:15.593| |FixServer |From client quik: MarketDataRequest 2014/08/18 18:39:15.779| |None |Lookup (QuoteChange, 0, SRU4, FORTS) 2014/08/18 18:39:15.814| |None |Lookup (Level1Change, 0, SRU4, FORTS) 2014/08/18 18:39:15.814| |None |Lookup (Execution, 0, SRU4, FORTS) 2014/08/18 18:39:15.817| |None |GetAllTrades 2014/08/18 18:39:15.818| |None |All trades count: 220236 2014/08/18 18:39:21.146| |None |GetAllTrades done 2014/08/18 18:39:21.146| |None |Lookup (QuoteChange, 0, SPU4, FORTS) 2014/08/18 18:39:21.148| |None |Lookup (Level1Change, 0, SPU4, FORTS) 2014/08/18 18:39:21.149| |None |Lookup (Execution, 0, SPU4, FORTS) 2014/08/18 18:39:21.149| |None |GetAllTrades 2014/08/18 18:39:21.149| |None |All trades count: 220236 2014/08/18 18:39:25.607| |None |GetAllTrades done 2014/08/18 18:39:33.842| |FixServer |From client quik: NewOrderSingle 2014/08/18 18:39:34.039| |None |SendTransaction: t = t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SPU4" t["QUANTITY"] = "3" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "S" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "5739" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "67128384" sendTransaction(t)

2014/08/18 18:40:03.943| |FixServer |From client quik: TestRequest 2014/08/18 18:40:06.430| |FixServer |From client quik: TestRequest

Статус ордера Pending. Хотел бы пояснить, что ошибка не в том, что статус не приходит, ошибка в том, что ордер в квике не выставляется. Думал дело в джуниоре, но нет, на реале тоже не работает. И еще очень раздражает, что инструменты приходят в течении 4 минут, способ подключения позиционируется как более быстрый чем DDE.

VirKato
VirKato

vsnoopy83: Статус ордера Pending. Хотел бы пояснить, что ошибка не в том, что статус не приходит, ошибка в том, что ордер в квике не выставляется.

У меня логи отличаются наличием одной строки: t["CLIENT_CODE"] = "SomeClient" ордер выставляется. А вот статус заявки от Квика не приходит. И при попытке снять ордер получаю ошибку: "Вы не можете снять данную заявку". Логи снятия:

2014/08/18 18:30:09.777| |FixServer |From client quik: OrderCancelRequest 2014/08/18 18:30:09.786| |None |SendTransaction: t = t["CLASSCODE"] = "TQBR" t["SECCODE"] = "SBER" t["ORDER_KEY"] = "0" t["ACTION"] = "KILL_ORDER" t["TRANS_ID"] = "66547146" sendTransaction(t)

t["ORDER_KEY"] = "0" - собственно, т.к. заявка остается Pending, и id не получает.

p.s. а на тестовом Квике работает все всегда стабильно. Буду демо торговать.

esper
esper

VirKato: t["ORDER_KEY"] = "0" - собственно, т.к. заявка остается Pending, и id не получает. Попробуйте на 4.2.18

VirKato
VirKato

esper:

VirKato: t["ORDER_KEY"] = "0" - собственно, т.к. заявка остается Pending, и id не получает. Попробуйте на 4.2.18 Не мог вчера проверить, но после последнего update 4.2.18 при попытке выставить заявку получаю следующее:


Robot_SBER@TQBR_Client 20.08.2014 17:07:58 Error Заявка 61647829 (0x32DEFB3) не была принята по причине System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
   в QuickFix.FieldMap.SetField(IField field)
   в QuickFix.FIX44.NewOrderSingle.set_SecurityType(SecurityType value)
   в StockSharp.Fix.FixMessageAdapter.#=qyC$rb1ME$5D8fHjjzLcDQ5sXhsIfDopfy3EzTHl9Oak=(OrderRegisterMessage #=q$sYF1wcBtdkPHN$_4cxULw==)
   в StockSharp.Fix.FixMessageAdapter.OnSendInMessage(Message message)
   в StockSharp.Messages.MessageAdapter`1.OnInMessageProcessor(Message message, IMessageAdapter adapter).

И в StockSharp.QuikLua.FatalError:


[20.08.2014 15:36:02] StockSharp.Fix.resources, Version=4.2.18.0, Culture=ru-RU, PublicKeyToken=null: System.IO.FileNotFoundException: Не удается найти указанный файл. (Исключение из HRESULT: 0x80070002)
   в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
   в System.Reflection.Assembly.LoadFile(String path)
   в CurrentDomain_AssemblyResolve(Object sender, ResolveEventArgs args)

vsnoopy83
vsnoopy83 著者

VirKato:

esper:

VirKato: t["ORDER_KEY"] = "0" - собственно, т.к. заявка остается Pending, и id не получает. Попробуйте на 4.2.18 Не мог вчера проверить, но после последнего update 4.2.18 при попытке выставить заявку получаю следующее:

Robot_SBER@TQBR_Client 20.08.2014 17:07:58 Error Заявка 61647829 (0x32DEFB3) не была принята по причине System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в QuickFix.FieldMap.SetField(IField field) в QuickFix.FIX44.NewOrderSingle.set_SecurityType(SecurityType value) в StockSharp.Fix.FixMessageAdapter.#=qyC$rb1ME$5D8fHjjzLcDQ5sXhsIfDopfy3EzTHl9Oak=(OrderRegisterMessage #=q$sYF1wcBtdkPHN$_4cxULw==) в StockSharp.Fix.FixMessageAdapter.OnSendInMessage(Message message) в StockSharp.Messages.MessageAdapter`1.OnInMessageProcessor(Message message, IMessageAdapter adapter).

> И в StockSharp.QuikLua.FatalError:
> ```plain

[20.08.2014 15:36:02] StockSharp.Fix.resources, Version=4.2.18.0, Culture=ru-RU, PublicKeyToken=null: System.IO.FileNotFoundException: Не удается найти указанный файл. (Исключение из HRESULT: 0x80070002)
   в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
   в System.Reflection.Assembly.LoadFile(String path)
   в CurrentDomain_AssemblyResolve(Object sender, ResolveEventArgs args)

Вторая ошибка в StockSharp.QuikLua.FatalError у меня тоже выскакивает постоянно, но на работу робота не влияет, хоть и Fatal. Я писал о ней в форуме выше.

[20.08.2014 11:36:37] StockSharp.Fix.resources, Version=4.2.18.0, Culture=ru-RU, PublicKeyToken=null: System.IO.FileNotFoundException: Не удается найти указанный файл. (Исключение из HRESULT: 0x80070002) в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence) в System.Reflection.Assembly.LoadFile(String path) в CurrentDomain_AssemblyResolve(Object sender, ResolveEventArgs args) [20.08.2014 11:36:37] StockSharp.Fix.resources, Version=4.2.18.0, Culture=ru, PublicKeyToken=null: System.IO.FileNotFoundException: Не удается найти указанный файл. (Исключение из HRESULT: 0x80070002) в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence) в System.Reflection.Assembly.LoadFile(String path) в CurrentDomain_AssemblyResolve(Object sender, ResolveEventArgs args)

esper
esper

VirKato: ... Security.Type чему равно?

VirKato
VirKato

esper: Security.Type чему равно?

После перехода на 4.2.18 type изменился с


StockSharp.Messages.SecurityTypes.Index
на null

В коде указал


 ticker.type = StockSharp.Messages.SecurityTypes.Index

Заявки начали проходить, в квике появляются. В роботе статус остается pending и id = null. При попытках:


this.ReRegisterOrder(newBuy);
или
this.CancelOrder(CurrBuy) ;

Все так же:


2014/08/21 16:42:37.207|       |FixServer |From client quik: OrderCancelRequest
2014/08/21 16:42:37.227|       |None      |SendTransaction: t = {}
t["CLASSCODE"] = "TQBR"
t["SECCODE"] = "SBER"
t["ORDER_KEY"] = "0"
t["ACTION"] = "KILL_ORDER"
t["TRANS_ID"] = "59960745"
sendTransaction(t)

И ошибка снятия заявки. Кстати, а "TRANS_ID" должен совпадать с номером заявки? В деббагере я вижу тот же номер что и в таблице квика, а в Lua эти коды совпадают только при постановке зявки. При снятии там какое то другое значение большее чем то, что я вижу в дебагере в свойстве ордера.

vsnoopy83
vsnoopy83 著者

VirKato:

vsnoopy83: Статус ордера Pending. Хотел бы пояснить, что ошибка не в том, что статус не приходит, ошибка в том, что ордер в квике не выставляется.

У меня логи отличаются наличием одной строки: t["CLIENT_CODE"] = "SomeClient" ордер выставляется. А вот статус заявки от Квика не приходит. И при попытке снять ордер получаю ошибку: "Вы не можете снять данную заявку". Логи снятия:

2014/08/18 18:30:09.777| |FixServer |From client quik: OrderCancelRequest 2014/08/18 18:30:09.786| |None |SendTransaction: t = t["CLASSCODE"] = "TQBR" t["SECCODE"] = "SBER" t["ORDER_KEY"] = "0" t["ACTION"] = "KILL_ORDER" t["TRANS_ID"] = "66547146" sendTransaction(t)

t["ORDER_KEY"] = "0" - собственно, т.к. заявка остается Pending, и id не получает.

p.s. а на тестовом Квике работает все всегда стабильно. Буду демо торговать.

Рано DDE на пенсию списали))) Стаканы по LUA так сами и не открываются, но с этим можно жить, а вот с тем, что заявки в квик не приходят жить нельзя, помогите.

esper
esper

vsnoopy83: 2014/08/18 18:39:34.039| |None |SendTransaction: t = t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SPU4" t["QUANTITY"] = "3" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "S" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "5739" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "67128384" sendTransaction(t)

Статус ордера Pending. Хотел бы пояснить, что ошибка не в том, что статус не приходит, ошибка в том, что ордер в квике не выставляется. Для акций заявка выставится?

esper
esper

vsnoopy83: Рано DDE на пенсию списали))) Стаканы по LUA так сами и не открываются, но с этим можно жить, а вот с тем, что заявки в квик не приходят жить нельзя, помогите. Что значит стаканы не открываются? Приходит какая-то ошибка? Инструмент есть в таблице инструментов?

vsnoopy83
vsnoopy83 著者

esper:

vsnoopy83: Рано DDE на пенсию списали))) Стаканы по LUA так сами и не открываются, но с этим можно жить, а вот с тем, что заявки в квик не приходят жить нельзя, помогите. Что значит стаканы не открываются? Приходит какая-то ошибка? Инструмент есть в таблице инструментов?

Все по инструкции, инструменты в таблице есть, по дде стаканы открываются.

vsnoopy83
vsnoopy83 著者

Уточнение по стаканам, случайно увидел, что по акциям стаканы открываются автоматически, а по фортсу нет.

vsnoopy83
vsnoopy83 著者

esper:

vsnoopy83: 2014/08/18 18:39:34.039| |None |SendTransaction: t = t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SPU4" t["QUANTITY"] = "3" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "S" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "5739" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "67128384" sendTransaction(t)

Статус ордера Pending. Хотел бы пояснить, что ошибка не в том, что статус не приходит, ошибка в том, что ордер в квике не выставляется. Для акций заявка выставится?

Да, на акциях выставляется и снимается:

2014/08/18 19:46:53.641| |FixServer |From client quik: NewOrderSingle 2014/08/18 19:46:53.642| |None |SendTransaction: t = t["ACCOUNT"] = "NL0011100043" t["CLASSCODE"] = "QJSIM" t["SECCODE"] = "SBERP" t["QUANTITY"] = "1" t["CLIENT_CODE"] = "75241" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "B" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "52.15" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "71020667" sendTransaction(t)

2014/08/18 19:46:55.506| |FixServer |From client quik: OrderCancelRequest 2014/08/18 19:46:55.506| |None |SendTransaction: t = t["CLASSCODE"] = "QJSIM" t["SECCODE"] = "SBERP" t["ORDER_KEY"] = "770739391" t["ACTION"] = "KILL_ORDER" t["TRANS_ID"] = "71020668" sendTransaction(t)

2014/08/18 19:47:45.157| |FixServer |From client quik: TestRequest 2014/08/18 19:47:47.484| |FixServer |From client quik: TestRequest

esper
esper

По логам никаких ошибок не видно, все должно работать, у меня на тестовом и по фьючам и по акциям все ставится и снимается.

Квик тестовый? Какая версия? Скрипт загружает библиотеку какой версии?

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

vsnoopy83
vsnoopy83 著者

esper: По логам никаких ошибок не видно, все должно работать, у меня на тестовом и по фьючам и по акциям все ставится и снимается.

Квик тестовый? Какая версия? Скрипт загружает библиотеку какой версии?

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

Пробовал и на тестовом квике и на боевом, версии позже смогу написать, Скрипт квик загружает, версия скрипта последняя, опять же все работает на версии 4,2,8,0, я ничего кроме обновления библиотеки не меняю. 6.12.4.11 версия боевого квика, 6.14.0.12 версия джуниора.

vsnoopy83
vsnoopy83 著者

esper: По логам никаких ошибок не видно, все должно работать, у меня на тестовом и по фьючам и по акциям все ставится и снимается.

Квик тестовый? Какая версия? Скрипт загружает библиотеку какой версии?

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

На Sample заявки не отправляются:

2014/08/19 10:24:42.228|Error |None |Ошибка получения параметра ServerPort (используется значение по умолчанию): unable to make cast 2014/08/19 10:24:42.229|Error |None |Ошибка получения параметра ServerLogin (используется значение по умолчанию): unable to make cast 2014/08/19 10:24:42.229|Error |None |Ошибка получения параметра ServerPassword (используется значение по умолчанию): unable to make cast 2014/08/19 10:24:42.243| |FixServer |FixServer started. 2014/08/19 10:25:35.254| |FixServer |Клиент quik (127.0.0.1:60523) авторизован. 2014/08/19 10:25:37.304| |FixServer |Отправка Logon клиенту. 2014/08/19 10:25:37.305| |FixServer |Сессия запущена. 2014/08/19 10:25:37.331| |FixServer |From client quik: OrderMassStatusRequest 2014/08/19 10:25:37.341| |FixServer |From client quik: RequestForPositions 2014/08/19 10:25:37.347| |None |Lookup (OrderStatus, 37532145, , ) 2014/08/19 10:25:37.350| |None |GetOrders 2014/08/19 10:25:37.351| |None |GetOrders done 2014/08/19 10:25:37.352| |None |GetTrades 2014/08/19 10:25:37.352| |None |GetTrades done 2014/08/19 10:25:37.352| |None |Lookup (PortfolioLookup, 37532146, , ) 2014/08/19 10:25:37.353| |None |GetPortfolios 2014/08/19 10:25:37.384| |None |GetPortfolios done 2014/08/19 10:25:37.385| |None |GetPositions 2014/08/19 10:25:37.392| |None |GetPositions done 2014/08/19 10:25:37.777| |FixServer |Клиент quik (127.0.0.1:60536) авторизован. 2014/08/19 10:25:38.215| |FixServer |Отправка Logon клиенту. 2014/08/19 10:25:38.215| |FixServer |Сессия запущена. 2014/08/19 10:25:38.218| |FixServer |From client quik: SecurityListRequest 2014/08/19 10:25:38.221| |None |Lookup (SecurityLookup, 37532147, , ) 2014/08/19 10:25:38.228| |None |GetSecurities 2014/08/19 10:25:38.297|Error |None |Пустой код инструмента для класса QJSIM. 2014/08/19 10:25:38.303|Error |None |Пустой код инструмента для класса SPBFUT. 2014/08/19 10:25:38.343|Error |None |Пустой код инструмента для класса SPBOPT. 2014/08/19 10:25:38.517|Error |None |Пустой код инструмента для класса EQRP_INFO. 2014/08/19 10:25:38.517|Error |None |Пустой код класса для getClassesList. 2014/08/19 10:25:38.525| |None |GetSecurities done 2014/08/19 10:26:00.731| |FixServer |From client quik: MarketDataRequest 2014/08/19 10:26:00.833| |FixServer |From client quik: MarketDataRequest 2014/08/19 10:26:00.836| |None |Lookup (Level1Change, 0, SRU4, FORTS) 2014/08/19 10:26:00.839| |None |Lookup (Execution, 0, SRU4, FORTS) 2014/08/19 10:26:00.842| |None |GetAllTrades 2014/08/19 10:26:00.842| |None |All trades count: 71307 2014/08/19 10:26:02.051| |None |GetAllTrades done 2014/08/19 10:26:10.501| |FixServer |From client quik: MarketDataRequest 2014/08/19 10:26:37.411| |FixServer |From client quik: TestRequest 2014/08/19 10:26:38.238| |FixServer |From client quik: TestRequest 2014/08/19 10:27:09.225| |FixServer |From client quik: NewOrderSingle 2014/08/19 10:27:09.250| |None |SendTransaction: t = t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SRU4" t["QUANTITY"] = "100" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "B" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "7580" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "37532159" sendTransaction(t)

2014/08/19 10:27:37.428| |FixServer |From client quik: TestRequest 2014/08/19 10:27:38.254| |FixServer |From client quik: TestRequest

После этого тишина. Причем это уже другой комп, с другой системой и т.д.

esper
esper

Баг с регистрацией заявок для FORTS подтверждаю. В следующей версии будет фикс.

vsnoopy83
vsnoopy83 著者

esper: Баг с регистрацией заявок для FORTS подтверждаю. В следующей версии будет фикс.

Спасибо

vsnoopy83
vsnoopy83 著者

4,2,18,0 заявки так и не выставляются.

2014/08/19 13:00:30.601| |FixServer |Клиент quik (127.0.0.1:2792) авторизован. 2014/08/19 13:00:31.163| |FixServer |Отправка Logon клиенту. 2014/08/19 13:00:31.163| |FixServer |Сессия запущена. 2014/08/19 13:00:31.180| |FixServer |From client quik: OrderMassStatusRequest 2014/08/19 13:00:31.182| |FixServer |From client quik: RequestForPositions 2014/08/19 13:00:31.182| |None |Lookup (OrderStatus, 46705854, , ) 2014/08/19 13:00:31.182| |None |GetOrders 2014/08/19 13:00:31.182| |None |GetOrders done 2014/08/19 13:00:31.182| |None |GetTrades 2014/08/19 13:00:31.182| |None |GetTrades done 2014/08/19 13:00:31.182| |None |Lookup (PortfolioLookup, 46705855, , ) 2014/08/19 13:00:31.182| |None |GetPortfolios 2014/08/19 13:00:31.182| |None |GetPortfolios done 2014/08/19 13:00:31.182| |None |GetPositions 2014/08/19 13:00:31.199| |None |GetPositions done 2014/08/19 13:00:32.325| |FixServer |Клиент quik (127.0.0.1:2794) авторизован. 2014/08/19 13:00:32.915| |FixServer |Отправка Logon клиенту. 2014/08/19 13:00:32.915| |FixServer |Сессия запущена. 2014/08/19 13:00:32.921| |FixServer |From client quik: SecurityListRequest 2014/08/19 13:00:32.922| |None |Lookup (SecurityLookup, 46705856, , ) 2014/08/19 13:00:32.922| |None |GetSecurities 2014/08/19 13:00:32.955|Error |None |Пустой код инструмента для класса QJSIM. 2014/08/19 13:00:32.962|Error |None |Пустой код инструмента для класса SPBFUT. 2014/08/19 13:00:33.006|Error |None |Пустой код инструмента для класса SPBOPT. 2014/08/19 13:00:33.229|Error |None |Пустой код инструмента для класса EQRP_INFO. 2014/08/19 13:00:33.229|Error |None |Пустой код класса для getClassesList. 2014/08/19 13:00:33.269| |None |GetSecurities done 2014/08/19 13:00:37.047| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.048| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.048| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.048| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.048| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.048| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.112| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.112| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.112| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.112| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.112| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.113| |FixServer |From client quik: MarketDataRequest 2014/08/19 13:00:37.120| |None |Lookup (QuoteChange, 0, SBER, QJSIM) 2014/08/19 13:00:37.122| |None |Lookup (Level1Change, 0, SBER, QJSIM) 2014/08/19 13:00:37.127| |None |Lookup (Execution, 0, SBER, QJSIM) 2014/08/19 13:00:37.127| |None |GetAllTrades 2014/08/19 13:00:37.127| |None |All trades count: 99730 2014/08/19 13:01:13.803| |None |GetAllTrades done 2014/08/19 13:01:13.807| |None |Lookup (QuoteChange, 0, SBERP, QJSIM) 2014/08/19 13:01:13.808| |None |Lookup (Level1Change, 0, SBERP, QJSIM) 2014/08/19 13:01:13.811| |None |Lookup (Execution, 0, SBERP, QJSIM) 2014/08/19 13:01:13.811| |None |GetAllTrades 2014/08/19 13:01:13.811| |None |All trades count: 99730 2014/08/19 13:01:21.181| |None |GetAllTrades done 2014/08/19 13:01:22.148| |None |Lookup (Level1Change, 0, SRU4, FORTS) 2014/08/19 13:01:22.151| |None |Lookup (Execution, 0, SRU4, FORTS) 2014/08/19 13:01:22.151| |None |GetAllTrades 2014/08/19 13:01:22.151| |None |All trades count: 99943 2014/08/19 13:01:24.273| |None |GetAllTrades done 2014/08/19 13:01:24.274| |None |Lookup (Level1Change, 0, SPU4, FORTS) 2014/08/19 13:01:24.275| |None |Lookup (Execution, 0, SPU4, FORTS) 2014/08/19 13:01:24.275| |None |GetAllTrades 2014/08/19 13:01:24.276| |None |All trades count: 99945 2014/08/19 13:01:26.290| |None |GetAllTrades done 2014/08/19 13:01:32.948| |FixServer |From client quik: TestRequest 2014/08/19 13:01:42.097| |FixServer |From client quik: TestRequest 2014/08/19 13:01:48.254| |FixServer |From client quik: NewOrderSingle 2014/08/19 13:01:48.657| |FixServer |From client quik: NewOrderSingle 2014/08/19 13:01:48.934| |None |SendTransaction: t = t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SPU4" t["QUANTITY"] = "1" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "B" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "5636" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "46705895" sendTransaction(t)

2014/08/19 13:01:49.136| |None |SendTransaction: t = t["ACCOUNT"] = "SPBFUT00866" t["CLASSCODE"] = "FORTS" t["SECCODE"] = "SPU4" t["QUANTITY"] = "1" t["EXPIRY_DATE"] = "GTC" t["OPERATION"] = "S" t["TYPE"] = "L" t["ACTION"] = "NEW_ORDER" t["PRICE"] = "5799" t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE" t["TRANS_ID"] = "46705896" sendTransaction(t)

2014/08/19 13:02:32.955| |FixServer |From client quik: TestRequest 2014/08/19 13:02:42.098| |FixServer |From client quik: TestRequest 2014/08/19 13:03:32.974| |FixServer |From client quik: TestRequest 2014/08/19 13:03:42.107| |FixServer |From client quik: TestRequest 2014/08/19 13:04:32.988| |FixServer |From client quik: TestRequest 2014/08/19 13:04:42.109| |FixServer |From client quik: TestRequest 2014/08/19 13:05:32.994| |FixServer |From client quik: TestRequest 2014/08/19 13:05:42.125| |FixServer |From client quik: TestRequest

esper
esper

esper: Уточнение по стаканам, случайно увидел, что по акциям стаканы открываются автоматически, а по фортсу нет. Похоже это одна и та же проблема. В 4.2.18 нет этого фикса, как писал выше, будет в следующей версии.

vsnoopy83
vsnoopy83 著者

esper:

esper: Уточнение по стаканам, случайно увидел, что по акциям стаканы открываются автоматически, а по фортсу нет. Похоже это одна и та же проблема. В 4.2.18 нет этого фикса, как писал выше, будет в следующей версии.

Ждем фикса, спасибо.

vsnoopy83
vsnoopy83 著者

esper:

esper: Уточнение по стаканам, случайно увидел, что по акциям стаканы открываются автоматически, а по фортсу нет. Похоже это одна и та же проблема. В 4.2.18 нет этого фикса, как писал выше, будет в следующей версии.

фикс 4,2,18,0 после перезаливки: стаканы стали открываться, заявки отправляются, и даже история приходит с начала дня по сделкам, чего не было, все работает, спасибо.

VirKato
VirKato

Нашел update 4.2.18 который был вчера днем (до перезаливки), там ничего не изменилось все так же не могу снять заявку:


Robot_SBER@TQBR_Client 20.08.2014 17:29:35 Error Заявка 62915876 (0x2EA9DE4) не была принята по причине System.InvalidOperationException: Ошибка снятия заявки 0. Текст 'vy ne mozhete snyat' dannuyu zayavku'..


2014/08/20 17:29:34.998|       |FixServer |From client quik: OrderCancelRequest
2014/08/20 17:29:35.011|       |None      |SendTransaction: t = {}
t["CLASSCODE"] = "TQBR"
t["SECCODE"] = "SBER"
t["ORDER_KEY"] = "0"
t["ACTION"] = "KILL_ORDER"
t["TRANS_ID"] = "62915877"
sendTransaction(t)

vsnoopy83
vsnoopy83 著者

VirKato: Нашел update 4.2.18 который был вчера днем (до перезаливки), там ничего не изменилось все так же не могу снять заявку:

Robot_SBER@TQBR_Client 20.08.2014 17:29:35 Error Заявка 62915876 (0x2EA9DE4) не была принята по причине System.InvalidOperationException: Ошибка снятия заявки 0. Текст 'vy ne mozhete snyat' dannuyu zayavku'..

> 
> ```plain

2014/08/20 17:29:34.998|       |FixServer |From client quik: OrderCancelRequest
2014/08/20 17:29:35.011|       |None      |SendTransaction: t = {}
t["CLASSCODE"] = "TQBR"
t["SECCODE"] = "SBER"
t["ORDER_KEY"] = "0"
t["ACTION"] = "KILL_ORDER"
t["TRANS_ID"] = "62915877"
sendTransaction(t)

Ради интереса попробовал на бумагах (не на фотсе) выставить заявку, у меня ставится и снимается по LUA.

Вообще ошибка 'vy ne mozhete snyat' dannuyu zayavku'.. обычно появляется при ReRegister операциях, раньше они применялись только на фортсе, в последних изменениях была фича: Для торговых площадок MICEX изменено значение IsSupportAtomicReRegister на true. не совсем понятно MICEX стал поддерживать ререгистер? может с этим связана ошибка.

Mikhail Sukhov
Mikhail Sukhov

vsnoopy83: Вообще ошибка 'vy ne mozhete snyat' dannuyu zayavku'..

Это не наша ошибка. Это вообще даже не ошибка.

vsnoopy83: обычно появляется при ReRegister операциях, раньше они применялись только на фортсе, в последних изменениях была фича: Для торговых площадок MICEX изменено значение IsSupportAtomicReRegister на true. не совсем понятно MICEX стал поддерживать ререгистер? может с этим связана ошибка.

С т.з. Квика не знаю, а шлюз ММВБ давно поддерживает.

vsnoopy83
vsnoopy83 著者

Михаил Сухов:

vsnoopy83: Вообще ошибка 'vy ne mozhete snyat' dannuyu zayavku'..

Это не наша ошибка. Это вообще даже не ошибка.

vsnoopy83: обычно появляется при ReRegister операциях, раньше они применялись только на фортсе, в последних изменениях была фича: Для торговых площадок MICEX изменено значение IsSupportAtomicReRegister на true. не совсем понятно MICEX стал поддерживать ререгистер? может с этим связана ошибка.

С т.з. Квика не знаю, а шлюз ММВБ давно поддерживает.

Такая ошибка может возникнуть, когда мы пытаемся двинуть заявку, которая уже исполнилась, мы шлем транзакцию и в ответ получаем ошибку, вы не можете снять данную заявку в луа версии и не найдена активная заявка для перестановки в dde версии. Или второй вариант, если пытаться снять уже исполненную заявку, такие ошибки обычно при резких движухах рынка бывают. Ну и правда это не ошибка, просто сервер дает ответ, что данную заявку уже не снять, т.к. она исполнена или уже была снята ранее.

esper
esper

Заявка ставится, в таблице в квике она есть? Какое состояние у заявки в роботе? Это Sample?

VirKato
VirKato

Для вчерашнего дневного обновления заявка в Квике выставляется, статус остается Pending (это на боевом Квике). На тестовом - статус обновляется до активного и все нормально снимается. Для вчерашнего вечернего обновления - вылетает error при попытке выставить заявку и в логи Lua эта заявка уже не попадает. В Квик тем паче. Это был когда то Sample, но я его обновлял. Заявка ставится из стратегии:


strategy = new MyStrat() { Volume = 1, Security = ticker, Portfolio = _portfolio, Connector = this._trader, }; 
var newBuy = this.CreateOrder(StockSharp.Messages.Sides.Buy, ibid, qbuy);
this.RegisterOrder(newBuy);

Спасибо за быстрое реагирование! Что еще я могу проверить?

esper
esper

Для FORTS-а это работает? Скрипт точно загружен последней версии? Какой версии сам квик?

VirKato
VirKato

Версия QUIK 6.12.0.31; Перепроверил, что везде используется версия 4.2.18 с датой изменения 19.08 21:54.

esper
esper

На FORTS что с заявками? В новой версии добавил доп. дебаг логи, проверьте на ней.

VirKato
VirKato

esper: На FORTS что с заявками? В новой версии добавил доп. дебаг логи, проверьте на ней. Проверить заявки на Фортсе не смогу. Полный лог Lua (4.2.19):


2014/08/22 13:15:14.039|Warning|FixServer |Пользователь quik принудительно разлогинен из-за ошибок отправки данных.
2014/08/22 13:16:33.110|       |FixServer |Клиент quik (127.0.0.1:52178) авторизован.
2014/08/22 13:16:33.470|       |FixServer |Отправка Logon клиенту.
2014/08/22 13:16:33.471|       |FixServer |Сессия запущена.
2014/08/22 13:16:33.484|       |FixServer |From client quik: OrderMassStatusRequest
2014/08/22 13:16:33.484|       |FixServer |From client quik: RequestForPositions
2014/08/22 13:16:33.485|       |None      |Lookup (OrderStatus, 47790394, , )
2014/08/22 13:16:33.485|       |None      |GetOrders
2014/08/22 13:16:33.486|       |None      |GetOrders done
2014/08/22 13:16:33.486|       |None      |GetTrades
2014/08/22 13:16:33.486|       |None      |GetTrades done
2014/08/22 13:16:33.486|       |None      |Lookup (PortfolioLookup, 47790395, , )
2014/08/22 13:16:33.486|       |None      |GetPortfolios
2014/08/22 13:16:33.486|       |None      |GetPortfolios done
2014/08/22 13:16:33.486|       |None      |GetPositions
2014/08/22 13:16:33.495|       |None      |GetPositions done
2014/08/22 13:16:33.986|       |FixServer |Клиент quik (127.0.0.1:52179) авторизован.
2014/08/22 13:16:34.345|       |FixServer |Отправка Logon клиенту.
2014/08/22 13:16:34.345|       |FixServer |Сессия запущена.
2014/08/22 13:16:34.348|       |FixServer |From client quik: SecurityListRequest
2014/08/22 13:16:34.349|       |None      |Lookup (SecurityLookup, 47790396, , )
2014/08/22 13:16:34.349|       |None      |GetSecurities
2014/08/22 13:16:34.376|Error  |None      |Пустой код инструмента для класса PSEQ.
2014/08/22 13:16:34.703|Error  |None      |Пустой код инструмента для класса TQBR.
2014/08/22 13:16:34.706|Error  |None      |Пустой код инструмента для класса TQOB.
//пропущено много строк
2014/08/22 13:16:35.466|Error  |None      |Пустой код инструмента для класса PSIF.
2014/08/22 13:16:35.466|Error  |None      |Пустой код класса для getClassesList.
2014/08/22 13:16:35.561|       |None      |GetSecurities done
2014/08/22 13:16:53.036|       |FixServer |From client quik: MarketDataRequest
2014/08/22 13:16:53.037|       |FixServer |From client quik: MarketDataRequest
2014/08/22 13:16:56.873|       |None      |Lookup (QuoteChange, 0, SBER, TQBR)
2014/08/22 13:16:56.873|       |None      |Lookup (Level1Change, 0, SBER, TQBR)
2014/08/22 13:17:06.717|       |FixServer |From client quik: NewOrderSingle
2014/08/22 13:17:06.717|       |None      |SendTransaction: t = {}
t["ACCOUNT"] = "account"
t["CLASSCODE"] = "TQBR"
t["SECCODE"] = "SBER"
t["QUANTITY"] = "5"
t["CLIENT_CODE"] = "client"
t["EXPIRY_DATE"] = "GTC"
t["OPERATION"] = "B"
t["TYPE"] = "L"
t["ACTION"] = "NEW_ORDER"
t["PRICE"] = "76.36"
t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE"
t["TRANS_ID"] = "47790403"
sendTransaction(t)

2014/08/22 13:17:16.829|       |FixServer |From client quik: OrderCancelRequest
2014/08/22 13:17:16.846|       |None      |SendTransaction: t = {}
t["CLASSCODE"] = "TQBR"
t["SECCODE"] = "SBER"
t["ORDER_KEY"] = "0"
t["ACTION"] = "KILL_ORDER"
t["TRANS_ID"] = "47790404"
sendTransaction(t)

В итоге: заявка выставлена и активна в квике. При попытке снятия - ошибка Квика "нельзя снять данную заявку". Построчно сверил с логами на работающем тестовом квике - отличаются только в строке << t["ORDER_KEY"] = "0" >>. В тестовом квике статус заявки обновляется и id присваевается.

esper
esper

esper: В новой версии добавил доп. дебаг логи

VirKato
VirKato

Похоже, что без Id заявки снять ее не получится. Почему могут не подкачиваться ордера (Не обновляется статус, не приходит id)? В Sample заявки тоже не подгружаются, хотя подгружаются: Портфели, Инструменты.

VirKato
VirKato

esper: В новой версии добавил доп. дебаг логи Куда смотреть? В MonitorWindow - все хорошо. Ошибку возвращает QUIK, т.к. Lua пытается снять заявку без биржевого id. При этом quik может снять заявку только при указании id биржы, а не trans id (поправьте меня, если я ошибаюсь). Где в логах посмотреть - почему не обновляется статус заявки?

esper
esper

VirKato:

esper: В новой версии добавил доп. дебаг логиКуда смотреть? Смотреть надо дебаг логи для Lua.

GrandTucan
GrandTucan

Сейчас разбираюсь с коннектором QuikLua, заметил, что такую особенность: после постановки заявки событие QuikTrader.NewOrders приходит сразу же: при этом Id=0 (биржевой номер заявки). А событие QuikTrader.OrdersChanged, в котором передается присвоенный биржей Id приходит очень долго: где-то через 20-30 секунд после NewOrders (Order.LatencyRegistration 20-30 секунд). Хотя в терминале вижу зарегистрированную биржей заявку почти мгновенно. QUIK 6.14.02.12, StockSharp 4.2.20.0 (но то же самое было и в 4.2.18.0).

Такого раньше не было. Соответственно если попытаться передвинуть заявку в течение этих 20-30 секунд, Quik не поймет какую заявку двигать и напишет ошибку "нельзя снять данную заявку". Если выждать время, то приходит событие QuikTrader.OrdersChanged с присвоенным биржей Id и тогда заявку можно нормально двигать.

Однако в примере Sample из той же версии StockSharp 4.2.20.0 заявка появляется в окне "Заявки..." практически мгновенно после постановки. С обоими заполненными полями TransactionId и Id.

Вероятно в библиотеке происходит какой-то затык при вызове QuikTrader.OrdersChanged.

Прошу обратить внимание на эту проблему. Или же поправить, если неправ :)

esper
esper

Заявка из Connector.NewOrder приходит с состоянием Pending и у нее должен быть заполнен номер транзакции. Далее, когда заявка будет зарегистрирована, она придет через Connector.OrdersChanged, у нее должен быть биржевой номер и состояние или Active или Done, это исключая ошибки регистрации. Именно когда она стала Active ее можно снять.

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