Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Zero Lag Smoothed TEMA
Collapse
X
-
Zero Lag Smoothed TEMA
I am working on creating a zero lag TEMA smoothed with a zero lag technique and am running into problems. I am getting the error code, "Indicator 'ZeroLagSmoothedTEMA': Error on calling 'OnBarUpdate' method on bar 0: Object reference not set to an instance of an object." Attached below is the code, the commented out sections are some of the approaches I tried form referencing the help guides. However, I am still running into the same error so I figured I'd reach out. The code I am using as a reference for building this also attached. -
Hello StoneMan78,
Thanks for your post.
There is a lot going on there.
I would suggest adding print statements, in each section, to see which section the indicator stops at when the error occurs. You may need to continue adding print statements above each line to see which line it stops at and then check the line with the object reference error.
For print statements, just use simple numbers or letters in the sequence. Print ('A") Print ("B"), etc.
Make sure to open the new>Ninjascript output window and observe what letters or numbers you see, the last print indicates the error would be after that.
-
Thank you for the assistance PaulH, I was able to successfully finish the indicator. It's an interesting moving average, the behavior really changes a lot depending on the level of smoothing. At higher levels of smoothing it seems to perform similarly to a hull moving average. At lower levels it keeps the characteristics of the hyper sensitive zero lag TEMA. Will be fun to mess with. The code is pasted below.
namespace NinjaTrader.NinjaScript.Indicators
{
public class ZeroLagTEMAsmoothed : Indicator
{
private TEMA tEMA1;
private TEMA tEMA2;
private Series<double> ZeroTEMA;
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"A zero lag TEMA with a zero lag smoothing algorithm applied to filter noise.";
Name = "ZeroLagTEMAsmoothed";
Calculate = Calculate.OnBarClose;
IsOverlay = true;
DisplayInDataBox = true;
DrawOnPricePanel = true;
DrawHorizontalGridLines = true;
DrawVerticalGridLines = true;
PaintPriceMarkers = true;
ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right;
//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;
Period = 14;
SmoothingFactor = 3;
AddPlot(Brushes.Orange, "SmoothZLTEMA");
}
else if (State == State.Configure)
{
}
else if (State == State.DataLoaded)
{
tEMA1 = TEMA(Inputs[0], Period);
tEMA2 = TEMA(tEMA1, Period);
ZeroTEMA = new Series<double>(BarsArray[0]);
}
}
protected override void OnBarUpdate()
{
ZeroTEMA[0] = (tEMA1[0] * 2) - tEMA2[0];
Print(string.Format("{0} | ZeroTEMA[0]: {1}",Time[0], ZeroTEMA[0]));
SmoothZLTEMA[0] = 2 * WMA(ZeroTEMA, SmoothingFactor)[0] - WMA(WMA(ZeroTEMA, SmoothingFactor), SmoothingFactor)[0];
Print(string.Format("{0} | SmoothZLTEMA[0]: {1}",Time[0], SmoothZLTEMA[0]));
}
#region Properties
[NinjaScriptProperty]
[Range(1, int.MaxValue)]
[Display(Name="Period", Description="Number of bars used for calculations.", Order=1, GroupName="Parameters")]
public int Period
{ get; set; }
[NinjaScriptProperty]
[Range(0, int.MaxValue)]
[Display(Name="SmoothingFactor", Description="The amount of smoothing applied to the zero lag TEMA", Order=2, GroupName="Parameters")]
public int SmoothingFactor
{ get; set; }
[Browsable(false)]
[XmlIgnore]
public Series<double> SmoothZLTEMA
{
get { return Values[0]; }
}
#endregion
}
}
- Likes 1
Comment
Latest Posts
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Started by Geovanny Suaza, 02-11-2026, 06:32 PM
|
0 responses
657 views
0 likes
|
Last Post
|
||
|
Started by Geovanny Suaza, 02-11-2026, 05:51 PM
|
0 responses
373 views
1 like
|
Last Post
|
||
|
Started by Mindset, 02-09-2026, 11:44 AM
|
0 responses
109 views
0 likes
|
Last Post
by Mindset
02-09-2026, 11:44 AM
|
||
|
Started by Geovanny Suaza, 02-02-2026, 12:30 PM
|
0 responses
574 views
1 like
|
Last Post
|
||
|
Started by RFrosty, 01-28-2026, 06:49 PM
|
0 responses
579 views
1 like
|
Last Post
by RFrosty
01-28-2026, 06:49 PM
|

Comment