From 2929db0ea09724a28867c8250236e7c40be2e768 Mon Sep 17 00:00:00 2001 From: Dominik Britz Date: Mon, 17 Jun 2024 09:27:56 -0400 Subject: [PATCH] Added supercharged macd --- .../SuperchargedMACD/Indicators/@Bollinger.cs | 162 ++++++++ .../SuperchargedMACD/Indicators/@EMA.cs | 128 ++++++ .../Indicators/@KeltnerChannel.cs | 170 ++++++++ .../SuperchargedMACD/Indicators/@MACD.cs | 199 ++++++++++ .../SuperchargedMACD/Indicators/@SMA.cs | 147 +++++++ .../SuperchargedMACD/Indicators/@SUM.cs | 117 ++++++ .../SuperchargedMACD/Indicators/@StdDev.cs | 141 +++++++ .../SuperchargedMACD/Indicators/@Vortex.cs | 151 ++++++++ .../Indicators/SuperchargedMACD.cs | 365 ++++++++++++++++++ Indicators/SuperchargedMACD/Info.xml | 7 + Indicators/SuperchargedMACD/README.MD | 13 + Indicators/SuperchargedMACD/screenshot.png | Bin 0 -> 155497 bytes 12 files changed, 1600 insertions(+) create mode 100644 Indicators/SuperchargedMACD/Indicators/@Bollinger.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@EMA.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@KeltnerChannel.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@MACD.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@SMA.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@SUM.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@StdDev.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/@Vortex.cs create mode 100644 Indicators/SuperchargedMACD/Indicators/SuperchargedMACD.cs create mode 100644 Indicators/SuperchargedMACD/Info.xml create mode 100644 Indicators/SuperchargedMACD/README.MD create mode 100644 Indicators/SuperchargedMACD/screenshot.png diff --git a/Indicators/SuperchargedMACD/Indicators/@Bollinger.cs b/Indicators/SuperchargedMACD/Indicators/@Bollinger.cs new file mode 100644 index 0000000..6971e90 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@Bollinger.cs @@ -0,0 +1,162 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// Bollinger Bands are plotted at standard deviation levels above and below a moving average. + /// Since standard deviation is a measure of volatility, the bands are self-adjusting: + /// widening during volatile markets and contracting during calmer periods. + /// + public class Bollinger : Indicator + { + private SMA sma; + private StdDev stdDev; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionBollinger; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameBollinger; + IsOverlay = true; + IsSuspendedWhileInactive = true; + NumStdDev = 2; + Period = 14; + + AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.BollingerUpperBand); + AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.BollingerMiddleBand); + AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.BollingerLowerBand); + } + else if (State == State.DataLoaded) + { + sma = SMA(Period); + stdDev = StdDev(Period); + } + } + + protected override void OnBarUpdate() + { + double sma0 = sma[0]; + double stdDev0 = stdDev[0]; + + Upper[0] = sma0 + NumStdDev * stdDev0; + Middle[0] = sma0; + Lower[0] = sma0 - NumStdDev * stdDev0; + } + + #region Properties + [Browsable(false)] + [XmlIgnore()] + public Series Lower + { + get { return Values[2]; } + } + + [Browsable(false)] + [XmlIgnore()] + public Series Middle + { + get { return Values[1]; } + } + + [Range(0, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "NumStdDev", GroupName = "NinjaScriptParameters", Order = 0)] + public double NumStdDev + { get; set; } + + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 1)] + public int Period + { get; set; } + + [Browsable(false)] + [XmlIgnore()] + public Series Upper + { + get { return Values[0]; } + } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private Bollinger[] cacheBollinger; + public Bollinger Bollinger(double numStdDev, int period) + { + return Bollinger(Input, numStdDev, period); + } + + public Bollinger Bollinger(ISeries input, double numStdDev, int period) + { + if (cacheBollinger != null) + for (int idx = 0; idx < cacheBollinger.Length; idx++) + if (cacheBollinger[idx] != null && cacheBollinger[idx].NumStdDev == numStdDev && cacheBollinger[idx].Period == period && cacheBollinger[idx].EqualsInput(input)) + return cacheBollinger[idx]; + return CacheIndicator(new Bollinger(){ NumStdDev = numStdDev, Period = period }, input, ref cacheBollinger); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.Bollinger Bollinger(double numStdDev, int period) + { + return indicator.Bollinger(Input, numStdDev, period); + } + + public Indicators.Bollinger Bollinger(ISeries input , double numStdDev, int period) + { + return indicator.Bollinger(input, numStdDev, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.Bollinger Bollinger(double numStdDev, int period) + { + return indicator.Bollinger(Input, numStdDev, period); + } + + public Indicators.Bollinger Bollinger(ISeries input , double numStdDev, int period) + { + return indicator.Bollinger(input, numStdDev, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@EMA.cs b/Indicators/SuperchargedMACD/Indicators/@EMA.cs new file mode 100644 index 0000000..9289382 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@EMA.cs @@ -0,0 +1,128 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// Exponential Moving Average. The Exponential Moving Average is an indicator that + /// shows the average value of a security's price over a period of time. When calculating + /// a moving average. The EMA applies more weight to recent prices than the SMA. + /// + public class EMA : Indicator + { + private double constant1; + private double constant2; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionEMA; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameEMA; + IsOverlay = true; + IsSuspendedWhileInactive = true; + Period = 14; + + AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameEMA); + } + else if (State == State.Configure) + { + constant1 = 2.0 / (1 + Period); + constant2 = 1 - (2.0 / (1 + Period)); + } + } + + protected override void OnBarUpdate() + { + Value[0] = (CurrentBar == 0 ? Input[0] : Input[0] * constant1 + constant2 * Value[1]); + } + + #region Properties + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 0)] + public int Period + { get; set; } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private EMA[] cacheEMA; + public EMA EMA(int period) + { + return EMA(Input, period); + } + + public EMA EMA(ISeries input, int period) + { + if (cacheEMA != null) + for (int idx = 0; idx < cacheEMA.Length; idx++) + if (cacheEMA[idx] != null && cacheEMA[idx].Period == period && cacheEMA[idx].EqualsInput(input)) + return cacheEMA[idx]; + return CacheIndicator(new EMA(){ Period = period }, input, ref cacheEMA); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.EMA EMA(int period) + { + return indicator.EMA(Input, period); + } + + public Indicators.EMA EMA(ISeries input , int period) + { + return indicator.EMA(input, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.EMA EMA(int period) + { + return indicator.EMA(Input, period); + } + + public Indicators.EMA EMA(ISeries input , int period) + { + return indicator.EMA(input, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@KeltnerChannel.cs b/Indicators/SuperchargedMACD/Indicators/@KeltnerChannel.cs new file mode 100644 index 0000000..f937caf --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@KeltnerChannel.cs @@ -0,0 +1,170 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// Keltner Channel. The Keltner Channel is a similar indicator to Bollinger Bands. + /// Here the midline is a standard moving average with the upper and lower bands offset + /// by the SMA of the difference between the high and low of the previous bars. + /// The offset multiplier as well as the SMA period is configurable. + /// + public class KeltnerChannel : Indicator + { + private Series diff; + private SMA smaDiff; + private SMA smaTypical; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionKeltnerChannel; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameKelterChannel; + Period = 10; + IsOverlay = true; + IsSuspendedWhileInactive = true; + OffsetMultiplier = 1.5; + + AddPlot(Brushes.DarkGray, NinjaTrader.Custom.Resource.KeltnerChannelMidline); + AddPlot(Brushes.DodgerBlue, NinjaTrader.Custom.Resource.NinjaScriptIndicatorUpper); + AddPlot(Brushes.DodgerBlue, NinjaTrader.Custom.Resource.NinjaScriptIndicatorLower); + } + else if (State == State.DataLoaded) + { + diff = new Series(this); + smaDiff = SMA(diff, Period); + smaTypical = SMA(Typical, Period); + } + } + + protected override void OnBarUpdate() + { + diff[0] = High[0] - Low[0]; + + double middle = smaTypical[0]; + double offset = smaDiff[0] * OffsetMultiplier; + + double upper = middle + offset; + double lower = middle - offset; + + Midline[0] = middle; + Upper[0] = upper; + Lower[0] = lower; + } + + #region Properties + [Browsable(false)] + [XmlIgnore()] + public Series Lower + { + get { return Values[2]; } + } + + [Browsable(false)] + [XmlIgnore()] + public Series Midline + { + get { return Values[0]; } + } + + [Range(0.01, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "OffsetMultiplier", GroupName = "NinjaScriptParameters", Order = 0)] + public double OffsetMultiplier + { get; set; } + + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 1)] + public int Period + { get; set; } + + [Browsable(false)] + [XmlIgnore()] + public Series Upper + { + get { return Values[1]; } + } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private KeltnerChannel[] cacheKeltnerChannel; + public KeltnerChannel KeltnerChannel(double offsetMultiplier, int period) + { + return KeltnerChannel(Input, offsetMultiplier, period); + } + + public KeltnerChannel KeltnerChannel(ISeries input, double offsetMultiplier, int period) + { + if (cacheKeltnerChannel != null) + for (int idx = 0; idx < cacheKeltnerChannel.Length; idx++) + if (cacheKeltnerChannel[idx] != null && cacheKeltnerChannel[idx].OffsetMultiplier == offsetMultiplier && cacheKeltnerChannel[idx].Period == period && cacheKeltnerChannel[idx].EqualsInput(input)) + return cacheKeltnerChannel[idx]; + return CacheIndicator(new KeltnerChannel(){ OffsetMultiplier = offsetMultiplier, Period = period }, input, ref cacheKeltnerChannel); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.KeltnerChannel KeltnerChannel(double offsetMultiplier, int period) + { + return indicator.KeltnerChannel(Input, offsetMultiplier, period); + } + + public Indicators.KeltnerChannel KeltnerChannel(ISeries input , double offsetMultiplier, int period) + { + return indicator.KeltnerChannel(input, offsetMultiplier, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.KeltnerChannel KeltnerChannel(double offsetMultiplier, int period) + { + return indicator.KeltnerChannel(Input, offsetMultiplier, period); + } + + public Indicators.KeltnerChannel KeltnerChannel(ISeries input , double offsetMultiplier, int period) + { + return indicator.KeltnerChannel(input, offsetMultiplier, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@MACD.cs b/Indicators/SuperchargedMACD/Indicators/@MACD.cs new file mode 100644 index 0000000..76ae058 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@MACD.cs @@ -0,0 +1,199 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator + /// that shows the relationship between two moving averages of prices. + /// + public class MACD : Indicator + { + private Series fastEma; + private Series slowEma; + private double constant1; + private double constant2; + private double constant3; + private double constant4; + private double constant5; + private double constant6; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = Custom.Resource.NinjaScriptIndicatorDescriptionMACD; + Name = Custom.Resource.NinjaScriptIndicatorNameMACD; + Fast = 12; + IsSuspendedWhileInactive = true; + Slow = 26; + Smooth = 9; + + AddPlot(Brushes.DarkCyan, Custom.Resource.NinjaScriptIndicatorNameMACD); + AddPlot(Brushes.Crimson, Custom.Resource.NinjaScriptIndicatorAvg); + AddPlot(new Stroke(Brushes.DodgerBlue, 2), PlotStyle.Bar, Custom.Resource.NinjaScriptIndicatorDiff); + AddLine(Brushes.DarkGray, 0, Custom.Resource.NinjaScriptIndicatorZeroLine); + } + else if (State == State.Configure) + { + constant1 = 2.0 / (1 + Fast); + constant2 = 1 - (2.0 / (1 + Fast)); + constant3 = 2.0 / (1 + Slow); + constant4 = 1 - (2.0 / (1 + Slow)); + constant5 = 2.0 / (1 + Smooth); + constant6 = 1 - (2.0 / (1 + Smooth)); + } + else if (State == State.DataLoaded) + { + fastEma = new Series(this); + slowEma = new Series(this); + } + } + + protected override void OnBarUpdate() + { + double input0 = Input[0]; + + if (CurrentBar == 0) + { + fastEma[0] = input0; + slowEma[0] = input0; + Value[0] = 0; + Avg[0] = 0; + Diff[0] = 0; + } + else + { + double fastEma0 = constant1 * input0 + constant2 * fastEma[1]; + double slowEma0 = constant3 * input0 + constant4 * slowEma[1]; + double macd = fastEma0 - slowEma0; + double macdAvg = constant5 * macd + constant6 * Avg[1]; + + fastEma[0] = fastEma0; + slowEma[0] = slowEma0; + Value[0] = macd; + Avg[0] = macdAvg; + Diff[0] = macd - macdAvg; + } + } + + #region Properties + [Browsable(false)] + [XmlIgnore] + public Series Avg + { + get { return Values[1]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series Default + { + get { return Values[0]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series Diff + { + get { return Values[2]; } + } + + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Fast", GroupName = "NinjaScriptParameters", Order = 0)] + public int Fast + { get; set; } + + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Slow", GroupName = "NinjaScriptParameters", Order = 1)] + public int Slow + { get; set; } + + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Smooth", GroupName = "NinjaScriptParameters", Order = 2)] + public int Smooth + { get; set; } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private MACD[] cacheMACD; + public MACD MACD(int fast, int slow, int smooth) + { + return MACD(Input, fast, slow, smooth); + } + + public MACD MACD(ISeries input, int fast, int slow, int smooth) + { + if (cacheMACD != null) + for (int idx = 0; idx < cacheMACD.Length; idx++) + if (cacheMACD[idx] != null && cacheMACD[idx].Fast == fast && cacheMACD[idx].Slow == slow && cacheMACD[idx].Smooth == smooth && cacheMACD[idx].EqualsInput(input)) + return cacheMACD[idx]; + return CacheIndicator(new MACD(){ Fast = fast, Slow = slow, Smooth = smooth }, input, ref cacheMACD); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.MACD MACD(int fast, int slow, int smooth) + { + return indicator.MACD(Input, fast, slow, smooth); + } + + public Indicators.MACD MACD(ISeries input , int fast, int slow, int smooth) + { + return indicator.MACD(input, fast, slow, smooth); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.MACD MACD(int fast, int slow, int smooth) + { + return indicator.MACD(Input, fast, slow, smooth); + } + + public Indicators.MACD MACD(ISeries input , int fast, int slow, int smooth) + { + return indicator.MACD(input, fast, slow, smooth); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@SMA.cs b/Indicators/SuperchargedMACD/Indicators/@SMA.cs new file mode 100644 index 0000000..de4f753 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@SMA.cs @@ -0,0 +1,147 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// The SMA (Simple Moving Average) is an indicator that shows the average value of a security's price over a period of time. + /// + public class SMA : Indicator + { + private double priorSum; + private double sum; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionSMA; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameSMA; + IsOverlay = true; + IsSuspendedWhileInactive = true; + Period = 14; + + AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameSMA); + } + else if (State == State.Configure) + { + priorSum = 0; + sum = 0; + } + } + + protected override void OnBarUpdate() + { + if (BarsArray[0].BarsType.IsRemoveLastBarSupported) + { + if (CurrentBar == 0) + Value[0] = Input[0]; + else + { + double last = Value[1] * Math.Min(CurrentBar, Period); + + if (CurrentBar >= Period) + Value[0] = (last + Input[0] - Input[Period]) / Math.Min(CurrentBar, Period); + else + Value[0] = ((last + Input[0]) / (Math.Min(CurrentBar, Period) + 1)); + } + } + else + { + if (IsFirstTickOfBar) + priorSum = sum; + + sum = priorSum + Input[0] - (CurrentBar >= Period ? Input[Period] : 0); + Value[0] = sum / (CurrentBar < Period ? CurrentBar + 1 : Period); + } + } + + #region Properties + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 0)] + public int Period + { get; set; } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private SMA[] cacheSMA; + public SMA SMA(int period) + { + return SMA(Input, period); + } + + public SMA SMA(ISeries input, int period) + { + if (cacheSMA != null) + for (int idx = 0; idx < cacheSMA.Length; idx++) + if (cacheSMA[idx] != null && cacheSMA[idx].Period == period && cacheSMA[idx].EqualsInput(input)) + return cacheSMA[idx]; + return CacheIndicator(new SMA(){ Period = period }, input, ref cacheSMA); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.SMA SMA(int period) + { + return indicator.SMA(Input, period); + } + + public Indicators.SMA SMA(ISeries input , int period) + { + return indicator.SMA(input, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.SMA SMA(int period) + { + return indicator.SMA(Input, period); + } + + public Indicators.SMA SMA(ISeries input , int period) + { + return indicator.SMA(input, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@SUM.cs b/Indicators/SuperchargedMACD/Indicators/@SUM.cs new file mode 100644 index 0000000..fe7afb1 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@SUM.cs @@ -0,0 +1,117 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// The Sum shows the summation of the last n data points. + /// + public class SUM : Indicator + { + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionSUM; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameSUM; + IsSuspendedWhileInactive = true; + Period = 14; + + AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameSUM); + } + } + + protected override void OnBarUpdate() + { + Value[0] = Input[0] + (CurrentBar > 0 ? Value[1] : 0) - (CurrentBar >= Period ? Input[Period] : 0); + } + + #region Properties + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 0)] + public int Period + { get; set; } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private SUM[] cacheSUM; + public SUM SUM(int period) + { + return SUM(Input, period); + } + + public SUM SUM(ISeries input, int period) + { + if (cacheSUM != null) + for (int idx = 0; idx < cacheSUM.Length; idx++) + if (cacheSUM[idx] != null && cacheSUM[idx].Period == period && cacheSUM[idx].EqualsInput(input)) + return cacheSUM[idx]; + return CacheIndicator(new SUM(){ Period = period }, input, ref cacheSUM); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.SUM SUM(int period) + { + return indicator.SUM(Input, period); + } + + public Indicators.SUM SUM(ISeries input , int period) + { + return indicator.SUM(input, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.SUM SUM(int period) + { + return indicator.SUM(Input, period); + } + + public Indicators.SUM SUM(ISeries input , int period) + { + return indicator.SUM(input, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@StdDev.cs b/Indicators/SuperchargedMACD/Indicators/@StdDev.cs new file mode 100644 index 0000000..0901638 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@StdDev.cs @@ -0,0 +1,141 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// Standard Deviation is a statistical measure of volatility. + /// Standard Deviation is typically used as a component of other indicators, + /// rather than as a stand-alone indicator. For example, Bollinger Bands are + /// calculated by adding a security's Standard Deviation to a moving average. + /// + public class StdDev : Indicator + { + private Series sumSeries; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionStdDev; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameStdDev; + IsOverlay = false; + IsSuspendedWhileInactive = true; + Period = 14; + + AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameStdDev); + } + else if (State == State.DataLoaded) + { + sumSeries = new Series(this, Period <= 256 ? MaximumBarsLookBack.TwoHundredFiftySix : MaximumBarsLookBack.Infinite); + } + } + + protected override void OnBarUpdate() + { + if (CurrentBar < 1) + { + Value[0] = 0; + sumSeries[0] = Input[0]; + } + else + { + sumSeries[0] = Input[0] + sumSeries[1] - (CurrentBar >= Period ? Input[Period] : 0); + double avg = sumSeries[0] / Math.Min(CurrentBar + 1, Period); + double sum = 0; + for (int barsBack = Math.Min(CurrentBar, Period - 1); barsBack >= 0; barsBack--) + sum += (Input[barsBack] - avg) * (Input[barsBack] - avg); + + Value[0] = Math.Sqrt(sum / Math.Min(CurrentBar + 1, Period)); + } + } + + #region Properties + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 0)] + public int Period + { get; set; } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private StdDev[] cacheStdDev; + public StdDev StdDev(int period) + { + return StdDev(Input, period); + } + + public StdDev StdDev(ISeries input, int period) + { + if (cacheStdDev != null) + for (int idx = 0; idx < cacheStdDev.Length; idx++) + if (cacheStdDev[idx] != null && cacheStdDev[idx].Period == period && cacheStdDev[idx].EqualsInput(input)) + return cacheStdDev[idx]; + return CacheIndicator(new StdDev(){ Period = period }, input, ref cacheStdDev); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.StdDev StdDev(int period) + { + return indicator.StdDev(Input, period); + } + + public Indicators.StdDev StdDev(ISeries input , int period) + { + return indicator.StdDev(input, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.StdDev StdDev(int period) + { + return indicator.StdDev(Input, period); + } + + public Indicators.StdDev StdDev(ISeries input , int period) + { + return indicator.StdDev(input, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/@Vortex.cs b/Indicators/SuperchargedMACD/Indicators/@Vortex.cs new file mode 100644 index 0000000..0e96e3e --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/@Vortex.cs @@ -0,0 +1,151 @@ +// +// Copyright (C) 2024, NinjaTrader LLC . +// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release. +// +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Gui.Tools; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +// This namespace holds indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + /// + /// The Vortex indicator is an oscillator used to identify trends. A bullish signal triggers when the VIPlus line crosses above the VIMinus line. A bearish signal triggers when the VIMinus line crosses above the VIPlus line. + /// + public class Vortex : Indicator + { + private Series vmPlus; + private Series vmMinus; + private Series trueRange; + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionVortex; + Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameVortex; + IsOverlay = false; + IsSuspendedWhileInactive = true; + Period = 14; + + AddPlot(Brushes.RoyalBlue, NinjaTrader.Custom.Resource.NinjaScriptIndicatorVIPlus); + AddPlot(Brushes.Red, NinjaTrader.Custom.Resource.NinjaScriptIndicatorVIMinus); + } + else if (State == State.DataLoaded) + { + vmPlus = new Series(this); + vmMinus = new Series(this); + trueRange = new Series(this); + } + } + + protected override void OnBarUpdate() + { + if (CurrentBar < 1) + return; + + vmPlus[0] = Math.Abs(High[0] - Low[1]); + vmMinus[0] = Math.Abs(Low[0] - High[1]); + trueRange[0] = Math.Max(Math.Max(Math.Abs(High[0] - Close[1]), Math.Abs(Low[0] - Close[1])), High[0]-Low[0]); + VIPlus[0] = SUM(vmPlus, Period)[0] / SUM(trueRange, Period)[0]; + VIMinus[0] = SUM(vmMinus, Period)[0] / SUM(trueRange, Period)[0]; + } + + #region Properties + [Range(1, int.MaxValue), NinjaScriptProperty] + [Display(ResourceType = typeof(Custom.Resource), Name = "Period", GroupName = "NinjaScriptParameters", Order = 0)] + public int Period + { get; set; } + + [Browsable(false)] + [XmlIgnore] + public Series VIPlus + { + get { return Values[0]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series VIMinus + { + get { return Values[1]; } + } + #endregion + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private Vortex[] cacheVortex; + public Vortex Vortex(int period) + { + return Vortex(Input, period); + } + + public Vortex Vortex(ISeries input, int period) + { + if (cacheVortex != null) + for (int idx = 0; idx < cacheVortex.Length; idx++) + if (cacheVortex[idx] != null && cacheVortex[idx].Period == period && cacheVortex[idx].EqualsInput(input)) + return cacheVortex[idx]; + return CacheIndicator(new Vortex(){ Period = period }, input, ref cacheVortex); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.Vortex Vortex(int period) + { + return indicator.Vortex(Input, period); + } + + public Indicators.Vortex Vortex(ISeries input , int period) + { + return indicator.Vortex(input, period); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.Vortex Vortex(int period) + { + return indicator.Vortex(Input, period); + } + + public Indicators.Vortex Vortex(ISeries input , int period) + { + return indicator.Vortex(input, period); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Indicators/SuperchargedMACD.cs b/Indicators/SuperchargedMACD/Indicators/SuperchargedMACD.cs new file mode 100644 index 0000000..c90bea0 --- /dev/null +++ b/Indicators/SuperchargedMACD/Indicators/SuperchargedMACD.cs @@ -0,0 +1,365 @@ +#region Using declarations +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Xml.Serialization; +using NinjaTrader.Cbi; +using NinjaTrader.Gui; +using NinjaTrader.Gui.Chart; +using NinjaTrader.Gui.SuperDom; +using NinjaTrader.Gui.Tools; +using NinjaTrader.Data; +using NinjaTrader.NinjaScript; +using NinjaTrader.Core.FloatingPoint; +using NinjaTrader.NinjaScript.DrawingTools; +#endregion + +//This namespace holds Indicators in this folder and is required. Do not change it. +namespace NinjaTrader.NinjaScript.Indicators +{ + public class SuperchargedMACD : Indicator + { + + #region Variables + private KeltnerChannel myKeltner; + private Bollinger myBollinger; + private Vortex myVortex; + #endregion + + #region Display Name + public override string DisplayName + { + get { return Name ;} + } + #endregion + + protected override void OnStateChange() + { + if (State == State.SetDefaults) + { + Description = @"Macd BB with squeeze"; + Name = "Supercharged MACD"; + Calculate = Calculate.OnBarClose; + IsOverlay = false; + DisplayInDataBox = true; + DrawOnPricePanel = false; + DrawHorizontalGridLines = false; + DrawVerticalGridLines = false; + PaintPriceMarkers = true; + ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right; + MaximumBarsLookBack = MaximumBarsLookBack.Infinite; + //Disable this property if your indicator requires custom values that cumulate with each new market data event. + //See Help Guide for additional information. + IsSuspendedWhileInactive = true; + + Fast = 12; + Slow = 26; + Smoothing = 5; + StDev = 1; + Period = 10; + BandFillColor = Brushes.LightSlateGray; + BandFillOpacity = 50; + UpColor = Brushes.Lime; + DwColor = Brushes.Red; + ColorBarsInBB = true; + BarColor = Brushes.White; + + ShowTransparentPlotsInDataBox = true; + AddPlot(new Stroke(Brushes.Blue, 3), PlotStyle.Dot, "Macd"); + AddPlot(Brushes.Silver, "BBUpper"); + AddPlot(Brushes.Silver, "BBMid"); + AddPlot(Brushes.Silver, "BBLower"); + AddPlot(Brushes.Transparent, "Signal"); + AddPlot(new Stroke(Brushes.White, 1), PlotStyle.Line, "Momentum"); + + } + else if (State == State.Configure) + { + myKeltner = KeltnerChannel(1.5, 20); // Reduce the multiplier to get less squeeze + myBollinger = Bollinger(2,20); + myVortex = Vortex(20); + } + } + + protected override void OnBarUpdate() + { + + if(CurrentBar < Slow) return; + + Draw.Region(this, "Fill_BB", CurrentBar, 0,BBLower, BBUpper, null, BandFillColor, BandFillOpacity,0); + Macd[0] = MACD(Input, Fast, Slow, Smoothing)[0]; + double Avg = EMA(Macd,Period)[0]; + double SDev = StdDev(Macd,Period)[0]; + double upperBand = Avg+(StDev*SDev); + double lowerBand = Avg-(StDev*SDev); + BBUpper[0] = upperBand; + BBLower[0] = lowerBand; + BBMid[0] = Avg; + + + + if (myBollinger.Upper[0] < myKeltner.Upper[0] && myBollinger.Lower[0] > myKeltner.Lower[0]) // Bollinger Bands inside Keltner Channel indicates a squeeze + { + Draw.Dot(this, "Squeeze" + CurrentBar, true, 0, 0, Brushes.Yellow, false); + } + else if (Macd[0] < BBLower[0] && Macd[1] >= BBLower[1]) // MACD crosses below the lower BB + { + Draw.ArrowDown(this, "ArrowDown" + CurrentBar, true, 0 , High[0] + TickSize * 2, Brushes.Red, true); + Values[4][0] = -1; // Set the signal plot to -1 + } + else if (Macd[0] > BBUpper[0] && Macd[1] <= BBUpper[1]) // MACD crosses below the lower BB + { + Draw.ArrowUp(this, "ArrowUp" + CurrentBar, true, 0, Low[0] - TickSize * 2, Brushes.Lime, true); + Values[4][0] = 1; // Set the signal plot to 1 + } + + + + if (Macd[0] > BBLower[0] && Macd[0] < BBUpper[0]) + { + PlotBrushes[0][0] = Brushes.White; + } + else if(IsRising(Macd)) + { + PlotBrushes[0][0] = UpColor; + } + else if(IsFalling(Macd)) + { + PlotBrushes[0][0] = DwColor; + } + + double viPositive = myVortex.VIPlus[0]; + double viNegative = myVortex.VIMinus[0]; + + Values[5][0] = 0; + if (viPositive > viNegative) + { + PlotBrushes[5][0] = UpColor; + } + else + { + PlotBrushes[5][0] = DwColor; + } + + if (ColorBarsInBB && Macd[0] >= BBLower[0] && Macd[0] <= BBUpper[0]) + { + BarBrush = BarColor; + } + + + + + } + + #region Properties + + + + [NinjaScriptProperty] + [Range(1, int.MaxValue)] + [Display(Name="Fast", Description="Number of bars for fast EMA", Order=1, GroupName="1. MACD")] + public int Fast + { get; set; } + + [NinjaScriptProperty] + [Range(1, int.MaxValue)] + [Display(Name="Slow", Description="Number of bars for slow EMA", Order=2, GroupName="1. MACD")] + public int Slow + { get; set; } + + [NinjaScriptProperty] + [Range(1, int.MaxValue)] + [Display(Name="Smoothing", Description="Number of bars for smoothing", Order=3, GroupName="1. MACD")] + public int Smoothing + { get; set; } + + + [NinjaScriptProperty] + [XmlIgnore] + [Display(Name="Rising Colour", Description="Default Colour for Rising MACD", Order=8, GroupName="1. MACD")] + public Brush UpColor + { get; set; } + + [Browsable(false)] + public string UpColorSerializable + { + get { return Serialize.BrushToString(UpColor); } + set { UpColor = Serialize.StringToBrush(value); } + } + + [NinjaScriptProperty] + [XmlIgnore] + [Display(Name="Falling Colour", Description="Default Colour for Falling MACD", Order=9, GroupName="1. MACD")] + public Brush DwColor + { get; set; } + + [Browsable(false)] + public string DwColorSerializable + { + get { return Serialize.BrushToString(DwColor); } + set { DwColor = Serialize.StringToBrush(value); } + } + + + + + [NinjaScriptProperty] + [Range(1, int.MaxValue)] + [Display(Name="StDev Factor", Description="Standard Deviation Factor", Order=1, GroupName="2. BB")] + public int StDev + { get; set; } + + [NinjaScriptProperty] + [Range(1, int.MaxValue)] + [Display(Name="StDev Period", Description="Period for StDev", Order=2, GroupName="2. BB")] + public int Period + { get; set; } + + [NinjaScriptProperty] + [Range(1, int.MaxValue)] + [Display(Name="Fill Opacity", Description="Fill Color Opacity.", Order=4, GroupName="2. BB")] + public int BandFillOpacity + { get; set; } + + [NinjaScriptProperty] + [XmlIgnore] + [Display(Name="Band Fill Color", Description="Default Colour to Fill Bollinger Bands", Order=3, GroupName="2. BB")] + public Brush BandFillColor + { get; set; } + + [Browsable(false)] + public string BandFillColorSerializable + { + get { return Serialize.BrushToString(BandFillColor); } + set { BandFillColor = Serialize.StringToBrush(value); } + } + + [NinjaScriptProperty] + [Display(Name="Color Bars in BB", Description="Color bars if they're inside the Bollinger Bands", Order=5, GroupName="2. BB")] + public bool ColorBarsInBB + { get; set; } + + [NinjaScriptProperty] + [XmlIgnore] + [Display(Name="Bar Color", Description="Bar color", Order=6, GroupName="2. BB")] + public Brush BarColor + { get; set; } + + [Browsable(false)] + public string BarColorSerializable + { + get { return Serialize.BrushToString(BarColor); } + set { BarColor = Serialize.StringToBrush(value); } + } + + + [Browsable(false)] + [XmlIgnore] + public Series Macd + { + get { return Values[0]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series BBUpper + { + get { return Values[1]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series BBMid + { + get { return Values[2]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series BBLower + { + get { return Values[3]; } + } + + + [Browsable(false)] + [XmlIgnore] + public Series Signal + { + get { return Values[4]; } + } + + [Browsable(false)] + [XmlIgnore] + public Series Momentum + { + get { return Values[5]; } + } + #endregion + + } +} + +#region NinjaScript generated code. Neither change nor remove. + +namespace NinjaTrader.NinjaScript.Indicators +{ + public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase + { + private SuperchargedMACD[] cacheSuperchargedMACD; + public SuperchargedMACD SuperchargedMACD(int fast, int slow, int smoothing, Brush upColor, Brush dwColor, int stDev, int period, int bandFillOpacity, Brush bandFillColor, bool colorBarsInBB, Brush barColor) + { + return SuperchargedMACD(Input, fast, slow, smoothing, upColor, dwColor, stDev, period, bandFillOpacity, bandFillColor, colorBarsInBB, barColor); + } + + public SuperchargedMACD SuperchargedMACD(ISeries input, int fast, int slow, int smoothing, Brush upColor, Brush dwColor, int stDev, int period, int bandFillOpacity, Brush bandFillColor, bool colorBarsInBB, Brush barColor) + { + if (cacheSuperchargedMACD != null) + for (int idx = 0; idx < cacheSuperchargedMACD.Length; idx++) + if (cacheSuperchargedMACD[idx] != null && cacheSuperchargedMACD[idx].Fast == fast && cacheSuperchargedMACD[idx].Slow == slow && cacheSuperchargedMACD[idx].Smoothing == smoothing && cacheSuperchargedMACD[idx].UpColor == upColor && cacheSuperchargedMACD[idx].DwColor == dwColor && cacheSuperchargedMACD[idx].StDev == stDev && cacheSuperchargedMACD[idx].Period == period && cacheSuperchargedMACD[idx].BandFillOpacity == bandFillOpacity && cacheSuperchargedMACD[idx].BandFillColor == bandFillColor && cacheSuperchargedMACD[idx].ColorBarsInBB == colorBarsInBB && cacheSuperchargedMACD[idx].BarColor == barColor && cacheSuperchargedMACD[idx].EqualsInput(input)) + return cacheSuperchargedMACD[idx]; + return CacheIndicator(new SuperchargedMACD(){ Fast = fast, Slow = slow, Smoothing = smoothing, UpColor = upColor, DwColor = dwColor, StDev = stDev, Period = period, BandFillOpacity = bandFillOpacity, BandFillColor = bandFillColor, ColorBarsInBB = colorBarsInBB, BarColor = barColor }, input, ref cacheSuperchargedMACD); + } + } +} + +namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns +{ + public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase + { + public Indicators.SuperchargedMACD SuperchargedMACD(int fast, int slow, int smoothing, Brush upColor, Brush dwColor, int stDev, int period, int bandFillOpacity, Brush bandFillColor, bool colorBarsInBB, Brush barColor) + { + return indicator.SuperchargedMACD(Input, fast, slow, smoothing, upColor, dwColor, stDev, period, bandFillOpacity, bandFillColor, colorBarsInBB, barColor); + } + + public Indicators.SuperchargedMACD SuperchargedMACD(ISeries input , int fast, int slow, int smoothing, Brush upColor, Brush dwColor, int stDev, int period, int bandFillOpacity, Brush bandFillColor, bool colorBarsInBB, Brush barColor) + { + return indicator.SuperchargedMACD(input, fast, slow, smoothing, upColor, dwColor, stDev, period, bandFillOpacity, bandFillColor, colorBarsInBB, barColor); + } + } +} + +namespace NinjaTrader.NinjaScript.Strategies +{ + public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase + { + public Indicators.SuperchargedMACD SuperchargedMACD(int fast, int slow, int smoothing, Brush upColor, Brush dwColor, int stDev, int period, int bandFillOpacity, Brush bandFillColor, bool colorBarsInBB, Brush barColor) + { + return indicator.SuperchargedMACD(Input, fast, slow, smoothing, upColor, dwColor, stDev, period, bandFillOpacity, bandFillColor, colorBarsInBB, barColor); + } + + public Indicators.SuperchargedMACD SuperchargedMACD(ISeries input , int fast, int slow, int smoothing, Brush upColor, Brush dwColor, int stDev, int period, int bandFillOpacity, Brush bandFillColor, bool colorBarsInBB, Brush barColor) + { + return indicator.SuperchargedMACD(input, fast, slow, smoothing, upColor, dwColor, stDev, period, bandFillOpacity, bandFillColor, colorBarsInBB, barColor); + } + } +} + +#endregion diff --git a/Indicators/SuperchargedMACD/Info.xml b/Indicators/SuperchargedMACD/Info.xml new file mode 100644 index 0000000..3351be2 --- /dev/null +++ b/Indicators/SuperchargedMACD/Info.xml @@ -0,0 +1,7 @@ + + + + 8.1.3.0 + None + + \ No newline at end of file diff --git a/Indicators/SuperchargedMACD/README.MD b/Indicators/SuperchargedMACD/README.MD new file mode 100644 index 0000000..7b33499 --- /dev/null +++ b/Indicators/SuperchargedMACD/README.MD @@ -0,0 +1,13 @@ +# Supercharged MACD + +Supercharged MACD with integrated bollinger bands and squeeze detection. + +![screenshot](screenshot.png) + +# Requirements +- NinjaTrader 8 + +# Installation +- Download the `SuperchargedMACD.zip` file +- In NinjaTrader go to `Tools -> Import -> NinjaScript Add-On` and select the downloaded ZIP file +- Right click on a chart, select `Indicators...` and find `SuperchargedMACD` in the list of indicators \ No newline at end of file diff --git a/Indicators/SuperchargedMACD/screenshot.png b/Indicators/SuperchargedMACD/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..de2f0442187f03d7290525dfccffd831c5f635ae GIT binary patch literal 155497 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�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