CM_Laguerre PPO PercentileRank - Markets Topping

Custom Code that Finds Market Tops!!!

CM_Laguerre PPO PercentileRank - Markets Topping

Original Laguerre PPO code was Created by TheLark.

I found if I applied a Percent Rank of the PPO to view Extreme Moves in the PPO it was great at showing Market Tops.

Features via Inputs Tab:
Ability to set all PPO Indicator Values.
Ability to set Warning Threshold Line Value and Extreme Percentile Threshold Line Values.
Ability to turn On/Off Warning and Extreme Percentile Rank Lines.

***I’ve found this Indicator to be Valid…However, I have NOT Extensively tested the Settings. Initially setting the LookBack Period to 200 on A Daily chart with a 90 Extreme Percentile Rank Value works Good. Some charts changing the Lookback period to 50 an draisisng the Extreme Percentile Rank Line to 95 Works Great.

***To Be Blunt…When I look at the underlying Indicator…I don’t know why this Shows Us What It Does When the Percentile Rank Function is applied to it…But For Whatever Reason…It Just Works.

***If you Find Very Useful Settings Please Post Below

Other Indicators That Show Market Bottoms Well.



Remove from Favorite Scripts Add to Favorite Scripts
//Created by ChrisMoody on 10/28/2014...Original PPO Code Created by TheLark
//Great for Spotting Tops.
study(title = "CM_Laguerre PPO PercentileRank", overlay=false)
pctile = input(90, title="Percentile Threshold Extreme Value, Exceeding Creates Colored Histogram")
wrnpctile = input(70, title="Percentile Threshold Warning Value, Exceeding Creates Colored Histogram")
Short = input(0.4, title="PPO Setting")
Long = input(0.8, title="PPO Setting")
lkb = input(200,title="Look Back Period Percent Rank is based off of?")
sl=input(true,title="Show Threshold Line?")
swl=input(true,title="Show Warning Threshold Line?")

//Laguerre PPO Code from TheLark
lag(g, p) =>
    L0 = (1 - g)*p+g*nz(L0[1])
    L1 = -g*L0+nz(L0[1])+g*nz(L1[1])
    L2 = -g*L1+nz(L1[1])+g*nz(L2[1])
    L3 = -g*L2+nz(L2[1])+g*nz(L3[1])
    f = (L0 + 2*L1 + 2*L2 + L3)/6
lmas = lag(Short, hl2)
lmal = lag(Long, hl2)
//PPO Plot
ppo = (lmas - lmal)/lmal*100
//PercentRank of PPO 
pctRank = percentrank(ppo, lkb)
//Color Definition of Columns
col = pctRank >= pctile ? red : pctRank >= wrnpctile and pctRank < pctile ? orange : gray
//Plot Statements.
plot(pctRank,title="Percentile Rank Columns", color=col,style=columns,linewidth=2)
plot(sl and pctile ? pctile : na, title="Extreme Move Percentile Threshold Line", color=red, style=linebr, linewidth=4)
plot(swl and wrnpctile ? wrnpctile : na, title="Warning Percentile Threshold Line", color=orange, style=line, linewidth=4)


Here is my understanding of how to utilized this tool. What we are trying to do is trade one extreme to another by utilizing the PPO oscillators ability to highlight extremes. NOT when the extreme begins, but when it ENDS. So look at where the highlights cross back towards the mean and that is where I would enter a trade. Much like a stochastic signal but smoother. See arrows on chart are based on extreme signals changing direction.
+5 Reply
2use cooney_s
Interesting! Cant this be made into one indicator?
ChrisMoody cooney_s
OUTSTANDING FIND!!! Using Both Versions Hits Tops and Bottoms!!! We should code both and a Upper Indicator Plotting Arrows Showing Upside and Downside entries
+3 Reply
cooney_s ChrisMoody
Thanks! But I'm no Coder, I'm a Idea/Concept guy. Signals would be great. One notation to make would be this...value of the PPO would have to Close outside the extreme threshold, not just touch it, that would be a false signal. Example of this would be the False Top given just after the beginning of 2013.
ChartArt cooney_s
This is so simple, yet genius! Although in my test it seems it works better finding tops than bottoms. Here is comparison. Bad signals are marked in red and good signals are marked in green:

ChartArt ChartArt
The inverted PPO seems to be at least more reliable to find bottoms than the VIX Fix:

+1 Reply
cooney_s ChartArt
15 of 21 is a pretty nice ratio! Nice work.
+2 Reply
ChartArt cooney_s
I didn't even count and calculate it. With those numbers this example would have been 71% accurate. Which is ok, but I always search for 100% :D
IvanLabrie ChartArt
Man more than 50% is amazing...what you talkin bout? :p
ChartArt IvanLabrie
More than 50% is easy. More than 90% is hard.
Home Stock Screener Forex Screener Crypto Screener Economic Calendar How It Works Chart Features Pricing Refer a friend House Rules Help Center Website & Broker Solutions Widgets Charting Solutions Lightweight Charting Library Blog & News Twitter
Profile Profile Settings Account and Billing Referred friends Coins My Support Tickets Help Center Ideas Published Followers Following Private Messages Chat Sign Out