Could you please check what could be the problem?
Thanks a lot!
#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.Windows.Forms; 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; using NinjaTrader.NinjaScript.Indicators; #endregion //This namespace holds Indicators in this folder and is required. Do not change it. namespace NinjaTrader.NinjaScript.Indicators { public class WAVEAlert1 : Indicator { private EMA ema20; private EMA ema50; private EMA ema200; [Range(1, int.MaxValue), NinjaScriptProperty] public int EMAPeriod1 { get; set; } [Range(1, int.MaxValue), NinjaScriptProperty] public int EMAPeriod2 { get; set; } [Range(1, int.MaxValue), NinjaScriptProperty] public int EMAPeriod3 { get; set; } protected override void OnStateChange() { if (State == State.SetDefaults) { Name = "Wave Alert 1"; EMAPeriod1 = 20; EMAPeriod2 = 50; EMAPeriod3 = 200; } ema20 = EMA(EMAPeriod1); ema50 = EMA(EMAPeriod2); ema200 = EMA(EMAPeriod3); Add(StochRsi(8,3,3)); } protected override void OnBarUpdate() { if(CurrentBar == Bars.Count -2 && ((ema20[0] < ema50[0] && stochRsi.Current[0] >= 0.8) || (ema20[0] > ema50[0] && stochRsi.Current[0] <= 0.2))) { Print("WAVE Alert on: " + Instrument.FullName + " at: " + Time[0]); Alert("WAVE Alert", Priority.High, "WAVE Alert", NinjaTrader.Core.Globals.InstallDir+@"\sounds\Alert3.wav", 20, Brushes.Khaki, Brushes.Black); System.Windows.Forms.MessageBox.Show("Get ready to make some MONEY! EMAs and Stoch RSI just did the WAVE! " + Instrument.FullName + " at " + Time[0].ToString("HH:mm")); } } } } #region NinjaScript generated code. Neither change nor remove. namespace NinjaTrader.NinjaScript.Indicators { public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase { private WAVEAlert1[] cacheWAVEAlert1; public WAVEAlert1 WAVEAlert1(int eMAPeriod1, int eMAPeriod2, int eMAPeriod3) { return WAVEAlert1(Input, eMAPeriod1, eMAPeriod2, eMAPeriod3); } public WAVEAlert1 WAVEAlert1(ISeries<double> input, int eMAPeriod1, int eMAPeriod2, int eMAPeriod3) { if (cacheWAVEAlert1 != null) for (int idx = 0; idx < cacheWAVEAlert1.Length; idx++) if (cacheWAVEAlert1[idx] != null && cacheWAVEAlert1[idx].EMAPeriod1 == eMAPeriod1 && cacheWAVEAlert1[idx].EMAPeriod2 == eMAPeriod2 && cacheWAVEAlert1[idx].EMAPeriod3 == eMAPeriod3 && cacheWAVEAlert1[idx].EqualsInput(input)) return cacheWAVEAlert1[idx]; return CacheIndicator<WAVEAlert1>(new WAVEAlert1(){ EMAPeriod1 = eMAPeriod1, EMAPeriod2 = eMAPeriod2, EMAPeriod3 = eMAPeriod3 }, input, ref cacheWAVEAlert1); } } } namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns { public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase { public Indicators.WAVEAlert1 WAVEAlert1(int eMAPeriod1, int eMAPeriod2, int eMAPeriod3) { return indicator.WAVEAlert1(Input, eMAPeriod1, eMAPeriod2, eMAPeriod3); } public Indicators.WAVEAlert1 WAVEAlert1(ISeries<double> input , int eMAPeriod1, int eMAPeriod2, int eMAPeriod3) { return indicator.WAVEAlert1(input, eMAPeriod1, eMAPeriod2, eMAPeriod3); } } } namespace NinjaTrader.NinjaScript.Strategies { public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase { public Indicators.WAVEAlert1 WAVEAlert1(int eMAPeriod1, int eMAPeriod2, int eMAPeriod3) { return indicator.WAVEAlert1(Input, eMAPeriod1, eMAPeriod2, eMAPeriod3); } public Indicators.WAVEAlert1 WAVEAlert1(ISeries<double> input , int eMAPeriod1, int eMAPeriod2, int eMAPeriod3) { return indicator.WAVEAlert1(input, eMAPeriod1, eMAPeriod2, eMAPeriod3); } } } #endregion
Comment