Фичи:- 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)
Kommentare (38)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Ордера так и не выставляются по 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.
У меня логи отличаются наличием одной строки: 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. а на тестовом Квике работает все всегда стабильно. Буду демо торговать.
И в StockSharp.QuikLua.FatalError:
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 у меня тоже выскакивает постоянно, но на работу робота не влияет, хоть и 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)
После перехода на 4.2.18 type изменился с
В коде указал
Заявки начали проходить, в квике появляются. В роботе статус остается pending и id = null. При попытках:
Все так же:
И ошибка снятия заявки. Кстати, а "TRANS_ID" должен совпадать с номером заявки? В деббагере я вижу тот же номер что и в таблице квика, а в Lua эти коды совпадают только при постановке зявки. При снятии там какое то другое значение большее чем то, что я вижу в дебагере в свойстве ордера.
Рано DDE на пенсию списали))) Стаканы по LUA так сами и не открываются, но с этим можно жить, а вот с тем, что заявки в квик не приходят жить нельзя, помогите.
Все по инструкции, инструменты в таблице есть, по дде стаканы открываются.
Уточнение по стаканам, случайно увидел, что по акциям стаканы открываются автоматически, а по фортсу нет.
Да, на акциях выставляется и снимается:
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
По логам никаких ошибок не видно, все должно работать, у меня на тестовом и по фьючам и по акциям все ставится и снимается.
Квик тестовый? Какая версия? Скрипт загружает библиотеку какой версии?
По долгому получению инструментов, где-то на форуме квика писали, что надо удалить какие-то файлы с кэшем и в настройках указать классы, для которых надо получать данные.
Пробовал и на тестовом квике и на боевом, версии позже смогу написать, Скрипт квик загружает, версия скрипта последняя, опять же все работает на версии 4,2,8,0, я ничего кроме обновления библиотеки не меняю. 6.12.4.11 версия боевого квика, 6.14.0.12 версия джуниора.
На 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
После этого тишина. Причем это уже другой комп, с другой системой и т.д.
Баг с регистрацией заявок для FORTS подтверждаю. В следующей версии будет фикс.
Спасибо
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
Ждем фикса, спасибо.
фикс 4,2,18,0 после перезаливки: стаканы стали открываться, заявки отправляются, и даже история приходит с начала дня по сделкам, чего не было, все работает, спасибо.
Нашел 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'..
Ради интереса попробовал на бумагах (не на фотсе) выставить заявку, у меня ставится и снимается по LUA.
Вообще ошибка 'vy ne mozhete snyat' dannuyu zayavku'.. обычно появляется при ReRegister операциях, раньше они применялись только на фортсе, в последних изменениях была фича: Для торговых площадок MICEX изменено значение IsSupportAtomicReRegister на true. не совсем понятно MICEX стал поддерживать ререгистер? может с этим связана ошибка.
Это не наша ошибка. Это вообще даже не ошибка.
С т.з. Квика не знаю, а шлюз ММВБ давно поддерживает.
Такая ошибка может возникнуть, когда мы пытаемся двинуть заявку, которая уже исполнилась, мы шлем транзакцию и в ответ получаем ошибку, вы не можете снять данную заявку в луа версии и не найдена активная заявка для перестановки в dde версии. Или второй вариант, если пытаться снять уже исполненную заявку, такие ошибки обычно при резких движухах рынка бывают. Ну и правда это не ошибка, просто сервер дает ответ, что данную заявку уже не снять, т.к. она исполнена или уже была снята ранее.
Заявка ставится, в таблице в квике она есть? Какое состояние у заявки в роботе? Это Sample?
Для вчерашнего дневного обновления заявка в Квике выставляется, статус остается Pending (это на боевом Квике). На тестовом - статус обновляется до активного и все нормально снимается. Для вчерашнего вечернего обновления - вылетает error при попытке выставить заявку и в логи Lua эта заявка уже не попадает. В Квик тем паче. Это был когда то Sample, но я его обновлял. Заявка ставится из стратегии:
Спасибо за быстрое реагирование! Что еще я могу проверить?
Для FORTS-а это работает? Скрипт точно загружен последней версии? Какой версии сам квик?
Версия QUIK 6.12.0.31; Перепроверил, что везде используется версия 4.2.18 с датой изменения 19.08 21:54.
На FORTS что с заявками? В новой версии добавил доп. дебаг логи, проверьте на ней.
В итоге: заявка выставлена и активна в квике. При попытке снятия - ошибка Квика "нельзя снять данную заявку". Построчно сверил с логами на работающем тестовом квике - отличаются только в строке << t["ORDER_KEY"] = "0" >>. В тестовом квике статус заявки обновляется и id присваевается.
Похоже, что без Id заявки снять ее не получится. Почему могут не подкачиваться ордера (Не обновляется статус, не приходит id)? В Sample заявки тоже не подгружаются, хотя подгружаются: Портфели, Инструменты.
Сейчас разбираюсь с коннектором 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.
Прошу обратить внимание на эту проблему. Или же поправить, если неправ :)
Заявка из Connector.NewOrder приходит с состоянием Pending и у нее должен быть заполнен номер транзакции. Далее, когда заявка будет зарегистрирована, она придет через Connector.OrdersChanged, у нее должен быть биржевой номер и состояние или Active или Done, это исключая ошибки регистрации. Именно когда она стала Active ее можно снять.
Если в Sample данные по номеру и состоянию приходят быстро, значит API работает, "затык", скорее всего, в вашем коде. Проверяйте время работы ваших обработчиков, все события приходят в одном потоке и ожидание в одном обработчике может тормозить другие.