I've also attached a photo that has an example of similar incorrect behavior.The profit target for LongN1 was reached on the first bar after entry, and the price did not really dip below stop loss on the entry bar.
if (IsFirstTickOfBar == true && BarsInProgress == 1) { SetProfitTarget("LongN1", CalculationMode.Price, Bollinger1.Middle[1], false); SetProfitTarget("LongN2", CalculationMode.Price, Bollinger1.Upper[1], false); SetProfitTarget("ShortN1", CalculationMode.Price, Bollinger1.Middle[1], false); SetProfitTarget("ShortN2", CalculationMode.Price, Bollinger1.Lower[1], false); } if (IsFirstTickOfBar == true && BarsInProgress == 1)// && Position.MarketPosition == MarketPosition.Flat) { SetStopLoss("LongN1", CalculationMode.Price, Bollinger2.Lower[1], false); SetStopLoss("LongN2", CalculationMode.Price, Bollinger2.Lower[1], false); SetStopLoss("ShortN1", CalculationMode.Price, Bollinger2.Upper[1], false); SetStopLoss("ShortN2", CalculationMode.Price, Bollinger2.Upper[1], false); } if (IsFirstTickOfBar == true && BarsInProgress == 1 && Position.MarketPosition == MarketPosition.Long && BarsSinceEntryExecution(1, "LongN2", 0 ) > 0 && MAX(High, BarsSinceEntryExecution(1, "LongN2", 0 ))[1] > Bollinger1.Middle[1]) { SetStopLoss("LongN2", CalculationMode.Price, Bollinger1.Lower[1], false); } if (IsFirstTickOfBar == true && BarsInProgress == 1 && Position.MarketPosition == MarketPosition.Short && BarsSinceEntryExecution(1, "ShortN2", 0 ) > 0 && MIN(Low, BarsSinceEntryExecution(1, "ShortN2", 0 ))[1] < Bollinger1.Middle[1]) { SetStopLoss("ShortN2", CalculationMode.Price, Bollinger1.Upper[1], false); }
Comment