Ошибка при котировании в SampleHistoryTesting

Ошибка при котировании в SampleHistoryTesting
Atom
10/12/2012
RomSunZ


В примере SampleHistoryTesting вываливаются ошибки при запуске каждой дочерней стратегии на котирование, которых при работе Quik SampleSMA нет:
Code

2009.05.31 20:00:00.000|       |SS_RIU9@RTS_test account|Стратегия запущена.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Стратегия запущена.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Котирование на Sell объема 1.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Приостановка правил. _rulesSuspendCount 1.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Возобновление правил. _rulesSuspendCount 0.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Цена текущей NULL и лучшей 116155.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Лучший бид NULL и лучший аск NULL.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Регистрация новой заявки на Sell с ценой 116155 и объемом 1.
2009.06.02 06:40:00.970|       |MQS_RIU9@RTS_test account|Заявка 80254917 на Sell отправлена с ценой 116155 объемом 1.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Заявка 80254917 принята биржей.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Сброс счетчика ошибок регистрации с 0 до нуля.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Цена текущей 116155 и лучшей 116000.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Лучший бид NULL и лучший аск NULL.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Котирование заявки 80254917 на Sell с ценой 116155 объемом 1.
2009.06.02 06:40:01.737|Error  |MQS_RIU9@RTS_test account|Заявка 0 не была принята по причине System.ArgumentException: Заявка уже имеет номер '1'. Возможно, она уже была зарегистрирована.
Имя параметра: order
   в StockSharp.Algo.Testing.MarketEmulator.ReRegisterOrder(Order order, Order newOrder)
   в StockSharp.Algo.Testing.EmulationTrader.OnReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder).
2009.06.02 06:40:01.737|Error  |MQS_RIU9@RTS_test account|System.ArgumentException: Заявка уже имеет номер '1'. Возможно, она уже была зарегистрирована.
Имя параметра: order
   в StockSharp.Algo.Testing.MarketEmulator.ReRegisterOrder(Order order, Order newOrder)
   в StockSharp.Algo.Testing.EmulationTrader.OnReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.Strategies.QuotingStrategy.ProcessQuoting()
   в StockSharp.Algo.Strategies.QuotingStrategy.#=ql8FZcZl1VhoSfxj6bxBSmoDgJ6B2gT6ImGejxU1jvuQ=(Order #=qP5IG1jy682SV9oLq5xh5xw==)
   в StockSharp.Algo.MarketRule`2.#=qD2pySzb7SwcKqbf509xbCf4ETRnYzZpS8F4NvKjD1Cg=()
   в StockSharp.Algo.MarketRuleHelper.#=qQ813stF5rdU7vR12V$ax_w==(IMarketRuleContainer #=qrcq1peQJX8wVd5bucjdK5Q==, IMarketRule #=qhASjoS2d0T$yCziW8qaZow==, Func`1 #=qarKRLFkIjTz$sLdPcQaF4w==)
   в StockSharp.Algo.Strategies.Strategy.#=qcUFLS8UKZFDgbx2X3BZSfEUGq5pxvIDpIdlvrsG_Q6JT74bgQBqKgNKlz2z_$METWffqXRfxwWIOkgvRG3QAtg==(IMarketRule #=qB7ROmUjGdaG1jUWU0vPRbA==, Func`1 #=qVPSEf_woMd2b0g2sKq7R1w==)
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Стратегия останавливается.
2009.06.02 06:40:01.737|Warning|MQS_RIU9@RTS_test account|Заканчиваем котирование с неисполненным объемом равный 1.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Ожидание снятия всех активных заявок.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Отмена заявки 80254917.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Заявка 80254917 больше не активна.
2009.06.02 06:40:01.737|       |MQS_RIU9@RTS_test account|Стратегия остановлена.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Стратегия запущена.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Котирование на Buy объема 1.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Приостановка правил. _rulesSuspendCount 1.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Возобновление правил. _rulesSuspendCount 0.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Цена текущей NULL и лучшей 119500.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Лучший бид NULL и лучший аск NULL.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Регистрация новой заявки на Buy с ценой 119500 и объемом 1.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Заявка 80254918 на Buy отправлена с ценой 119500 объемом 1.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Заявка 80254918 принята биржей.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Сброс счетчика ошибок регистрации с 0 до нуля.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Цена текущей 119500 и лучшей 119800.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Лучший бид NULL и лучший аск NULL.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Котирование заявки 80254918 на Buy с ценой 119500 объемом 1.
2009.06.02 10:26:03.077|Error  |MQS_RIU9@RTS_test account|Заявка 0 не была принята по причине System.ArgumentException: Заявка уже имеет номер '2'. Возможно, она уже была зарегистрирована.
Имя параметра: order
   в StockSharp.Algo.Testing.MarketEmulator.ReRegisterOrder(Order order, Order newOrder)
   в StockSharp.Algo.Testing.EmulationTrader.OnReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder).
