I am trying to code an autobreaven stop using SetStopLoss() method but it doesnt work.
Any idea whats wrong with this code?
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = NinjaTrader.Custom.Resource.NinjaScriptStrategyDescriptionSampleMACrossOver;
Name = "AAAAAAAATEST";
Calculate = Calculate.OnBarClose;
EntriesPerDirection = 2;
EntryHandling = EntryHandling.AllEntries;
IsExitOnSessionCloseStrategy = true;
ExitOnSessionCloseSeconds = 30;
IsFillLimitOnTouch = false;
MaximumBarsLookBack = MaximumBarsLookBack.TwoHundredFiftySix;
OrderFillResolution = OrderFillResolution.Standard;
Slippage = 0;
StartBehavior = StartBehavior.WaitUntilFlat;
TimeInForce = TimeInForce.Gtc;
TraceOrders = false;
RealtimeErrorHandling = RealtimeErrorHandling.StopCancelClose;
StopTargetHandling = StopTargetHandling.PerEntryExecution;
BarsRequiredToTrade = 20;
IsInstantiatedOnEachOptimizationIteration = false;
}
else if (State == State.DataLoaded)
{
}
else if (State == State.Configure)
{
SetProfitTarget("entry1", CalculationMode.Ticks, 10);
SetStopLoss("entry1", CalculationMode.Ticks, 10, false);
}
}
protected override void OnBarUpdate()
{
if (CurrentBar < BarsRequiredToTrade)
return;
if (IsFirstTickOfBar && Position.MarketPosition == MarketPosition.Flat)
{
EnterLongLimit(1,Close[0],"entry1");
}
if (Position.MarketPosition == MarketPosition.Long && High[0]>= Position.AveragePrice+5*TickSize)
{
SetStopLoss("entry1", CalculationMode.Price, Position.AveragePrice,false);
Draw.Dot(this, "tag1"+CurrentBar, true, 0, Low[0] - 1*TickSize, Brushes.Red);
}
}

Comment