Решил разобраться со стратегиями на примере 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? как ее получить?
Comentários (4)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Также происходит ошибка при попытке поставить заявку на покупку из 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 забыл вызвать.