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

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


Странное дело... В 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


Tags:


Thanks:


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

Avatar
Date: 6/15/2012
Reply


Alexander Mukhanchikov: Положили, в транке лежит 4.1.2 Спасибо))

Thanks:

paveld

Avatar
Date: 6/17/2012
Reply


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

Thanks:

Alexander

Avatar
Date: 6/17/2012
Reply


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

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

Thanks:

paveld

Avatar
Date: 6/17/2012
Reply


Alexander Mukhanchikov: Какая именно ошибка? EmulationTrader.SecurityChanged вызывается? не срабатывают WhenLastTradePriceLess и WhenLastTradePriceMore EmulationTrader.SecuritiesChanged вызывается, значения в Security.LastTrade и Security.LastChangeTime изменяются

Thanks:

Alexander

Avatar
Date: 6/17/2012
Reply


paveld:

Alexander Mukhanchikov: Какая именно ошибка? EmulationTrader.SecurityChanged вызывается? не срабатывают WhenLastTradePriceLess и WhenLastTradePriceMore EmulationTrader.SecuritiesChanged вызывается, значения в Security.LastTrade и Security.LastChangeTime изменяются

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

Thanks:

paveld

Avatar
Date: 6/17/2012
Reply


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);

Thanks:

Alexander

Avatar
Date: 6/17/2012
Reply


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

Thanks:

paveld

Avatar
Date: 6/17/2012
Reply


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

Thanks:

Alexander

Avatar
Date: 6/17/2012
Reply


Это только при EmulationTrader?

Thanks:

Alexander

Avatar
Date: 6/17/2012
Reply


Приложите минимальный проект, на котором воспроизводится. Не получается воспроизвести.

Thanks:
< 1 2 3  >

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

loading
clippy