Не переворачивается позиция в примере SampleSMA

Не переворачивается позиция в примере SampleSMA
Atom
12.10.2012
RomSunZ


[code=plain] 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Стратегия запущена. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Котирование на Sell объема 1. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Приостановка правил. _rulesSuspendCount 1. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Возобновление правил. _rulesSuspendCount 0. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Цена текущей NULL и лучшей 146900. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Лучший бид 146890 и лучший аск 146900. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Регистрация новой заявки на Sell с ценой 146900 и объемом 1. 2012.10.12 14:53:56.975| |MQS_RIZ2@RTS_SPBFUT00627|Заявка 63746365 на Sell отправлена с ценой 146900 объемом 1. 2012.10.12 14:53:57.730| |MQS_RIZ2@RTS_SPBFUT00627|Заявка 63746365 принята биржей. 2012.10.12 14:53:57.730| |MQS_RIZ2@RTS_SPBFUT00627|Сброс счетчика ошибок регистрации с 0 до нуля. 2012.10.12 14:53:57.737| |SS_RIZ2@RTS_SPBFUT00627|Новая позиция -1. 2012.10.12 14:53:57.737| |MQS_RIZ2@RTS_SPBFUT00627|Новая позиция -1. 2012.10.12 14:53:57.737| |MQS_RIZ2@RTS_SPBFUT00627|Позиция изменилась на -1. Оставшийся объем 0. 2012.10.12 14:53:57.737| |MQS_RIZ2@RTS_SPBFUT00627|Заканчиваем котирование. 2012.10.12 14:53:57.738| |MQS_RIZ2@RTS_SPBFUT00627|Стратегия останавливается. 2012.10.12 14:53:57.738| |MQS_RIZ2@RTS_SPBFUT00627|Ожидание снятия всех активных заявок. 2012.10.12 14:53:57.738| |MQS_RIZ2@RTS_SPBFUT00627|Стратегия остановлена. 2012.10.12 14:53:57.740| |SS_RIZ2@RTS_SPBFUT00627|Новая Sell сделка 76452271 по цене 146900 на 1 заявки 63746365. 2012.10.12 14:53:57.756| |MQS_RIZ2@RTS_SPBFUT00627|Новая Sell сделка 76452271 по цене 146900 на 1 заявки 63746365. 2012.10.12 14:59:52.857| |MQS_RIZ2@RTS_SPBFUT00627|Стратегия запущена. 2012.10.12 14:59:52.857| |MQS_RIZ2@RTS_SPBFUT00627|Котирование на Buy объема 1. 2012.10.12 14:59:52.858| |MQS_RIZ2@RTS_SPBFUT00627|Приостановка правил. _rulesSuspendCount 1. 2012.10.12 14:59:52.858| |MQS_RIZ2@RTS_SPBFUT00627|Возобновление правил. _rulesSuspendCount 0. 2012.10.12 14:59:52.858| |MQS_RIZ2@RTS_SPBFUT00627|Цена текущей NULL и лучшей 147150. 2012.10.12 14:59:52.858| |MQS_RIZ2@RTS_SPBFUT00627|Лучший бид 147150 и лучший аск 147200. 2012.10.12 14:59:52.858| |MQS_RIZ2@RTS_SPBFUT00627|Регистрация новой заявки на Buy с ценой 147150 и объемом 1. 2012.10.12 14:59:52.858| |MQS_RIZ2@RTS_SPBFUT00627|Заявка 63746366 на Buy отправлена с ценой 147150 объемом 1. 2012.10.12 14:59:52.874|Warning|MQS_RIZ2@RTS_SPBFUT00627|Заявка 63746366 в процессе регистрации. 2012.10.12 14:59:53.197| |MQS_RIZ2@RTS_SPBFUT00627|Заявка 63746366 принята биржей. 2012.10.12 14:59:53.197| |MQS_RIZ2@RTS_SPBFUT00627|Сброс счетчика ошибок регистрации с 0 до нуля. 2012.10.12 14:59:53.887| |SS_RIZ2@RTS_SPBFUT00627|Новая Buy сделка 76452855 по цене 147150 на 1 заявки 63746366. 2012.10.12 14:59:53.887| |SS_RIZ2@RTS_SPBFUT00627|Новая позиция 0. 2012.10.12 14:59:53.887| |MQS_RIZ2@RTS_SPBFUT00627|Новая позиция 1. 2012.10.12 14:59:53.887| |MQS_RIZ2@RTS_SPBFUT00627|Позиция изменилась на 1. Оставшийся объем 0. 2012.10.12 14:59:53.887| |MQS_RIZ2@RTS_SPBFUT00627|Заканчиваем котирование. 2012.10.12 14:59:53.888| |MQS_RIZ2@RTS_SPBFUT00627|Стратегия останавливается. 2012.10.12 14:59:53.888| |MQS_RIZ2@RTS_SPBFUT00627|Ожидание снятия всех активных заявок. 2012.10.12 14:59:53.888| |MQS_RIZ2@RTS_SPBFUT00627|Стратегия остановлена. 2012.10.12 14:59:53.888| |MQS_RIZ2@RTS_SPBFUT00627|Новая Buy сделка 76452855 по цене 147150 на 1 заявки 63746366. [/code]

