study(title="Stoch_VX4 Expiry", shorttitle="Stoch_VX4_Expiry") length = input(21, minval=1), smoothK = input(8, minval=1), smoothD = input(5, minval=1) k = ema(stoch(close, high, low, length), smoothK) d = ema(k, smoothD) plot(k, color=blue, linewidth=1) plot(d, color=red, linewidth=2) h0 = hline(70, color=red, linewidth=2) h1 = hline(30, color=green, linewidth=2) fill(h0, h1, color=purple, transp=100) //.Original PPO Code Created by TheLark / Chris Moody // Tops & Bottoms. pctile = input(90, title="%") wrnpctile = input(70, title=" %") Short = input(0.3, title="LONG") Long = input(0.5, title="SHORT") lkbT = input(144,title="'PRO-Top") lkbB = input(144,title="'PRO-Bottom") //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 f lmas = lag(Short, hl2) lmal = lag(Long, hl2) pctileB = pctile * -1 wrnpctileB = wrnpctile * -1 //PPO Plot ppoT = (lmas-lmal)/lmal*100 ppoB = (lmal - lmas)/lmal*100 //PercentRank of PPO pctRankT = percentrank(ppoT, lkbT) pctRankB = percentrank(ppoB, lkbB) * -1 colT = pctRankT >= pctile ? black : pctRankT >= wrnpctile and pctRankT < pctile ? black : black plot(pctRankT,title="Percentile Rank Columns", color=colT, style=line, linewidth=1) //---------------- plot(cross(d, k) ? d : na, color=black, style = circles, linewidth = 3) OutputSignal = k >= d ? 0 : 1 // BO xpiry tf = input('30', title="BO Expiry") tf_bool = na(tf_bool[1]) ? 0 : change(time(tf)) and tf_bool[1] == 0 ? 1 : change(time(tf)) and tf_bool[1] == 1 ? 0 : tf_bool[1] bgcolor(tf_bool == 1 ? green : na, transp=85)