TASC 2020-12 | Noise Elimination Technology (Ehlers)

Modified on 2020/10/31 07:06 by Eugene — Categorized as: TASC Traders Tips

Traders' Tip text

The new Noise Elimination Technology calculates Kendall Tau Rank correlation between a straight line with positive slope and an oscillator of choice - for example, the MyRSI from May 2018 issue.

Despite establishing the thresholds for trading with the NET oscillator (as well as the simplified MyRSI) is outside the scope of Dr. Ehlers’ article, it’s not a problem. We’re free to apply various approaches. For instance, Bollinger Bands with a long period (like 200 bars) can be used to set the thresholds dynamically. You can see its application to a chart on Figure 1.

For demonstration purposes, we include a trading system that puts to use another approach: NET oscillator is smoothed with a 5-period EMA to arrive at a signal line. The system buys when the oscillator is leaving oversold condition or sells when it is no longer overbought. Of course, more robust and flexible rules are desired in a real-world application.

Strategy rules:

  1. Buy tomorrow at open when the NET oscillator crosses above its signal line
  2. Sell tomorrow at open when the NET oscillator crosses below its signal line


Image

Figure 1. Sample entries on a Daily chart of SPY. Data provided by Yahoo! Finance.


We added the Noise Elimination Technology oscillator and Kendall Correlation indicator to our TASCIndicators library adnd updated it with simplified MyRSI. To execute the enclosed trading system, install (or update) the library from the Extensions section of our website if they haven't already done so, and restart Wealth-Lab. Then either copy/paste the included Strategy's C# code or simply let Wealth-Lab do the job. From “Open Strategy” dialog, click “Download” to get this strategy as well as many others contributed by the Wealth-Lab community.

WealthScript Code (C#)

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using TASCIndicators;

namespace WealthLab.Strategies { public class TASC2020_12 : WealthScript { protected override void Execute() { var ds = Close; var period = 14;

var myrsi2 = new MyRSI(ds,0,period, string.Format("MyRSI v2.0 ({0},{1})",ds.Description,period),true); var net = NET.Series(ds, period, period); var signalLine = EMAModern.Series(net, 5); signalLine.Description = string.Format("Signal line of {0}", net.Description); var bbl = BBandLower.Series(net, 100, 1.0); var bbu = BBandUpper.Series(net, 100, 1.0); for(int bar = GetTradingLoopStartBar( period ); bar < Bars.Count; bar++) { if (IsLastPositionActive) { if (CrossUnder(bar, net, signalLine)) SellAtMarket( bar + 1, LastPosition ); } else { if(CrossOver(bar,net,signalLine)) BuyAtMarket( bar + 1 ); } }

var ls = LineStyle.Solid; HideVolume(); ChartPane paneNET = CreatePane( 40,false,true ); PlotSeries( paneNET,net,Color.Blue,ls,2); PlotSeries( paneNET,myrsi2,Color.Red,ls,1); PlotSeries( paneNET,signalLine,Color.LightCoral,ls,1); PlotSeriesFillBand( paneNET, bbl, bbu, Color.FromArgb(255, 176, 196, 222), Color.Transparent, ls, 2); } } }

Gene Geren (Eugene)
Wealth-Lab team