protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionRSS; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameRSS; IsSuspendedWhileInactive = true; EMA1 = 10; EMA2 = 40; Length = 5; AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameRSS); AddLine(Brushes.DarkGray, 20, NinjaTrader.Custom.Resource.NinjaScriptIndicatorLower); AddLine(Brushes.DarkGray, 80, NinjaTrader.Custom.Resource.NinjaScriptIndicatorUpper); } else if (State == State.DataLoaded) { spread = new Series <double>(this); rs = new Series <double>(this); ema1 = EMA(EMA1); ema2 = EMA(EMA2); rsi = RSI(spread, Length, 1); sma = SMA(rs, 5); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @"Enter the description for your new custom Indicator here."; Name = "CompositeIndex"; Calculate = Calculate.OnBarClose; IsOverlay = false; DisplayInDataBox = true; DrawOnPricePanel = true; DrawHorizontalGridLines = true; DrawVerticalGridLines = true; PaintPriceMarkers = true; ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right; BarsRequiredToPlot = 20; //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; RsiLength = 14; RsiMomLength = 9; RsiMaLength = 3; MaLength = 3; AddPlot(Brushes.Red, "S"); } else if (State == State.DataLoaded) { rsi = RSI(RsiLength, 3); shortRsi = RSI(RsiMaLength, MaLength); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionStochRSI; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameStochRSI; IsSuspendedWhileInactive = true; IsOverlay = false; Period = 14; AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameStochRSI); AddLine(Brushes.Crimson, 0.8, NinjaTrader.Custom.Resource.NinjaScriptIndicatorOverbought); AddLine(Brushes.DodgerBlue, 0.5, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNeutral); AddLine(Brushes.Crimson, 0.2, NinjaTrader.Custom.Resource.NinjaScriptIndicatorOversold); } else if (State == State.DataLoaded) { rsi = RSI(Inputs[0], Period, 1); min = MIN(rsi, Period); max = MAX(rsi, Period); } }