TakeProfitStrategy
Atom
11/23/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? как ее получить?


Tags:


Thanks:


Alex2

Avatar
Date: 11/23/2010
Reply


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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 11/23/2010
Reply


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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 11/23/2010
Reply


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 был вызван?

Thanks:

Alex2

Avatar
Date: 11/24/2010
Reply


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

Thanks:


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

loading
clippy