2009.06.02 10:26:03.077|Error  |MQS_RIU9@RTS_test account|System.ArgumentException: Заявка уже имеет номер '2'. Возможно, она уже была зарегистрирована.
Имя параметра: order
   в StockSharp.Algo.Testing.MarketEmulator.ReRegisterOrder(Order order, Order newOrder)
   в StockSharp.Algo.Testing.EmulationTrader.OnReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)
   в StockSharp.Algo.Strategies.QuotingStrategy.ProcessQuoting()
   в StockSharp.Algo.Strategies.QuotingStrategy.#=ql8FZcZl1VhoSfxj6bxBSmoDgJ6B2gT6ImGejxU1jvuQ=(Order #=qP5IG1jy682SV9oLq5xh5xw==)
   в StockSharp.Algo.MarketRule`2.#=qD2pySzb7SwcKqbf509xbCf4ETRnYzZpS8F4NvKjD1Cg=()
   в StockSharp.Algo.MarketRuleHelper.#=qQ813stF5rdU7vR12V$ax_w==(IMarketRuleContainer #=qrcq1peQJX8wVd5bucjdK5Q==, IMarketRule #=qhASjoS2d0T$yCziW8qaZow==, Func`1 #=qarKRLFkIjTz$sLdPcQaF4w==)
   в StockSharp.Algo.Strategies.Strategy.#=qcUFLS8UKZFDgbx2X3BZSfEUGq5pxvIDpIdlvrsG_Q6JT74bgQBqKgNKlz2z_$METWffqXRfxwWIOkgvRG3QAtg==(IMarketRule #=qB7ROmUjGdaG1jUWU0vPRbA==, Func`1 #=qVPSEf_woMd2b0g2sKq7R1w==)
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Стратегия останавливается.
2009.06.02 10:26:03.077|Warning|MQS_RIU9@RTS_test account|Заканчиваем котирование с неисполненным объемом равный 1.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Ожидание снятия всех активных заявок.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Отмена заявки 80254918.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Заявка 80254918 больше не активна.
2009.06.02 10:26:03.077|       |MQS_RIU9@RTS_test account|Стратегия остановлена.



С чем это может быть связано?

С Уважением,
Роман



Thanks:


Liberal

Avatar
Date: 10/13/2012
Reply


RomSunZ
В примере SampleHistoryTesting вываливаются ошибки при запуске каждой дочерней стратегии на котирование, которых при работе Quik SampleSMA нет
С чем это может быть связано?

С Уважением,
Роман


У Вас, наверное, версия 4.1.4? В этой версии функция ReRegisterOrder (а именно эту функцию использует стратегия котирования) не работает в атомарном режиме у EmulationTrader. Можно выключить атомарный режим сразу после создания Security, и тогда в логе не будет ошибок:
Code

var security = new Security
{
	Id = "RIU9@RTS", 
	Code = "RIU9",
	Name = "RTS-9.09",
	MinStepSize = 5,
	MinStepPrice = 2,
	Exchange = Exchange.Rts,
};
security.Exchange.IsSupportAtomicReRegister = false;


Можно также перейти на версию 4.1.5, там ReRegisterOrder в атомарном режиме у EmulationTrader работает исправно.
Thanks:

RomSunZ

Avatar
Date: 10/13/2012
Reply


Спасибо.
Подскажите еще пожалуйста. Скачал 4.15 и при включении котирования в отчет не попадает первая сделка. В аттаче два отчета один с котированием, другой без.
sma_quot.xls 123 KB (368) sma_limit.xls 64 KB (343)
Thanks:

ViktoriusI

Avatar
Date: 11/13/2012
Reply


А у меня в этом примере другая беда , не считаются SMA
в стратегии

// добавляем новую свечку
LongSma.Process((DecimalIndicatorValue)candle.ClosePrice);
ShortSma.Process((DecimalIndicatorValue)candle.ClosePrice);

Значения цены есть, а не добавляются..
Соответственно ShortSma.GetCurrentValue() и LongSma.GetCurrentValue() всегда равны 0

PS. Версия библиотеки 4.1.5
Thanks:

Mikhail Sukhov

Avatar
Date: 11/13/2012
Reply


ViktoriusI
PS. Версия библиотеки 4.1.5


В 4.1.5 неправильно идет работа с индикаторами. Скачайте код примеров из репозитария КодеПлекс или подождите 4.1.6
Thanks: ViktoriusI


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

loading
clippy