Не срабатывает правило 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 
paveld

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


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

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

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


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

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

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

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


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

Alexander

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


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

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


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

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

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

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

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


Alexander Mukhanchikov Перейти

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

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

Код
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);
}

Спасибо:

Alexander

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


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

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

loading
clippy