← Zurück

наблюдаю разницу в поведении RealTimeEmulationTrader от 4.1.6 к 4.1.8

В таблице заявок имеются две старые совершенные вручную сделки. Когда собираю проект с 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 и не получает. Как бы узнать из какой?

War dieses Thema hilfreich?

Thema teilen

Kommentare (9)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

pyhta4og
pyhta4og

kahuna: В таблице заявок имеются две старые совершенные вручную сделки. Когда собираю проект с 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 и не получает. Как бы узнать из какой? поставьте пожалуйста quikTrader.LogLevel=LogLevels.Debug и пришлите дебаг-лог эмулятора, воспроизводящий проблему. также было бы неплохо увидеть полный коллстек ошибки. Для этого можно поставить брекпойнт в обработчик ProcessError и посмотреть на InvalidOperationException call stack

kahuna
kahuna Autor

Поставьте пожалуйста quikTrader.LogLevel=LogLevels.Debug и пришлите дебаг-лог эмулятора, воспроизводящий проблему. также было бы неплохо увидеть полный коллстек ошибки. Для этого можно поставить брекпойнт в обработчик ProcessError и посмотреть на InvalidOperationException call stack

очевидно вот это, (стек вызовов) 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 |RealTimeEmulationTrader1|Соединились 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==(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:23:53.298|Debug |QuikTrader|тут поставлена точка остановки по ошибке

pyhta4og
pyhta4og

мы же ищем колл-стек для ошибки 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.

Поставьте пожалуйста quikTrader.LogLevel=LogLevels.Debug и пришлите дебаг-лог эмулятора, воспроизводящий проблему. также было бы неплохо увидеть полный коллстек ошибки. Для этого можно поставить брекпойнт в обработчик ProcessError и посмотреть на InvalidOperationException call stack

очевидно вот это, (стек вызовов) 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 |RealTimeEmulationTrader1|Соединились 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==(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:23:53.298|Debug |QuikTrader|тут поставлена точка остановки по ошибке

kahuna
kahuna Autor

pyhta4og: мы же ищем колл-стек для ошибки 2013/02/26 18:31:44.382|Error |QuikTrader|System.InvalidOperationException: Ордер с transactionId=56501936 не найден

Да, но это было вчера. Сегодня такого ордера уже нет. ( С verifier-ом странная штука. Первый раз запускаю тоже показывает что не хватает колонок в таблице стоп-ордеров. Иду в Quik изумленно считаю количество полей оно равно 38 как и требуется. Снова и снова пускаю verifier пишет: "Все настроено правильно". Программа по прежнему выдает ошибку. Однако уже что-то новенькое: 2013/02/27 23:55:36.585|Debug |RealTimeEmulationTrader1|Соединились 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|Экспорт запущен. Какой-то плавающий глюк (.

kahuna
kahuna Autor

на всякий случай код:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Windows;
using System.Windows.Controls;
using System.Diagnostics;
using MessageBox = System.Windows.MessageBox;
using System.Threading;
using System.Linq;
using System.Xml;
using Ecng.Common;
using Ecng.Collections;
using Ecng.Xaml;
using Ecng.ComponentModel;

using StockSharp.BusinessEntities;
using StockSharp.Algo.Reporting;
using StockSharp.Quik;
using StockSharp.Algo;
using StockSharp.Xaml;
using StockSharp.Logging;
using StockSharp.Algo.Testing;

namespace test
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>

    public partial class MainWindow : Window
   {




        private RealTimeEmulationTrader<QuikTrader> _trader;

        //private QuikTrader _trader;
        private MonitorWindow monitor;
        private LogManager _logManager;

        public MainWindow()
        {

            InitializeComponent();

            monitor = new MonitorWindow();
           monitor.Show();
            _logManager = new LogManager();
            var fileListener = new FileLogListener("{0}_{1:00}_{2:00}.txt".Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));
            _logManager.Listeners.Add(fileListener);
            _logManager.Listeners.Add(new GuiLogListener(monitor));
            _trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(QuikTerminal.GetDefaultPath()) { IsAsyncMode = true, SupportManualOrders = true });
            _trader.UnderlyingTrader.SupportManualOrders = true;
           _trader.UnderlyingTrader.IsAsyncMode = true;
            //_trader = new QuikTrader(QuikTerminal.GetDefaultPath()) { IsAsyncMode = true, SupportManualOrders = false };




            _trader.UnderlyingTrader.LogLevel = LogLevels.Debug;
            _logManager.Sources.Add(_trader.UnderlyingTrader);
            _trader.LogLevel = LogLevels.Debug;
            _logManager.Sources.Add(_trader);

            //_trader.LogLevel = LogLevels.Debug;
            //_logManager.Sources.Add(_trader);
            _trader.ProcessDataError += (ex) =>
            {
                _trader.AddDebugLog("тут поставлена точка остановки по ошибке");
            };

            _trader.Connected += () =>
            {
                _trader.AddDebugLog("Соединились");
            };
            // запускаем экспорт по DDE
            _trader.Connect();


            while (!_trader.IsConnected) { }
            _trader.StartExport();

        }
     }
}

kahuna
kahuna Autor

Пардон, это уже после закрытия рынка. Завтра перепроверю.

kahuna
kahuna Autor

kahuna: Пардон, это уже после закрытия рынка. Завтра перепроверю.

Проверил. 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 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventsContainer<StockSharp.BusinessEntities.MyTrade>.Raise(System.Collections.Generic.IEnumerable<StockSharp.BusinessEntities.MyTrade> items) + 0x76 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventsContainer<StockSharp.BusinessEntities.MyTrade>.Flush() + 0x98 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventsContainer.EndSuspend.AnonymousMethod__0(Ecng.ComponentModel.EventsContainer c) + 0x20 байт mscorlib.dll!System.Collections.Generic.List<Ecng.ComponentModel.EventsContainer>.ForEach(System.Action<Ecng.ComponentModel.EventsContainer> action) + 0x92 байт Ecng.ComponentModel.dll!Ecng.ComponentModel.EventsContainer.EndSuspend() + 0xb9 байт StockSharp.Algo.dll!StockSharp.Algo.BaseTrader.ProcessEvents(System.Action handler) + 0xc7 байт 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/28 17:49:34.553|Debug |RealTimeEmulationTrader1|Соединились 2013/02/28 17:49:36.339| |QuikTrader|New order: 0/10024824729 Покупка Цена=153080 Объем=1 Сост=Done Бал=0 2013/02/28 17:49:36.455| |QuikTrader|New order: 0/11854037 Продажа Цена=147000 Объем=1 Сост=Active Бал=1 2013/02/28 17:49:36.619|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/28 17:49:53.304|Debug |RealTimeEmulationTrader1|тут поставлена точка остановки по ошибке 2013/02/28 17:49:53.614| |QuikTrader|Экспорт запущен.

Moadip
Moadip

Иду в Quik изумленно считаю количество полей оно равно 38 как и требуется. Таблицу стоп ордеров как настраивали? Вручную или с помощью wnd?

Проверьте последовательность колонок как здесь.

kahuna
kahuna Autor

Иду в Quik изумленно считаю количество полей оно равно 38 как и требуется. Таблицу стоп ордеров как настраивали? Вручную или с помощью wnd?

Проверьте последовательность колонок как здесь.

Настраивал вручную на отдельной вкладке, так как тренируюсь на рабочем Quik-е и жалко терять рабочии настройки на других вкладках. Проверил глазками - последовательность колонок совпадает. Verifier говорит все настроено правильно.