Ошибка экспорта таблицы стоп-заявок


Ошибка экспорта таблицы стоп-заявок
Atom
26.02.2013


При прошлом запуске успешно создавал тейк-профиты по заявке (как 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

Теги:


Спасибо:


1 2  >
Mikhail Sukhov

Фотография
Дата: 26.02.2013
Ответить


Судя по тексту, собрано из сырцов. Как насчет бряки в метод GetStopOrderType?[rolleyes]
Спасибо:

VassilSanych

Фотография
Дата: 26.02.2013
Ответить


Mikhail Sukhov Перейти
Судя по тексту, собрано из сырцов. Как насчет бряки в метод GetStopOrderType?[rolleyes]

Собрано-то собрано, но я исходники в солюшн робота не включаю.
Спасибо:

VassilSanych

Фотография
Дата: 26.02.2013
Ответить


Ругается отсюда:
Код
		public static QuikOrderConditionTypes GetStopOrderType(this Func<DdeTableColumn, object> func)
		{
			var value = Get<string>(func, DdeStopOrderColumns.Type);

			switch (value)
			{
				case "Со связ. заявкой":
					return QuikOrderConditionTypes.LinkedOrder;
				case "Стоп-лимит":
				case "Стоп-лимит по заявке":
					return QuikOrderConditionTypes.StopLimit;
				case "СЦ по др. бумаге":
					return QuikOrderConditionTypes.OtherSecurity;
				case "Тэйк-профит":
				case "Тэйк профит по заявке":
					return QuikOrderConditionTypes.TakeProfit;
				case "Тэйк-профит и стоп-лимит":
				case "Тэйк-профит и стоп-лимит по заявке":
					return QuikOrderConditionTypes.TakeProfitStopLimit;
				default:
					throw new ArgumentOutOfRangeException("func", value, "Неподдерживаемый тип стоп-заявки.");
			}
		}

upd
В "Тэйк профит по заявке" пропущен дефис
Спасибо:

Mikhail Sukhov

Фотография
Дата: 26.02.2013
Ответить


VassilSanych Перейти
В "Тэйк профит по заявке" пропущен дефис


А должен быть с дефисом? Странно, получается первый раз приходит без дефиса?
Спасибо:

VassilSanych

Фотография
Дата: 26.02.2013
Ответить


Mikhail Sukhov Перейти
А должен быть с дефисом? Странно, получается первый раз приходит без дефиса?

В первый раз таблица пустая и вообще ничего не приходит.
Добавил в условие строчку с дефисом (без дефиса на всякий случай тоже стирать не стал) - заработало.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 26.02.2013
Ответить


VassilSanych Перейти

В первый раз таблица пустая и вообще ничего не приходит.


Первоначально писалось про какой-то прошлый запуск, где все работало.
Спасибо:

VassilSanych

Фотография
Дата: 26.02.2013
Ответить


Mikhail Sukhov Перейти
Первоначально писалось про какой-то прошлый запуск, где все работало.

Так и есть:
- первый запуск: таблица стопов пустая, тейк-профиты добавляются, ошибок не валится
- второй запуск: таблица с отработанными тейкпрофитами от первого запуска, ошибки при экспорте.

Именно это имелось в виду.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 26.02.2013
Ответить


VassilSanych Перейти
Mikhail Sukhov Перейти
Первоначально писалось про какой-то прошлый запуск, где все работало.

Так и есть:
- первый запуск: таблица стопов пустая, тейк-профиты добавляются, ошибок не валится
- второй запуск: таблица с отработанными тейкпрофитами от первого запуска, ошибки при экспорте.

Именно это имелось в виду.



Экспорт ДДЕ идет и в первый раз и во второй. Тоесть первый раз по ДДЕ шлется что-то не то, что во второй.
Спасибо:

VassilSanych

Фотография
Дата: 26.02.2013
Ответить


Не знаю. Главное, что после правки экспорт работает.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 26.02.2013
Ответить


VassilSanych Перейти
Не знаю. Главное, что после правки экспорт работает.


Тогда подождем пару дней, вдруг перестанет из-за правки.
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy