protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionMFI; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameMFI; IsSuspendedWhileInactive = true; Period = 14; DrawOnPricePanel = false; AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameMFI); AddLine(Brushes.SlateBlue, 20, NinjaTrader.Custom.Resource.NinjaScriptIndicatorLower); AddLine(Brushes.Goldenrod, 80, NinjaTrader.Custom.Resource.NinjaScriptIndicatorUpper); } else if (State == State.DataLoaded) { negative = new Series <double>(this); positive = new Series <double>(this); sumNegative = SUM(negative, Period); sumPositive = SUM(positive, Period); } else if (State == State.Historical) { if (Calculate == Calculate.OnPriceChange) { Draw.TextFixed(this, "NinjaScriptInfo", string.Format(NinjaTrader.Custom.Resource.NinjaScriptOnPriceChangeError, Name), TextPosition.BottomRight); Log(string.Format(NinjaTrader.Custom.Resource.NinjaScriptOnPriceChangeError, Name), LogLevel.Error); } } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionChaikinMoneyFlow; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameChaikinMoneyFlow; IsSuspendedWhileInactive = true; DrawOnPricePanel = false; Period = 21; AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameChaikinMoneyFlow); } else if (State == State.DataLoaded) { moneyFlow = new Series <double>(this); sumMoneyFlow = SUM(moneyFlow, Period); sumVolume = SUM(Volume, Period); } else if (State == State.Historical) { if (Calculate == Calculate.OnPriceChange) { Draw.TextFixed(this, "NinjaScriptInfo", string.Format(NinjaTrader.Custom.Resource.NinjaScriptOnPriceChangeError, Name), TextPosition.BottomRight); Log(string.Format(NinjaTrader.Custom.Resource.NinjaScriptOnPriceChangeError, Name), LogLevel.Error); } } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionStdError; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameStdError; IsSuspendedWhileInactive = true; Period = 14; IsOverlay = true; AddPlot(Brushes.Goldenrod, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameLinReg); AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorUpper); AddPlot(Brushes.DarkCyan, NinjaTrader.Custom.Resource.NinjaScriptIndicatorLower); } else if (State == State.Configure) { avg = divisor = intercept = myPeriod = priorSumXY = priorSumY = slope = sumX = sumX2 = sumY = sumXY = 0; } else if (State == State.DataLoaded) { y = new Series <double>(this); sum = SUM(Inputs[0], Period); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionUltimateOscillator; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameUltimateOscillator; IsSuspendedWhileInactive = true; Fast = 7; Intermediate = 14; Slow = 28; AddPlot(Brushes.DodgerBlue, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameUltimateOscillator); AddLine(Brushes.DarkGray, 30, NinjaTrader.Custom.Resource.NinjaScriptIndicatorOversold); AddLine(Brushes.DarkGray, 50, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNeutral); AddLine(Brushes.DarkGray, 70, NinjaTrader.Custom.Resource.NinjaScriptIndicatorOverbought); } else if (State == State.Configure) { constant1 = Slow / Fast; constant2 = Slow / Intermediate; constant3 = constant1 + constant2 + 1; } else if (State == State.DataLoaded) { buyingPressure = new Series <double>(this); trueRange = new Series <double>(this); sumBpFast = SUM(buyingPressure, Fast); sumBpIntermediate = SUM(buyingPressure, Intermediate); sumBpSlow = SUM(buyingPressure, Slow); sumTrFast = SUM(trueRange, Fast); sumTrIntermediate = SUM(trueRange, Intermediate); sumTrSlow = SUM(trueRange, Slow); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionKAMA; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameKAMA; Fast = 2; IsSuspendedWhileInactive = true; IsOverlay = true; Period = 10; Slow = 30; AddPlot(Brushes.DodgerBlue, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameKAMA); } else if (State == State.Configure) { fastCF = 2.0 / (Fast + 1); slowCF = 2.0 / (Slow + 1); } else if (State == State.DataLoaded) { diffSeries = new Series <double>(this); sum = SUM(diffSeries, Period); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionLinReg; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameLinReg; IsOverlay = true; IsSuspendedWhileInactive = true; Period = 14; AddPlot(Brushes.Orange, "LinReg"); } else if (State == State.Configure) { avg = divisor = intercept = myPeriod = priorSumXY = priorSumY = slope = sumX = sumX2 = sumY = sumXY = 0; sum = SUM(Inputs[0], Period); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDescriptionCMO; Name = NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameCMO; IsSuspendedWhileInactive = true; IsOverlay = false; Period = 14; AddPlot(Brushes.DodgerBlue, NinjaTrader.Custom.Resource.NinjaScriptIndicatorNameCMO); } else if (State == State.DataLoaded) { down = new Series <double>(this); up = new Series <double>(this); sumDown = SUM(down, Period); sumUp = SUM(up, Period); } }