Позиция закрывается в 0, но не переворачивается. Если первая сделка бай, то соответственно не открывается короткая позиция. Если селл, то длинная.

В коде стратегии добавлена только проверка на риал-тайм, больше ничего не трогал.


Теги:


Спасибо:


Moadip

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


А где написано что она должна переворачиваться?

Спасибо:

RomSunZ

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


Если посмотрите код стратегии, то в комментарии увидите. Это первое. [code=csharp] // если произошло пересечение if (_isShortLessThenLong != isShortLessThenLong) { // если короткая меньше чем длинная, то продажа, иначе, покупка. var direction = isShortLessThenLong ? OrderDirections.Sell : OrderDirections.Buy;

            // регистрируем заявку (обычным способом - лимитированной заявкой)
            //RegisterOrder(this.CreateOrder(direction, (decimal)Security.GetCurrentPrice(direction), Volume));

            // переворачиваем позицию через котирование
            if (realtime)
            {
                var strategy = new MarketQuotingStrategy(direction, Volume);
                ChildStrategies.Add(strategy);
            }

            // запоминаем текущее положение относительно друг друга
            _isShortLessThenLong = isShortLessThenLong;
        }

[/code] В примере SampleHistoryTesting та же самая стратегия при котировании переворачивает позицию. Это второе. Если вы посмотрите лог, то увидите, что есть две строчки: [code=plain] 2012.10.12 14:59:53.887| |SS_RIZ2@RTS_SPBFUT00627|Новая позиция 0. 2012.10.12 14:59:53.887| |MQS_RIZ2@RTS_SPBFUT00627|Новая позиция 1. [/code] Это третье.

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

Спасибо:

esper

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


  1. В комментариях иногда бывают ошибки. Здесь как раз такой случай.
  2. Если стратегии одинаковы, то как одна может переворачивать позу, а другая нет?
  3. Все верно, стратегии разные и позиции у них так же разные. Если при запуске котирования у SS позиция была -1 и котирование купило контракт, то у SS будет 0, а у котирования 1.
Спасибо:

RomSunZ

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


Тогда все понятно. Я еще понять не мог, почему котирует несколько раз по одному контракту. Тогда еще один вопрос. В примере SampleHistoryTesting вываливаются ошибки при запуске каждой дочерней стратегии на котирование, которых в Quik SampleSMA нет: [code=csharp] 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.MarketRule2.#=qD2pySzb7SwcKqbf509xbCf4ETRnYzZpS8F4NvKjD1Cg=() в StockSharp.Algo.MarketRuleHelper.#=qQ813stF5rdU7vR12V$ax_w==(IMarketRuleContainer #=qrcq1peQJX8wVd5bucjdK5Q==, IMarketRule #=qhASjoS2d0T$yCziW8qaZow==, Func1 #=qarKRLFkIjTz$sLdPcQaF4w==) в StockSharp.Algo.Strategies.Strategy.#=qcUFLS8UKZFDgbx2X3BZSfEUGq5pxvIDpIdlvrsG_Q6JT74bgQBqKgNKlz2z$METWffqXRfxwWIOkgvRG3QAtg==(IMarketRule #=qB7ROmUjGdaG1jUWU0vPRbA==, Func1 #=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.MarketRule2.#=qD2pySzb7SwcKqbf509xbCf4ETRnYzZpS8F4NvKjD1Cg=() в StockSharp.Algo.MarketRuleHelper.#=qQ813stF5rdU7vR12V$ax_w==(IMarketRuleContainer #=qrcq1peQJX8wVd5bucjdK5Q==, IMarketRule #=qhASjoS2d0T$yCziW8qaZow==, Func1 #=qarKRLFkIjTz$sLdPcQaF4w==) в StockSharp.Algo.Strategies.Strategy.#=qcUFLS8UKZFDgbx2X3BZSfEUGq5pxvIDpIdlvrsG_Q6JT74bgQBqKgNKlz2z_$METWffqXRfxwWIOkgvRG3QAtg==(IMarketRule #=qB7ROmUjGdaG1jUWU0vPRbA==, Func1 #=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|Стратегия остановлена.

[/code]

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

Спасибо:

esper

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


[quote]Тогда все понятно. Я еще понять не мог, почему котирует несколько раз по одному контракту.[/quote] У стратегии котирования необходимо указать Volume.

По SampleHistoryTesting лучше создать отдельную тему в разделе Тестирование.

Спасибо:


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

loading
clippy