← Zurück

TakeProfitStrategy - Объем заявки не может быть нулевым.

Версия 3.2. При срабатывании сигнала запускается действие


        private void Action1()
        {
            var order = _signalDirection == OrderDirections.Buy ? base.BuyAt(Security.LastTrade.Price) : base.SellAt(Security.LastTrade.Price);
            var qstr = new MyMarketQuotingStrategy(order, 0m.Pips(order.Security), 0m.Pips(order.Security)) { PriceType = MarketPriceTypes.Middle, MaxErrorCount = 2 };
            base.ChildStrategies.Add(qstr);
            SecureTrades(qstr);
        }
        private void SecureTrades(Strategy str)
        {
            str.NewMyTrades += trades =>
                {
                    // создаем пакетную стратегию, которая будет объединять все защитные пары стратегий по каждой из пришедших по родительской стратегии сделок
                    var batch = new BatchStrategy(BatchFinishModes.All);

                    // для каждой сделки добавляем для защиты по пакетной стратегии
					foreach (var t in trades)
					{
						var s = new BatchStrategy(BatchFinishModes.First);

						// выставляет тейк-профит в пунктах
						var takeProfit = new MyTakeProfitStrategy(t, TakeProfit);
						takeProfit.BestPriceOffset = 0m.Pips(t.Order.Security);
						takeProfit.PriceOffset = 0m.Pips(t.Order.Security);
						takeProfit.MaxErrorCount = 2;
						takeProfit.UseMarketQuoting = true;


						// выставляет стоп-лосс в пунктах
						var stopLoss = new MyStopLossStrategy(t, StopLoss);
						stopLoss.BestPriceOffset = 0m.Pips(t.Order.Security);
						stopLoss.PriceOffset = 0m.Pips(t.Order.Security);
						stopLoss.MaxErrorCount = 2;
						stopLoss.UseMarketQuoting = true;

						s.ChildStrategies.Add(takeProfit);
						s.ChildStrategies.Add(stopLoss);
						batch.ChildStrategies.Add(s);
					}

                    base.ChildStrategies.Add(batch);
                };
        }

В результате получаю следующий лог:


