При прошлом запуске успешно создавал тейк-профиты по заявке (как CreateConditionTakeProfit из примера). Соответственно в таблице стоп-заявок есть данные. Закрыл, запустил заново. Получил следующий баг экспорта на старте:
2013/02/26 14:42:37.144| |StrategyManager|Status:Started, PnL:0, Slippage:0, Position:0, Latency:00:00:00, StartedTime
2013/02/26 14:42:37.145| |SS |Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/02/26 14:42:37.277|Debug |QuikManager|Терминал проверен
2013/02/26 14:42:37.281|Debug |QuikManager|Создание шлюза взаимодействия с системой Quik.
2013/02/26 14:42:37.593| |QuikManager|Шлюз создан
2013/02/26 14:42:42.652|Debug |QuikManager|Ожидание соединения
2013/02/26 14:42:42.657|Debug |QuikManager|Соединение установлено.
2013/02/26 14:42:46.168|Debug |TimeServerHelper|Время синхронизировано c сервером 80.90.180.140:123. Отступ - 00:00:03.4116024
2013/02/26 14:42:51.169|Debug |QuikManager|Запуск экспорта данных.
2013/02/26 14:42:51.533|Debug |QuikManager|Новые бумаги
2013/02/26 14:42:51.675|Error |QuikManager|Ошибка получения данных: System.ArgumentOutOfRangeException: Неподдерживаемый тип стоп-заявки.
Имя параметра: func
Фактическое значение было Тэйк-профит по заявке.
в StockSharp.Quik.QuikDdeFormatter.GetStopOrderType(Func`2 func) в e:\Projects\C_Projects\StockSharp\Sources\Quik\QuikDdeFormatter.cs:строка 268
в StockSharp.Quik.QuikTrader.<>c__DisplayClass31.<>c__DisplayClass56.<>c__DisplayClass58.<>c__DisplayClass5a.<OnPoke>b__1b(Int64 key) в e:\Projects\C_Projects\StockSharp\Sources\Quik\QuikTrader.cs:строка 1154
в StockSharp.Algo.BaseTrader.<>c__DisplayClass1f.<GetOrder>b__1d(Int64 key) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 2440
в StockSharp.Algo.BaseTrader.Cache.<>c__DisplayClass50.<GetOrder>b__4f(Int64 key) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 125
в Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler, Boolean& isNew) в e:\Ecng\trunk\Collections\CollectionHelper.cs:строка 479
в Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler) в e:\Ecng\trunk\Collections\CollectionHelper.cs:строка 456
в StockSharp.Algo.BaseTrader.Cache.GetOrder(Security security, Int64 id, Func`2 createOrder) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 123
в StockSharp.Algo.BaseTrader.GetOrder(Security security, Int64 id, Func`2 createOrder, Func`2 changeOrder) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 2436
в StockSharp.Quik.QuikTrader.<>c__DisplayClass31.<>c__DisplayClass56.<>c__DisplayClass58.<OnPoke>b__1a(Security otherSec) в e:\Projects\C_Projects\StockSharp\Sources\Quik\QuikTrader.cs:строка 1149
в StockSharp.Quik.QuikTrader.<>c__DisplayClass31.<>c__DisplayClass56.<OnPoke>b__19(Security security) в e:\Projects\C_Projects\StockSharp\Sources\Quik\QuikTrader.cs:строка 1207
в StockSharp.Algo.BaseTrader.ProcessSecurityAction(String securityId, Object nativeSecurityId, Action`1 action, Boolean ignoreIfNotExist) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 2829
в StockSharp.Quik.QuikTrader.<>c__DisplayClass31.<OnPoke>b__18(IList`1 row, Func`2 func) в e:\Projects\C_Projects\StockSharp\Sources\Quik\QuikTrader.cs:строка 1141
в StockSharp.Quik.QuikDdeFormatter.Deserialize(DdeTable table, IList`1 rows, Action`2 handler, Action`1 errorHandler, Boolean skipErrors) в e:\Projects\C_Projects\StockSharp\Sources\Quik\QuikDdeFormatter.cs:строка 57
评论 (12)
登录 或 创建账户, 登录或注册以发表评论
Судя по тексту, собрано из сырцов. Как насчет бряки в метод GetStopOrderType?🙄
Ругается отсюда:
upd В "Тэйк профит по заявке" пропущен дефис
А должен быть с дефисом? Странно, получается первый раз приходит без дефиса?
Первоначально писалось про какой-то прошлый запуск, где все работало.
Именно это имелось в виду.
Экспорт ДДЕ идет и в первый раз и во второй. Тоесть первый раз по ДДЕ шлется что-то не то, что во второй.
Не знаю. Главное, что после правки экспорт работает.
Тогда подождем пару дней, вдруг перестанет из-за правки.
Будет значительно проще, если вы в лог выведите тип стоп-заявки, что приходит от Квика (с идентификатором процесса, чтобы разделить повторные запуски).