TakeProfitStrategy
Atom
23.11.2010
Alex2


Решил разобраться со стратегиями на примере SampleSmartSMA, а именно с TakeProfitStrategy и StopLossStrategy.

В доке написано(http://stocksharp.com/doc/help/html/63952fce-6e43-4427-985a-1654e8d9cfc1.htm):

// создаем пакетную стратегию из стратегий на тейк-профит и скользящего стоп-лосса var takeStop = new BatchStrategy(BatchFinishModes.First) ; takeStop.ChildStrategies.Add(new TakeProfitStrategy(order)); takeStop.ChildStrategies.Add(new StopLossStrategy(order) );

добавил этот код в SmaStrategy.cs - выдаются ошибки: TakeProfitStrategy не содержит конструктор, который принимает аргументы "1" то же самое и для StopLossStrategy

Как я понял, нужно вместо order передать trade - защищаемая позиция и priceDelta

На счет pricedelta - понятно вроде, а что такое trade? как ее получить?


Теги:


Спасибо:


Alex2

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


Также происходит ошибка при попытке поставить заявку на покупку из SmaStrategy.cs обычным способом, а не через котирование: var direction = OrderDirections.Buy;

			// создаем заявку
			var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction, MarketPriceTypes.Following), base.Volume);
			base.RegisterOrder(order);

Ошибка такая: http://xmages.net/show.php/2070975_1-jpg.html

Захожу в смарттрейд - там есть эти отвергнутые заявки на покупку, а вместо цены стоит: LIMIT

Как все-таки поставить заявку?

Спасибо:

Mikhail Sukhov

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


Alex2: На счет pricedelta - понятно вроде, а что такое trade? как ее получить?

Trade - это сделка по заявке, Order. Защищать нужно именно сделку, потому что она меняет позу, а не заявка... Получать сделку можно разными способами. Если используются стратегии, то Strategy.NewMyTrades.

Спасибо:

Mikhail Sukhov

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


Alex2: Также происходит ошибка при попытке поставить заявку на покупку из SmaStrategy.cs обычным способом, а не через котирование: var direction = OrderDirections.Buy;

  		// создаем заявку
  		var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction, MarketPriceTypes.Following), base.Volume);
  		base.RegisterOrder(order);

Ошибка такая: http://xmages.net/show.php/2070975_1-jpg.html

Захожу в смарттрейд - там есть эти отвергнутые заявки на покупку, а вместо цены стоит: LIMIT

Как все-таки поставить заявку?

TraderHelper.GetMarketPrice возвращает 0 в случае, если Security.BestBid/Ask.Price равны нулю... Изменения по инструменту поступают? RegisterSecurity был вызван?

Спасибо:

Alex2

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


Спасибо Михаил, разобрался с вашей помощью. RegisterSecurity забыл вызвать.

Спасибо:


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

loading
clippy