VDS 15.06.2011 23:18:19 Стратегия запущена.
VDS 15.06.2011 23:20:01 [MMQS] Стратегия запущена.
VDS 15.06.2011 23:20:01 [MMQS] Регистрация новой заявки на Buy с ценой 9763 и объемом 1.
VDS 15.06.2011 23:20:01 [MMQS] Заявка 83837918 на Buy отправлена с ценой 9763 объемом 1.
VDS 15.06.2011 23:20:17 [MMQS] Позиция изменилась на 1.
VDS 15.06.2011 23:20:17 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 15.06.2011 23:20:17 [MMQS] Стратегия останавливается.
VDS 15.06.2011 23:20:17 [MMQS] Стратегия остановлена.
VDS 15.06.2011 23:21:02 [MMQS] Стратегия запущена.
VDS 15.06.2011 23:21:09 [MMQS] Регистрация новой заявки на Buy с ценой 9763 и объемом 1.
VDS 15.06.2011 23:21:11 [MMQS] Заявка 83837919 на Buy отправлена с ценой 9763 объемом 1.
VDS 15.06.2011 23:21:11 [MMQS] Позиция изменилась на 1.
VDS 15.06.2011 23:21:11 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 15.06.2011 23:21:11 [MMQS] Стратегия останавливается.
VDS 15.06.2011 23:21:11 [BS] Стратегия запущена.
VDS 15.06.2011 23:21:11 [MMQS] Стратегия остановлена.
VDS 15.06.2011 23:21:11 [BS] [BS] Стратегия запущена.
VDS 15.06.2011 23:21:17 [BS] [BS] [MTPS] Стратегия запущена.
VDS 15.06.2011 23:21:17 [BS] [BS] [MTPS] Цена текущей 1 и лучшей 9783.
VDS 15.06.2011 23:21:17 [BS] [BS] [MTPS] Котирование заявки 0 на Sell с ценой 1 объемом 0.
VDS 15.06.2011 23:21:19 [BS] [BS] [MSLS] Стратегия запущена.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] System.ArgumentException: Объем заявки не может быть нулевым.
Parameter name: order
   at StockSharp.Algo.TraderHelper.#=qLXaN0algzgDBsw6fL5g3xaIlhhTYVQnmzcQDJXxFOrU=(Order #=qWXq3jB6jTZ2iF22oDzWvHw==)
   at StockSharp.Algo.TraderHelper.#=qDFpU1YoTr3fblYauaHBvMg==(Order #=q1610m$u1mmPjgA6udOcZdQ==)
   at StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)
   at StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)
   at StockSharp.Algo.Strategies.QuotingStrategy.#=qMEPRc8S0wl31v01gtQybow==()
   at StockSharp.Algo.Strategies.QuotingStrategy.#=qrUj$Ns0mMAxxqh0k0FFJLBiPs_ZjpLzGs4nD7HMEB2Y=.#=qT87pKfV2SNITwCrVPXClEg==()
   at StockSharp.Algo.Strategies.StrategyRule.#=qDYUeDT$gBHBaiAb$fAwEix6EMBQFWfxRkrpaRMiTmvs=()
   at StockSharp.Algo.Strategies.Strategy.#=qOhBmTMx_CuyhB9VHemT_UQ==(StrategyRule #=qInhSYRIpOjVVx7xao$LOvA==, Action #=qIIVK4c4QTCW6iU5TC2n_LA==)
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] Цена текущей 1 и лучшей 9783.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] Котирование заявки 0 на Sell с ценой 1 объемом 0.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] System.ArgumentException: Объем заявки не может быть нулевым.
Parameter name: order
   at StockSharp.Algo.TraderHelper.#=qLXaN0algzgDBsw6fL5g3xaIlhhTYVQnmzcQDJXxFOrU=(Order #=qWXq3jB6jTZ2iF22oDzWvHw==)
   at StockSharp.Algo.TraderHelper.#=qDFpU1YoTr3fblYauaHBvMg==(Order #=q1610m$u1mmPjgA6udOcZdQ==)
   at StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)
   at StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)
   at StockSharp.Algo.Strategies.QuotingStrategy.#=qMEPRc8S0wl31v01gtQybow==()
   at StockSharp.Algo.Strategies.QuotingStrategy.#=qrUj$Ns0mMAxxqh0k0FFJLBiPs_ZjpLzGs4nD7HMEB2Y=.#=qT87pKfV2SNITwCrVPXClEg==()
   at StockSharp.Algo.Strategies.StrategyRule.#=qDYUeDT$gBHBaiAb$fAwEix6EMBQFWfxRkrpaRMiTmvs=()
   at StockSharp.Algo.Strategies.Strategy.#=qOhBmTMx_CuyhB9VHemT_UQ==(StrategyRule #=qInhSYRIpOjVVx7xao$LOvA==, Action #=qIIVK4c4QTCW6iU5TC2n_LA==)
VDS 15.06.2011 23:21:19 [BS] [BS] Стратегия останавливается.
VDS 15.06.2011 23:21:19 [BS] [BS] [MSLS] Стратегия останавливается.
VDS 15.06.2011 23:21:19 [BS] [BS] Стратегия остановлена.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] Стратегия остановлена.
VDS 15.06.2011 23:21:19 [BS] [BS] [MSLS] Стратегия остановлена.

Баг или я что-то делаю не так?

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

InsiderHSE: Баг или я что-то делаю не так?

Бага, поправлю в 3.2.1

InsiderHSE
InsiderHSE Autor

Mikhail Sukhov:

InsiderHSE: Баг или я что-то делаю не так?

Бага, поправлю в 3.2.1 Спасибо. А когда ориентировочно можно ждать релиз?

Alexander
Alexander

InsiderHSE:

Mikhail Sukhov:

InsiderHSE: Баг или я что-то делаю не так?

Бага, поправлю в 3.2.1 Спасибо. А когда ориентировочно можно ждать релиз?

4 часа назад :)