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

Не срабатывает правило WhenBestAskPriceLess
Atom
5/29/2012


Странное дело... В 4.0.23 версии отлично срабатывали правила. Поставил последнюю версию с dev-ветки, изменил лишь с this.When(this.Security.BestAskPriceLess()) на this.Security.WhenBestAskPriceLess(). Стало примерно так:
Code
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 опустился ниже, но покупки не произошло. Бумага Сбер обычка, сред маленький
Quote:
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 Go to
Положили, в транке лежит 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 Go to
Взял dll с кодеплекс stocksharp-17807.zip из trunk, но ошибка осталась
используется EmulationTrader


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

paveld

Avatar
Date: 6/17/2012
Reply


Alexander Mukhanchikov Go to

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

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

Alexander

Avatar
Date: 6/17/2012
Reply


paveld Go to
Alexander Mukhanchikov Go to

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

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


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

paveld

Avatar
Date: 6/17/2012
Reply


Alexander Mukhanchikov Go to

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


лог:
Quote:

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 => правило должно исполниться было сразу после создания

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

        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 Go to
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