В таблице заявок имеются две старые совершенные вручную сделки. Когда собираю проект с 4.1.6 то сразу при установлении соединения с Quik в журнал приходят два сообщения: 2013.02.26 18:28:33.745| |QuikTrader|New order: 56501936/10003651138 Продажа Цена=152740 Объем=1 Сост=Done Бал=0 2013.02.26 18:28:33.753| |QuikTrader|New order: 56501937/10003787314 Покупка Цена=152600 Объем=1 Сост=Done Бал=0 2013.02.26 18:28:50.035| |QuikTrader|Экспорт запущен.
И далее программа работает нормально.
Если то-же проделываю с библиотекой 4.1.8 то прилетает еще и ошибка:
2013/02/26 18:31:44.151| |QuikTrader|New order: 56501936/10003651138 Продажа Цена=152740 Объем=1 Сост=Done Бал=0
2013/02/26 18:31:44.174| |QuikTrader|New order: 56501937/10003787314 Покупка Цена=152600 Объем=1 Сост=Done Бал=0
2013/02/26 18:31:44.382|Error |QuikTrader|System.InvalidOperationException: Ордер с transactionId=56501936 не найден
в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qoYen7SIGXXIHC5yDoBmtakvI8ajVk$YMRTG2hIXiflw=(Int64 #=qO9iU2Mv29dcXgUc$4EMffw==) в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qW_NOGPO8hUy5l8I2xNZCL$oRPjjivnoDpJ2KizA3TPo=(IEnumerable1 #=qA0Q6xXtG5Oyta7t6dDl7yg==) в System.Action1.Invoke(T obj)
в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в Ecng.ComponentModel.EventsContainer1.Raise(IEnumerable`1 items)
2013/02/26 18:31:44.675| |QuikTrader|Экспорт запущен.
И далее ордера не выставляются.
Может кто понимает что бы это значило?
По моему разумению коннектор в версии 4.1.8 запрашивает из какой-то таблицы
еще данные про ордер номер 56501936 и не получает. Как бы узнать из какой?
评论 (9)
登录 或 创建账户, 登录或注册以发表评论
очевидно вот это, (стек вызовов) tryBot1.exe!test.MainWindow..ctor.AnonymousMethod__1(System.Exception ex) Строка 72 C# Ecng.Common.dll!Ecng.Common.DelegateHelper.SafeInvoke<System.Exception>(System.Action<System.Exception> handler, System.Exception arg) + 0x39 байт StockSharp.Algo.dll!StockSharp.Algo.Testing.RealTimeEmulationTrader<StockSharp.Quik.QuikTrader>.#=qNHN4D9UbsthHTSGTNWi6$PZlIrGZFf9gC2mMJ8oqHqw=(System.Exception #=ql43C9O7pgKYIntyjdNWa9Q==) + 0x36 байт Ecng.Common.dll!Ecng.Common.DelegateHelper.SafeInvoke<System.Exception>(System.Action<System.Exception> handler, System.Exception arg) + 0x39 байт StockSharp.Algo.dll!StockSharp.Algo.BaseTrader.RaiseProcessDataError(System.Exception exception) + 0x94 байт StockSharp.Quik.dll!#=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(StockSharp.Quik.DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, System.Collections.Generic.IList<System.Collections.Generic.IList<object>> #=qMeYWUEb44NrXcAvbPuNfiQ==, System.Action<System.Collections.Generic.IList<object>,System.Func<StockSharp.Quik.DdeTableColumn,object>> #=qolGBgTssErk3vXo538xxsQ==, System.Action<System.Exception> #=qIfmNdbFGgLtG9ybpXuosbQ==, bool #=qe3W9$GyIKMHUi59wvLuQeA==) + 0x33b байт StockSharp.Quik.dll!StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=qu4gTMGq$3yH4Axl_FWkd5w==() + 0x7db байт StockSharp.Algo.dll!StockSharp.Algo.BaseTrader.ProcessEvents(System.Action handler) + 0x8a байт StockSharp.Quik.dll!StockSharp.Quik.QuikTrader.#=qaeR2In9bHSqL$9RTYB7mZA==(string #=qBWEHmyjqnbDFkS_RzrY$OQ==, System.Collections.Generic.IList<System.Collections.Generic.IList<object>> #=q5vWveEpgNMvDr0v17vxoxw==) + 0xdd байт Ecng.Common.dll!Ecng.Common.DelegateHelper.SafeInvoke<string,System.Collections.Generic.IList<System.Collections.Generic.IList<object>>>(System.Action<string,System.Collections.Generic.IList<System.Collections.Generic.IList<object>>> handler, string arg1, System.Collections.Generic.IList<System.Collections.Generic.IList<object>> arg2) + 0x3c байт StockSharp.Quik.dll!#=qO4H$vUMUtJxte1FDOGqs6k1o3v9rH9VhPKcrarKCJ_E=.#=q69jrzP3kyHkClZEeDaigUAUJGm6I9zoC7WsTE1$ILs8=.#=q8A8iEPic6wzTjce69NwpoQ==() + 0x71 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventDispatcher.Add.AnonymousMethod__0() + 0x40 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventDispatcher.CreateNewThreadQueuePair.AnonymousMethod__3() + 0x49 байт Ecng.Common.dll!Ecng.Common.ThreadingHelper.Thread.AnonymousMethod__f() + 0x23 байт mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x63 байт mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0xb0 байт mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x2c байт mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 байт
вот Debug Log: 2013/02/27 17:34:31.690|Debug |RealTimeEmulationTrader
1|Соединились 2013/02/27 17:34:33.489|Error |QuikTrader|System.InvalidOperationException: Данные для таблицы 'стоп-заявки' экспортировались в меньшем формате. Не было найдено значение для колонки 'ID транзакции'. Количество колонок равно '15', индекс колонки '34'. в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qDJWMM5YENO97pQ4kvVrxSwXaehCKqmhRhAgzkT7Jsf8=.#=qhv7A9IuBu4a_njQh_JmFbSgY0uixyYvMCIXx7TWY5EQ=(DdeTableColumn #=q4pnTK3SfN8gkjMJpZFnaRw==) в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qV4zHdEkojhf6pdjo6vaz8w==(Func2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==) в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func2 #=qlUb9wQhsWgLV82TCbkBodQ==) в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action2 #=qolGBgTssErk3vXo538xxsQ==, Action1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==) 2013/02/27 17:34:43.083|Debug |RealTimeEmulationTrader1|тут поставлена точка остановки по ошибке 2013/02/27 17:34:43.391| |QuikTrader|Экспорт запущен.В реальном режиме похожая картинка: DebugLog: 2013/02/27 17:23:10.334|Debug |QuikTrader|Соединились 2013/02/27 17:23:27.664|Error |QuikTrader|System.InvalidOperationException: Данные для таблицы 'стоп-заявки' экспортировались в меньшем формате. Не было найдено значение для колонки 'ID транзакции'. Количество колонок равно '15', индекс колонки '34'. в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qDJWMM5YENO97pQ4kvVrxSwXaehCKqmhRhAgzkT7Jsf8=.#=qhv7A9IuBu4a_njQh_JmFbSgY0uixyYvMCIXx7TWY5EQ=(DdeTableColumn #=q4pnTK3SfN8gkjMJpZFnaRw==) в#=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qV4zHdEkojhf6pdjo6vaz8w==(Func
2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==) в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func2 #=qlUb9wQhsWgLV82TCbkBodQ==) в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action2 #=qolGBgTssErk3vXo538xxsQ==, Action1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==) 2013/02/27 17:23:53.298|Debug |QuikTrader|тут поставлена точка остановки по ошибкемы же ищем колл-стек для ошибки 2013/02/26 18:31:44.382|Error |QuikTrader|System.InvalidOperationException: Ордер с transactionId=56501936 не найден
а не для ошибки 2013/02/27 17:34:33.489|Error |QuikTrader|System.InvalidOperationException: Данные для таблицы 'стоп-заявки' экспортировались в меньшем формате. Не было найдено значение для колонки 'ID транзакции'. Количество колонок равно '15', индекс колонки '34'.
соответственно надо было дождаться именно первой ошибки, а остальные пропускать через "продолжить".
Однако я подозреваю что эмулятор не находил заявки потому что у вас неправильно настроен квик - нет колонки ID Транзакции.
Запустите Verifier.
очевидно вот это, (стек вызовов) tryBot1.exe!test.MainWindow..ctor.AnonymousMethod__1(System.Exception ex) Строка 72 C# Ecng.Common.dll!Ecng.Common.DelegateHelper.SafeInvoke<System.Exception>(System.Action<System.Exception> handler, System.Exception arg) + 0x39 байт StockSharp.Algo.dll!StockSharp.Algo.Testing.RealTimeEmulationTrader<StockSharp.Quik.QuikTrader>.#=qNHN4D9UbsthHTSGTNWi6$PZlIrGZFf9gC2mMJ8oqHqw=(System.Exception #=ql43C9O7pgKYIntyjdNWa9Q==) + 0x36 байт Ecng.Common.dll!Ecng.Common.DelegateHelper.SafeInvoke<System.Exception>(System.Action<System.Exception> handler, System.Exception arg) + 0x39 байт StockSharp.Algo.dll!StockSharp.Algo.BaseTrader.RaiseProcessDataError(System.Exception exception) + 0x94 байт StockSharp.Quik.dll!#=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(StockSharp.Quik.DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, System.Collections.Generic.IList<System.Collections.Generic.IList<object>> #=qMeYWUEb44NrXcAvbPuNfiQ==, System.Action<System.Collections.Generic.IList<object>,System.Func<StockSharp.Quik.DdeTableColumn,object>> #=qolGBgTssErk3vXo538xxsQ==, System.Action<System.Exception> #=qIfmNdbFGgLtG9ybpXuosbQ==, bool #=qe3W9$GyIKMHUi59wvLuQeA==) + 0x33b байт StockSharp.Quik.dll!StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=qu4gTMGq$3yH4Axl_FWkd5w==() + 0x7db байт StockSharp.Algo.dll!StockSharp.Algo.BaseTrader.ProcessEvents(System.Action handler) + 0x8a байт StockSharp.Quik.dll!StockSharp.Quik.QuikTrader.#=qaeR2In9bHSqL$9RTYB7mZA==(string #=qBWEHmyjqnbDFkS_RzrY$OQ==, System.Collections.Generic.IList<System.Collections.Generic.IList<object>> #=q5vWveEpgNMvDr0v17vxoxw==) + 0xdd байт Ecng.Common.dll!Ecng.Common.DelegateHelper.SafeInvoke<string,System.Collections.Generic.IList<System.Collections.Generic.IList<object>>>(System.Action<string,System.Collections.Generic.IList<System.Collections.Generic.IList<object>>> handler, string arg1, System.Collections.Generic.IList<System.Collections.Generic.IList<object>> arg2) + 0x3c байт StockSharp.Quik.dll!#=qO4H$vUMUtJxte1FDOGqs6k1o3v9rH9VhPKcrarKCJ_E=.#=q69jrzP3kyHkClZEeDaigUAUJGm6I9zoC7WsTE1$ILs8=.#=q8A8iEPic6wzTjce69NwpoQ==() + 0x71 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventDispatcher.Add.AnonymousMethod__0() + 0x40 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventDispatcher.CreateNewThreadQueuePair.AnonymousMethod__3() + 0x49 байт Ecng.Common.dll!Ecng.Common.ThreadingHelper.Thread.AnonymousMethod__f() + 0x23 байт mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x63 байт mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0xb0 байт mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x2c байт mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 байт
вот Debug Log: 2013/02/27 17:34:31.690|Debug |RealTimeEmulationTrader
1|Соединились 2013/02/27 17:34:33.489|Error |QuikTrader|System.InvalidOperationException: Данные для таблицы 'стоп-заявки' экспортировались в меньшем формате. Не было найдено значение для колонки 'ID транзакции'. Количество колонок равно '15', индекс колонки '34'. в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qDJWMM5YENO97pQ4kvVrxSwXaehCKqmhRhAgzkT7Jsf8=.#=qhv7A9IuBu4a_njQh_JmFbSgY0uixyYvMCIXx7TWY5EQ=(DdeTableColumn #=q4pnTK3SfN8gkjMJpZFnaRw==) в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qV4zHdEkojhf6pdjo6vaz8w==(Func2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==) в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func2 #=qlUb9wQhsWgLV82TCbkBodQ==) в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action2 #=qolGBgTssErk3vXo538xxsQ==, Action1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==) 2013/02/27 17:34:43.083|Debug |RealTimeEmulationTrader1|тут поставлена точка остановки по ошибке 2013/02/27 17:34:43.391| |QuikTrader|Экспорт запущен.В реальном режиме похожая картинка: DebugLog: 2013/02/27 17:23:10.334|Debug |QuikTrader|Соединились 2013/02/27 17:23:27.664|Error |QuikTrader|System.InvalidOperationException: Данные для таблицы 'стоп-заявки' экспортировались в меньшем формате. Не было найдено значение для колонки 'ID транзакции'. Количество колонок равно '15', индекс колонки '34'. в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qDJWMM5YENO97pQ4kvVrxSwXaehCKqmhRhAgzkT7Jsf8=.#=qhv7A9IuBu4a_njQh_JmFbSgY0uixyYvMCIXx7TWY5EQ=(DdeTableColumn #=q4pnTK3SfN8gkjMJpZFnaRw==) в#=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qV4zHdEkojhf6pdjo6vaz8w==(Func
2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==) в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func2 #=qlUb9wQhsWgLV82TCbkBodQ==) в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action2 #=qolGBgTssErk3vXo538xxsQ==, Action1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==) 2013/02/27 17:23:53.298|Debug |QuikTrader|тут поставлена точка остановки по ошибкеДа, но это было вчера. Сегодня такого ордера уже нет. ( С verifier-ом странная штука. Первый раз запускаю тоже показывает что не хватает колонок в таблице стоп-ордеров. Иду в Quik изумленно считаю количество полей оно равно 38 как и требуется. Снова и снова пускаю verifier пишет: "Все настроено правильно". Программа по прежнему выдает ошибку. Однако уже что-то новенькое: 2013/02/27 23:55:36.585|Debug |RealTimeEmulationTrader
1|Соединились 2013/02/27 23:55:38.915| |QuikTrader|New order: 0/10019781965 Продажа Цена=153520 Объем=1 Сост=Done Бал=0 2013/02/27 23:55:38.922| |QuikTrader|New order: 0/11852461 Продажа Цена=146000 Объем=1 Сост=Done Бал=1 2013/02/27 23:55:38.939|Error |QuikTrader|System.InvalidOperationException: Ордер с transactionId=0 не найден в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qoYen7SIGXXIHC5yDoBmtakvI8ajVk$YMRTG2hIXiflw=(Int64 #=qO9iU2Mv29dcXgUc$4EMffw==) в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qW_NOGPO8hUy5l8I2xNZCL$oRPjjivnoDpJ2KizA3TPo=(IEnumerable1 #=qA0Q6xXtG5Oyta7t6dDl7yg==) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в Ecng.ComponentModel.EventsContainer1.Raise(IEnumerable1 items) 2013/02/27 23:55:38.940|Debug |RealTimeEmulationTrader1|тут поставлена точка остановки по ошибке 2013/02/27 23:55:39.092| |QuikTrader|Экспорт запущен. Какой-то плавающий глюк (.на всякий случай код:
Пардон, это уже после закрытия рынка. Завтра перепроверю.
Проверил. Verifier- Все настроено правильно. Стек вызовов
Проверьте последовательность колонок как здесь.
Проверьте последовательность колонок как здесь.
Настраивал вручную на отдельной вкладке, так как тренируюсь на рабочем Quik-е и жалко терять рабочии настройки на других вкладках. Проверил глазками - последовательность колонок совпадает. Verifier говорит все настроено правильно.