Решил разобраться со стратегиями на примере 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? как ее получить?
Комментарии (4)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Также происходит ошибка при попытке поставить заявку на покупку из SmaStrategy.cs обычным способом, а не через котирование: var direction = OrderDirections.Buy;
Ошибка такая: http://xmages.net/show.php/2070975_1-jpg.html
Захожу в смарттрейд - там есть эти отвергнутые заявки на покупку, а вместо цены стоит: LIMIT
Как все-таки поставить заявку?
TraderHelper.GetMarketPrice возвращает 0 в случае, если Security.BestBid/Ask.Price равны нулю... Изменения по инструменту поступают? RegisterSecurity был вызван?
Trade - это сделка по заявке, Order. Защищать нужно именно сделку, потому что она меняет позу, а не заявка... Получать сделку можно разными способами. Если используются стратегии, то Strategy.NewMyTrades.
Спасибо Михаил, разобрался с вашей помощью. RegisterSecurity забыл вызвать.