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