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

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


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

Avatar
Date: 6/17/2012
Reply


Действительно в коде в одном месте для ActivatePrice присваивалось значение decimal, из-за этого и не срабатывало правило. Поправил на Unit и все заработало
Thanks:

Кот Матроскин

Avatar
Date: 6/18/2012
Reply


Взял папку trunk\References из stocksharp-17830
В указанном выше примере все еще не срабатывает правило
Quote:
Security.WhenBestAskPriceLess(_Unit)

SecurityChanged вызывается, судя по LastChangeTime и LastTrade, каждую секунду
Thanks:

Кот Матроскин

Avatar
Date: 6/21/2012
Reply


Так будет починка правила или нет?
Thanks:

Alexander

Avatar
Date: 6/22/2012
Reply


Кот Матроскин
Взял папку trunk\References из stocksharp-17830
В указанном выше примере все еще не срабатывает правило
Quote:
Security.WhenBestAskPriceLess(_Unit)

SecurityChanged вызывается, судя по LastChangeTime и LastTrade, каждую секунду


Проверил с WhenLastTradePriceMore - всё работает.

Вы говорите о правиле WhenBestAskPriceLess - здесь надо смотреть не LastTrade, а BestAsk

Смотрите на событие Security.Trader.SecuritiesChanged и за изменением security.BestAsk.
Скиньте лог изменений и правила с конкретным числом как вы создаёте.
Thanks:

Кот Матроскин

Avatar
Date: 6/22/2012
Reply


Alexander Mukhanchikov

Вы говорите о правиле WhenBestAskPriceLess - здесь надо смотреть не LastTrade, а BestAsk
Смотрите на событие Security.Trader.SecuritiesChanged и за изменением security.BestAsk.
Скиньте лог изменений и правила с конкретным числом как вы создаёте.

Про BestAsk и BestBid уже писал на днях, что вылетает NullReferenceException.
На счет того, как создаю. Беру SampleHistoryTesting и в ProcessCandle добавляю правило:

Code
private void ProcessCandle(Candle candle) 
{
	if (ProcessState == ProcessStates.Stopping) 
	{
		CancelActiveOrders();
		return;
	}
	LongSma.Process((DecimalIndicatorValue)candle.ClosePrice);
	ShortSma.Process((DecimalIndicatorValue)candle.ClosePrice);
	var isShortLessThenLong = ShortSma.LastValue < LongSma.LastValue;
	if (_isShortLessThenLong != isShortLessThenLong) 
	{
		var direction = isShortLessThenLong ? OrderDirections.Sell : OrderDirections.Buy;
		var strategy = new MarketQuotingStrategy(direction, Volume);
		ChildStrategies.Add(strategy);
		_isShortLessThenLong = isShortLessThenLong;
	}

	Unit _opPriceUnit = new Unit(Security.LastTrade.Price - 0.2m, UnitTypes.Limit);
	this.Security.WhenBestAskPriceLess(_opPriceUnit).Do(() => 
	{   
	MessageBox.Show("Меньше " + _opPriceUnit.Value);
	}).Once().Apply(this);
}

Thanks:

Alexander

Avatar
Date: 6/22/2012
Reply


Проблемы с правилами значит нет. Как Михаил (pyhta4og) вернётся с отдыха, посмотрит на ту проблему.
Thanks:
< 1 2 3 

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

loading
clippy