MarketQuotingStrategy
Atom
17.03.2011
roman


Не до конца понимаю как работает MarketQuotingStrategy

  1. PriceDelta,PriceExchange - какие значения туда нужно подставлять и на что они влияют.
  2. Можно ли использовать эту стратегию для покупки. Вроде как можно, но
  1. в комментах у нее стоит "Продать по рыночной цене"
  2. Несколько раз запускал эту стратегию и всегда она заканчивала свою работу продажей, хотя я ее для покупки использовал: Код:
var order = base.CreateOrder(OrderDirections.Buy, buyPrice, volume);
// регистрируем заявку (через котирование)
MarketQuotingStrategy strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
strategy.Interval = TimeSpan.FromSeconds(15);
strategy.MaxReRegisterCount = 100;
//strategy.PriceDelta = new Unit( (decimal)(sellDelta / 10)); 
//strategy.PriceExchange = new Unit(strategy.PriceDelta.Value/10);
base.ChildStrategies.Add(strategy);

Результат работы:

Заявки Номер заявки Номер транзакции Направление Время Цена Цена (усредн.) Статус Состояние Баланс Объем Тип Проскальзывание Задержка 630024 55360577 Покупка 17.03.2011 15:34:24 1977 0 Не активна Отменена 81 81 Лимитная 1434 00:00:09 637311 55360578 Покупка 17.03.2011 15:39:23 1979 0 Не активна Отменена 81 81 Лимитная 1434 00:00:07 638134 55360579 Покупка 17.03.2011 15:39:39 1981 1981 Не активна Отменена 61 81 Лимитная 1434 00:00:08 642936 55360580 Покупка 17.03.2011 15:41:39 1982 0 Не активна Отменена 61 61 Лимитная 1354 00:00:07 643602 55360581 Покупка 17.03.2011 15:42:01 1983 0 Не активна Отменена 61 61 Лимитная 1354 00:00:13 651839 55360582 Покупка 17.03.2011 15:44:10 1985 0 Не активна Отменена 61 61 Лимитная 1354 00:00:07 659801 55360583 Покупка 17.03.2011 15:48:11 1990 1990 Не активна Отменена 51 61 Лимитная 1354 00:00:07 674453 55360584 Покупка 17.03.2011 15:56:57 1999 0 Не активна Отменена 51 51 Лимитная 1224 00:00:08 677327 55360585 Покупка 17.03.2011 15:58:42 2000 0 Не активна Отменена 51 51 Лимитная 1224 00:00:07 677742 55360586 Покупка 17.03.2011 15:59:13 2001 2001 Не активна Исполнена 0 51 Лимитная 1224 00:00:08 678522 55360587 Продажа 17.03.2011 15:59:59 2002 2002 Не активна Исполнена 0 81 Лимитная 0 00:00:08


Теги:


Спасибо:


Greene-nsk

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


  1. http://stocksharp.com/doc/help/html/24250c24-029c-4dbc-bc8b-4afde645e483.htm Пример: MarketQuotingStrategy strategy = new MarketQuotingStrategy(Order, 1.Pips(Order.Security), 2.Pips(Order.Security));

  2. Должно работать в обе стороны. Если нет, это к Михаилу.

Спасибо:

Mikhail Sukhov

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


Greene-nsk: 2. Должно работать в обе стороны. Если нет, это к Михаилу.

Все правильно, комменты лгут.

На будущее, не забываем логировать саму стратегию.

Спасибо:

roman

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


Запустил MarketQuotingStrategy из тестовой стратегии

                var direction = OrderDirections.Buy;
                var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction), base.Volume);
                var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
                base.ChildStrategies.Add(strategy);

она запускается из:


_manager = new TimeShiftStrategyManager(trader, new DateTime(2011, 2, 4, 10, 30, 0), new DateTime(2011, 2, 4, 16, 00, 0)) { TimeStep = timeFrame };


получаю такой лог:

