TheLark

TheLark: Laguerre PPO

A while ago I posted a more flexible MACD, known as PPO (See that post for details).
Yesterday I had a request by @ChartArt for a Laguerre MACD. Since I favor PPO to MACD, here it is!

Completely untested, and not at all price fit. Play with the numbers and leave a comment if you come up with an interesting combination or idea ;)
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?
study(title = "TheLark Laguerre PPO", overlay=false)

//•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•//   
//                                             //
//           LAGUERRE PPO BY THELARK           //
//                 ~ 7-8-14 ~                 //
//                                             //
//                     •/•                     //
//                                             //
//    https://www.tradingview.com/u/TheLark    //
//                                             //
//•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•/•//

Short = input(0.4)
Long = input(0.8)
emalen = input(20,title="Length of EMA Smoothing line")
doppo=input(true,title="Show PPO?")
dosig=input(true,title="Show Signal")
dohist=input(true,title="Show Histogram?")

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
    f
//plots

lmas = lag(Short, hl2)
lmal = lag(Long, hl2)
ppo = ((lmas - lmal)/lmal)*100
emasig = ema(ppo,emalen)

plot(doppo ? ppo : na, color=#0094FF)
plot(dosig ? emasig : na, color=#D26110)
plot(dohist? ppo - emasig :na,color=#FF006E,style=histogram,linewidth=2)