No. of Recommendations: 0
What’s the trigger for Nhnl bearish in GTR1? I ask because the traditional definition was, I thought, the EMA9 of the index on close going negative- which it did not get close to that week of 3/14, although the index itself did get negative.
No. of Recommendations: 7
robbie defined nhnl in his post Bear Catcher II Bug Fix on 03/27/2016:
http://www.datahelper.com/mi/search.phtml?nofool=y...BCII Re-Formulated
I considered many possible solutions to the problem described at the beginning of this post, but the one I've settled upon happens to be the simplest and (in hindsight) the most obvious, so I won't bother presenting the others. All of them, however, attempted to the keep the indicator unaffected by changes in the number of stocks in the market. My solution is simply this: Express the daily number of strict new 252-day highest closes and strict new 252-day lowest closes (for what I mean by "strict", follow my link at the top of this post) as percentages of the number of eligible stocks in the exchange(s). Take the
nine-day weighted moving average (weights 9, 8, 7, ... 1) of each and subtract. The indicator is bearish when this difference is negative, and bullish otherwise. (If this description requires clarification, simply run the URL below with "Signal Values" selected, download the report spreadsheet, open it in Excel and scroll down to Daily Signal Values, where all of the calculations should be transparent.)
However, as with the conventional NASDAQ New High/New Low difference (which does not adapt to the size of the market), the optimal cut-off turns out not to be zero, but a negative percentage. The following table summarizes performance statistics for trading ZY100 according to BCII with various percentage point cut-offs for the NH/NL difference:
No. of Recommendations: 6
Also: I've also applied the optimized cut-off of -0.4% for BCII (NHNLDiff)
BCC: linear(1,if(SMADiff>0,1,0),2,if(NHNLDiff>-0.4,1,0),4,DBE)
No. of Recommendations: 7
FC wrote: So to summarize it’s Robbie’s definition, using the 9d EMAs of “strict” 252d highs and lows
My original Nasdaq NH-NL uses a weighted moving average and GTR1 follows my original. It does not use an Exponential Moving Average (EMA).
Also, you'll note that Robbie points out:
However, as with the conventional NASDAQ New High/New Low difference (which does not adapt to the size of the market), the optimal cut-off turns out not to be zero, but a negative percentage.
My original work on this back in the late 90s discovered the same thing, and is why my own application of this research does not use zero. It is highly unlikely that StockCharts or any other source online understands this or uses this, unless of course, they've copied my work, which I don't believe has been done to date.
No. of Recommendations: 3
My reading is that it uses 9d WMA not EMA
Create [PcntNHC252WMA9]: [[Weighted Sum of [PcntNHC252] over 9 days (daily weights=9,8,7,6,5,4,3,2,1); lag=0 days]/[Weighted Sum of [1] over 9 days (daily weights=9,8,7,6,5,4,3,2,1); lag=0 days]]
The following is the output I have from GTR1
Create [NHNLDiff]: Import [NHNLDiff] as signal (screen_number=1, lag_days=0, default_value=0) from
{
Create [StockCount]: [# Eligible at step4]
Create [PcntNHC252]: [100*[[Sum [[[Closing g-price; quote_lag=0 days]/[Highest closing g-price over 251 days; lag=1 days]] > 1 ? 1 : 0] at step4]/[StockCount]]]
Create [PcntNHC252WMA9]: [[Weighted Sum of [PcntNHC252] over 9 days (daily weights=9,8,7,6,5,4,3,2,1); lag=0 days]/[Weighted Sum of [1] over 9 days (daily weights=9,8,7,6,5,4,3,2,1); lag=0 days]]
Create [PcntNLC252]: [100*[[Sum [[[Closing g-price; quote_lag=0 days]/[Lowest closing g-price over 251 days; lag=1 days]] < 1 ? 1 : 0] at step4]/[StockCount]]]
Create [PcntNLC252WMA9]: [[Weighted Sum of [PcntNLC252] over 9 days (daily weights=9,8,7,6,5,4,3,2,1); lag=0 days]/[Weighted Sum of [1] over 9 days (daily weights=9,8,7,6,5,4,3,2,1); lag=0 days]]
Create [NHNLDiff]: [1*[PcntNHC252WMA9] - 1*[PcntNLC252WMA9]]
step0: [[1*[Mkt Date as Ordinal; lag=0 days] - 1*[19731217 as market date ordinal 13271]] < 0 ? 3 : [Exchange Code; lag=0 days]] == 3
step1: [Security Type; lag=0 days] == 10,11,18,48
step2: [Mkt Days Since Security Opened; lag=0 days] >= 252
step3: [Rank by [Share Class #; lag=0 days] (Asc), grouped by [Permanent Company ID; lag=0 days], at step3] == 1
step4: [NHNLDiff] == -999999; Cash When None
Holding period = 1 mkt days
Equally weight new positions, fully rebalancing all liquid positions to equal weight every 1 holding periods
All trades at market close.
Craig