TS_01:00:01 02:37:44.9337942 None Стратегия запущена. MQS 02:37:45.4708249 None Стратегия запущена. MQS 02:37:45.5138273 None Регистрация новой заявки на Buy с ценой 1960,96 и объе мом 100. MQS 02:37:45.5258280 None Заявка 9464627 на Buy отправлена с ценой 1960,96 объем ом 100. MQS 02:37:45.5658303 None Цена текущей 1960,96 и лучшей 1962,14. MQS 02:37:45.5668304 None Котирование заявки 9464627 на Buy с ценой 1960,96 объе мом 100. MQS 02:38:05.5819752 Error System.InvalidOperationException: В процессе снятия з аявки '634392958646557784' случился тайм-аут. в Ecng.Trading.Algo.TraderHelper.GuarantyCancelOrder(Order order, TimeSpan ti meOut) в Ecng.Trading.Algo.TraderHelper.GuarantyCancelOrder(Order order) в Ecng.Trading.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Func 1 getNewPrice, Func1 getNewVolume, Boolean isForts) в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess() в Ecng.Trading.Algo.Strategies.Strategy.#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPi v$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==() MQS 02:38:05.5839753 None Стратегия останавливается. MQS 02:38:05.6199773 None Стратегия остановлена. TS_01:00:01 02:38:25.6961256 None Стратегия останавливается. TS_01:00:01 02:38:25.6991258 None Стратегия остановлена.

непонятно откуда там может взяться тайм аут если TimeShiftStrategyManager используется

Спасибо:

morincer

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


Подтверждаю поведение, описанное roman'ом - использую TimeShiftStrategyManager, и создаю MarketQuotingStrategy для покупки - в результате:

: Регистрация новой заявки на Buy с ценой 35,4 и объемом 282. : Заявка 47030438 на Buy отправлена с ценой 35,4 объемом 282. : Цена текущей 35,4 и лучшей 36,1. : Котирование заявки 47030438 на Buy с ценой 35,4 объемом 282. System.InvalidOperationException: В процессе снятия заявки '634393334304375001' случился тайм-аут. в Ecng.Trading.Algo.TraderHelper.GuarantyCancelOrder(Order order, TimeSpan timeOut) в Ecng.Trading.Algo.TraderHelper.GuarantyCancelOrder(Order order) в Ecng.Trading.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Func1 getNewPrice, Func1 getNewVolume, Boolean isForts) в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess() в Ecng.Trading.Algo.Strategies.Strategy.#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()

Судя по всему, запуск котирования блокирует работу TimeShiftStrategyManager.

Спасибо:

pyhta4og

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


GuarantyCancelOrder не работает в случае теста на истории. В версии 3.1 метод помечен как устаревший, рекомендуется использовать ITrader.CancelOrder

В вашем случае - нужно обновиться до последней версии.

Спасибо:

roman

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


pyhta4og: GuarantyCancelOrder не работает в случае теста на истории. В версии 3.1 метод помечен как устаревший, рекомендуется использовать ITrader.CancelOrder

В вашем случае - нужно обновиться до последней версии.

  1. я использую последний релиз - т.е. 3.0.19
  2. я не использую GuarantyCancelOrder и вообще ничего кроме MarketQuotingStrategy в связке с TimeShiftStrategyManager
Спасибо:

morincer

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


roman, я начал использовать бету 3.1 - там все работает

Спасибо:

Виталий

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


Доброго дня! Подскажите пожалуйста, правильно ли я понимаю, что при работе MarketQuotingStrategy цена из заявки игнорируется, а работа ведется по стакану, на основе направления заявки и ее объема? Спасибо!

Спасибо:

roman

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


morincer: roman, я начал использовать бету 3.1 - там все работает ясно, я пока свою реализацию решил написать, заточенную под конкретную задачу;)

Спасибо:

roman

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


Виталий: Доброго дня! Подскажите пожалуйста, правильно ли я понимаю, что при работе MarketQuotingStrategy цена из заявки игнорируется, а работа ведется по стакану, на основе направления заявки и ее объема? Спасибо! да

Спасибо:


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

loading
clippy