From 1ef352b4245dc084e441c384fc326ccc75327c53 Mon Sep 17 00:00:00 2001 From: moshferatu Date: Thu, 24 Oct 2024 05:21:43 -0700 Subject: [PATCH] Add entry and exit threshold parameters to internal bar strength strategy --- .../InternalBarStrengthBot.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/strategies/internal-bar-strength/InternalBarStrengthBot.cs b/strategies/internal-bar-strength/InternalBarStrengthBot.cs index 9d9ff04..f96b369 100644 --- a/strategies/internal-bar-strength/InternalBarStrengthBot.cs +++ b/strategies/internal-bar-strength/InternalBarStrengthBot.cs @@ -1,6 +1,7 @@ #region Using declarations using NinjaTrader.Cbi; using NinjaTrader.NinjaScript.Indicators; +using System.ComponentModel.DataAnnotations; #endregion namespace NinjaTrader.NinjaScript.Strategies @@ -17,6 +18,9 @@ namespace NinjaTrader.NinjaScript.Strategies Description = @"Long only bot which bases trades on internal bar strength"; Calculate = Calculate.OnBarClose; EntriesPerDirection = 1; + + EntryThreshold = 0.2; + ExitThreshold = 0.8; } else if (State == State.DataLoaded) { @@ -29,9 +33,9 @@ namespace NinjaTrader.NinjaScript.Strategies if (CurrentBar < BarsRequiredToTrade) return; - if (ibs[0] < 0.2) + if (ibs[0] < EntryThreshold) EnterLong(); - else if (ibs[0] > 0.8 && Position.MarketPosition == MarketPosition.Long) + else if (ibs[0] > ExitThreshold && Position.MarketPosition == MarketPosition.Long) ExitLong(); } @@ -39,5 +43,13 @@ namespace NinjaTrader.NinjaScript.Strategies { 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; } } }