Не срабатывает правило WhenBestAskPriceLess
Atom
29.05.2012


Странное дело... В 4.0.23 версии отлично срабатывали правила. Поставил последнюю версию с dev-ветки, изменил лишь с this.When(this.Security.BestAskPriceLess()) на this.Security.WhenBestAskPriceLess(). Стало примерно так:
Код
StrategyRule<Security> _opRule;
Unit _opPriceUnit = new Unit() { Type = UnitTypes.Limit };
......
_opPriceUnit.Value = this.Security.ShrinkPrice(_indicator.LastValue);
_opRule = this.Security.WhenBestAskPriceLess(_opPriceUnit).Do(() => 
{                         
    MQStrategy = new MarketQuotingStrategy(OrderDirections.Buy, this.Volume) 
                { PriceType = MarketPriceTypes.Following };
    this.ChildStrategies.Add(MQStrategy);
}).Once().Apply(this);

Теперь правила перестали срабатывать на тех же периодах: Цена срабатывания правила равна Unit = 100,98, Low опустился ниже, но покупки не произошло. Бумага Сбер обычка, сред маленький
Цитата:
MarketTime:2012.03.02 12:40:00, позиция = 0, Unit = 100,98, H = 101,45, L = 101,20
MarketTime:2012.03.02 12:50:00, позиция = 0, Unit = 100,98, H = 101,27, L = 100,83
MarketTime:2012.03.02 13:00:01, позиция = 0, Unit = 100,98, H = 100,97, L = 100,76
MarketTime:2012.03.02 13:10:03, позиция = 0, Unit = 100,98, H = 100,98, L = 100,79
MarketTime:2012.03.02 13:20:00, позиция = 0, Unit = 100,98, H = 101,03, L = 100,91
MarketTime:2012.03.02 13:30:04, позиция = 0, Unit = 100,98, H = 101,02, L = 100,93


Теги:


Спасибо:


< 1 2 3  >
Кот Матроскин

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


Alexander Mukhanchikov Перейти
Положили, в транке лежит 4.1.2

Спасибо))
Спасибо:

paveld

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


Взял dll с кодеплекс stocksharp-17807.zip из trunk, но ошибка осталась
используется EmulationTrader
Спасибо:

Alexander

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


paveld Перейти
Взял dll с кодеплекс stocksharp-17807.zip из trunk, но ошибка осталась
используется EmulationTrader


Какая именно ошибка? EmulationTrader.SecurityChanged вызывается?
Спасибо:

paveld

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


Alexander Mukhanchikov Перейти

Какая именно ошибка? EmulationTrader.SecurityChanged вызывается?

не срабатывают WhenLastTradePriceLess и WhenLastTradePriceMore
EmulationTrader.SecuritiesChanged вызывается, значения в Security.LastTrade и Security.LastChangeTime изменяются
Спасибо:

Alexander

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


paveld Перейти
Alexander Mukhanchikov Перейти

Какая именно ошибка? EmulationTrader.SecurityChanged вызывается?

не срабатывают WhenLastTradePriceLess и WhenLastTradePriceMore
EmulationTrader.SecuritiesChanged вызывается, значения в Security.LastTrade и Security.LastChangeTime изменяются


Тогда приведите лог - с изменением Security.Trader.SecuritiesChanged - с выводом LastTrade и с созданием правила.
Спасибо:

paveld

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


Alexander Mukhanchikov Перейти

Тогда приведите лог - с изменением Security.Trader.SecuritiesChanged - с выводом LastTrade и с созданием правила.


лог:
Цитата:

14:50:00.000 | | TS_RIM2@RTS_tst | Создано новое правило WhenLastTradePriceMore по цене 153215
14:50:00.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:00 153235.00000 2, LastChangeTime=23.04.2012 14:50:00
14:50:01.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:01 153205.00000 1, LastChangeTime=23.04.2012 14:50:01
14:50:02.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:02 153210.00000 1, LastChangeTime=23.04.2012 14:50:02
14:50:03.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:03 153225.00000 3, LastChangeTime=23.04.2012 14:50:03
14:50:04.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:04 153230.00000 1, LastChangeTime=23.04.2012 14:50:04
14:50:05.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:05 153215.00000 1, LastChangeTime=23.04.2012 14:50:05
14:50:06.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:06 153215.00000 2, LastChangeTime=23.04.2012 14:50:06
14:50:07.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:07 153210.00000 1, LastChangeTime=23.04.2012 14:50:07
14:50:08.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:08 153150.00000 1, LastChangeTime=23.04.2012 14:50:08
14:50:09.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:09 153155.00000 1, LastChangeTime=23.04.2012 14:50:09
14:50:10.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:10 153145.00000 2, LastChangeTime=23.04.2012 14:50:10
14:50:11.000 | | TS_RIM2@RTS_tst | LastTrade=23.04.2012 14:50:11 153160.00000 3, LastChangeTime=23.04.2012 14:50:11

Видно что в момент создания правила цена уже выше 153215 => правило должно исполниться было сразу после создания

подписываюсь на правило так:
Код

        exInfo.ActivateOrderRule = Security.WhenLastTradePriceMore(ActivatePrice)
          .Do(trade => ActivateOrder(trade, order)).Once().Apply(this);
Спасибо:

Alexander

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


ActivatePrice - это что?
Попробуйте передавать new Unit(153215, UnitTypes.Limit)
Спасибо:

paveld

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


Alexander Mukhanchikov Перейти
ActivatePrice - это что?
Попробуйте передавать new Unit(153215, UnitTypes.Limit)

ActivatePrice это и есть new Unit(153215, UnitTypes.Limit)
Спасибо:

Alexander

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


Это только при EmulationTrader?
Спасибо:

Alexander

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


Приложите минимальный проект, на котором воспроизводится. Не получается воспроизвести.
Спасибо:
< 1 2 3  >

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

loading
clippy