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

наблюдаю разницу в поведении RealTimeEmulationTrader от 4.1.6 к 4.1.8
Atom
2/26/2013
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.RealTimeEmulationTrader`1.#=qoYen7SIGXXIHC5yDoBmtakvI8ajVk$YMRTG2hIXiflw=(Int64 #=qO9iU2Mv29dcXgUc$4EMffw==)
в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qW_NOGPO8hUy5l8I2xNZCL$oRPjjivnoDpJ2KizA3TPo=(IEnumerable`1 #=qA0Q6xXtG5Oyta7t6dDl7yg==)
в System.Action`1.Invoke(T obj)
в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
в Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/02/26 18:31:44.675| |QuikTrader|Экспорт запущен.

И далее ордера не выставляются.
Может кто понимает что бы это значило?
По моему разумению коннектор в версии 4.1.8 запрашивает из какой-то таблицы
еще данные про ордер номер 56501936 и не получает. Как бы узнать из какой?


Tags:


Thanks:


pyhta4og

Avatar
Date: 2/26/2013
Reply


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.RealTimeEmulationTrader`1.#=qoYen7SIGXXIHC5yDoBmtakvI8ajVk$YMRTG2hIXiflw=(Int64 #=qO9iU2Mv29dcXgUc$4EMffw==)
в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qW_NOGPO8hUy5l8I2xNZCL$oRPjjivnoDpJ2KizA3TPo=(IEnumerable`1 #=qA0Q6xXtG5Oyta7t6dDl7yg==)
в System.Action`1.Invoke(T obj)
в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
в Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/02/26 18:31:44.675| |QuikTrader|Экспорт запущен.

И далее ордера не выставляются.
Может кто понимает что бы это значило?
По моему разумению коннектор в версии 4.1.8 запрашивает из какой-то таблицы
еще данные про ордер номер 56501936 и не получает. Как бы узнать из какой?


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

kahuna

Avatar
Date: 2/27/2013
Reply


Quote:
Поставьте пожалуйста 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 |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==[T](Func`2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==)
в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList`1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func`2 #=qlUb9wQhsWgLV82TCbkBodQ==)
в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList`1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action`2 #=qolGBgTssErk3vXo538xxsQ==, Action`1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==)
2013/02/27 17:34:43.083|Debug |RealTimeEmulationTrader`1|тут поставлена точка остановки по ошибке
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==[T](Func`2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==)
в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList`1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func`2 #=qlUb9wQhsWgLV82TCbkBodQ==)
в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList`1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action`2 #=qolGBgTssErk3vXo538xxsQ==, Action`1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==)
2013/02/27 17:23:53.298|Debug |QuikTrader|тут поставлена точка остановки по ошибке
Thanks:

kahuna

Avatar
Date: 2/27/2013
Reply


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

Code

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();

        }
     }
}
Thanks:

pyhta4og

Avatar
Date: 2/27/2013
Reply


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




kahuna
Quote:
Поставьте пожалуйста 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 |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==[T](Func`2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==)
в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList`1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func`2 #=qlUb9wQhsWgLV82TCbkBodQ==)
в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList`1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action`2 #=qolGBgTssErk3vXo538xxsQ==, Action`1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==)
2013/02/27 17:34:43.083|Debug |RealTimeEmulationTrader`1|тут поставлена точка остановки по ошибке
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==[T](Func`2 #=qy9KqBxWU5kgs33RYn7ZxjA==, DdeTableColumn #=qQWUnmuZ9JkNca$ApBYluAA==)
в StockSharp.Quik.QuikTrader.#=qjrOBFov$lIae$ZMCQLx7P1fQAe2X2s16$DxZRnv$aqU=.#=q$lSEIT5LexsQlwc6F31I_w==(IList`1 #=q$0V_COkA0ZnIxo4oiZ38PQ==, Func`2 #=qlUb9wQhsWgLV82TCbkBodQ==)
в #=qU8C8kAMUmJ0kPIeEJrF68f3NMymXDukMNgL4Dc7ffmr7PRgVzknJ3atY_n0PucT4.#=qB09_IBYvsxLb_dLzMi2NWQ==(DdeTable #=qOgXoydWCvsq2gXlddKoo0w==, IList`1 #=qMeYWUEb44NrXcAvbPuNfiQ==, Action`2 #=qolGBgTssErk3vXo538xxsQ==, Action`1 #=qIfmNdbFGgLtG9ybpXuosbQ==, Boolean #=qe3W9$GyIKMHUi59wvLuQeA==)
2013/02/27 17:23:53.298|Debug |QuikTrader|тут поставлена точка остановки по ошибке


Thanks:

kahuna

Avatar
Date: 2/27/2013
Reply


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 |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.RealTimeEmulationTrader`1.#=qoYen7SIGXXIHC5yDoBmtakvI8ajVk$YMRTG2hIXiflw=(Int64 #=qO9iU2Mv29dcXgUc$4EMffw==)
в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qW_NOGPO8hUy5l8I2xNZCL$oRPjjivnoDpJ2KizA3TPo=(IEnumerable`1 #=qA0Q6xXtG5Oyta7t6dDl7yg==)
в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
в Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/02/27 23:55:38.940|Debug |RealTimeEmulationTrader`1|тут поставлена точка остановки по ошибке
2013/02/27 23:55:39.092| |QuikTrader|Экспорт запущен.

Какой-то плавающий глюк (.
Thanks:

kahuna

Avatar
Date: 2/28/2013
Reply


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

Moadip

Avatar
Date: 2/28/2013
Reply


Quote:
Иду в Quik изумленно считаю количество полей оно равно 38 как и требуется.

Таблицу стоп ордеров как настраивали? Вручную или с помощью wnd?

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

kahuna

Avatar
Date: 2/28/2013
Reply


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 |RealTimeEmulationTrader`1|Соединились
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.RealTimeEmulationTrader`1.#=qoYen7SIGXXIHC5yDoBmtakvI8ajVk$YMRTG2hIXiflw=(Int64 #=qO9iU2Mv29dcXgUc$4EMffw==)
в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qW_NOGPO8hUy5l8I2xNZCL$oRPjjivnoDpJ2KizA3TPo=(IEnumerable`1 #=qA0Q6xXtG5Oyta7t6dDl7yg==)
в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
в Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/02/28 17:49:53.304|Debug |RealTimeEmulationTrader`1|тут поставлена точка остановки по ошибке
2013/02/28 17:49:53.614| |QuikTrader|Экспорт запущен.
Thanks:

kahuna

Avatar
Date: 2/28/2013
Reply


Moadip
Quote:
Иду в Quik изумленно считаю количество полей оно равно 38 как и требуется.

Таблицу стоп ордеров как настраивали? Вручную или с помощью wnd?

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


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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy