MarketQuotingStrategy
Atom Ответить
17.03.2011


Не до конца понимаю как работает MarketQuotingStrategy
  1. PriceDelta,PriceExchange - какие значения туда нужно подставлять и на что они влияют.
  2. Можно ли использовать эту стратегию для покупки. Вроде как можно, но
    a) в комментах у нее стоит "Продать по рыночной цене"
    b) Несколько раз запускал эту стратегию и всегда она заканчивала свою работу продажей, хотя я ее для покупки использовал:

Код:
Код
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

Теги:


Спасибо:




10 Ответов
Greene-nsk

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


1. https://stocksharp.ru/do...bc-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

Фотография
Дата: 24.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, Func`1 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 для покупки - в результате:

{MSQ} : Регистрация новой заявки на Buy с ценой 35,4 и объемом 282.
{MSQ} : Заявка 47030438 на Buy отправлена с ценой 35,4 объемом 282.
{MSQ} : Цена текущей 35,4 и лучшей 36,1.
{MSQ} : Котирование заявки 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, Func`1 getNewPrice, Func`1 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