Add entry and exit threshold parameters to internal bar strength strategy

This commit is contained in:
moshferatu 2024-10-24 05:21:43 -07:00
parent c58b5e826c
commit 1ef352b424

View File

@ -1,6 +1,7 @@
#region Using declarations #region Using declarations
using NinjaTrader.Cbi; using NinjaTrader.Cbi;
using NinjaTrader.NinjaScript.Indicators; using NinjaTrader.NinjaScript.Indicators;
using System.ComponentModel.DataAnnotations;
#endregion #endregion
namespace NinjaTrader.NinjaScript.Strategies namespace NinjaTrader.NinjaScript.Strategies
@ -17,6 +18,9 @@ namespace NinjaTrader.NinjaScript.Strategies
Description = @"Long only bot which bases trades on internal bar strength"; Description = @"Long only bot which bases trades on internal bar strength";
Calculate = Calculate.OnBarClose; Calculate = Calculate.OnBarClose;
EntriesPerDirection = 1; EntriesPerDirection = 1;
EntryThreshold = 0.2;
ExitThreshold = 0.8;
} }
else if (State == State.DataLoaded) else if (State == State.DataLoaded)
{ {
@ -29,9 +33,9 @@ namespace NinjaTrader.NinjaScript.Strategies
if (CurrentBar < BarsRequiredToTrade) if (CurrentBar < BarsRequiredToTrade)
return; return;
if (ibs[0] < 0.2) if (ibs[0] < EntryThreshold)
EnterLong(); EnterLong();
else if (ibs[0] > 0.8 && Position.MarketPosition == MarketPosition.Long) else if (ibs[0] > ExitThreshold && Position.MarketPosition == MarketPosition.Long)
ExitLong(); ExitLong();
} }
@ -39,5 +43,13 @@ namespace NinjaTrader.NinjaScript.Strategies
{ {
get { return Name; } get { return Name; }
} }
[NinjaScriptProperty]
[Display(Name = "Entry Threshold", GroupName = "Internal Bar Strength Bot", Order = 1)]
public double EntryThreshold { get; set; }
[NinjaScriptProperty]
[Display(Name = "Exit Threshold", GroupName = "Internal Bar Strength Bot", Order = 2)]
public double ExitThreshold { get; set; }
} }
} }