1428 views
1428
This is a different version of Stochastic RSI . the only difference is the use of variable moving average by Lazybear instead of regular sma for K smoothing.

Its purely an experiment. I am not a professional trader but an enthusiastic programmer trying different indicator combination to see different results.

Criticizing and negative comments will be gracefully accepted. :)
Appreciation will be even more. :)
```//@version=2
//vma function is originally written by @LazyBear
//Stochastic RSI code taken from stochcharts.com
//Merging both is my brain child. (Unless someone have already thought that) :)

study(title="Kay_StochasticRSI", shorttitle="Kay_StochRSI", precision=5)
smoothK = input(3, title="Smooth K", minval=1)
smoothD = input(3, title="Smooth D", minval=1)
lengthRSI = input(14, title="RSI", minval=1)
ls = input(14, title="Stoch", minval=1)
src = input(close, title="Source")

vma(src, l) =>
k = 2.0/(l+1)
pdm = max((src - src), 0)
mdm = max((src - src), 0)
pdmS = ((1 - k)*nz(pdmS) + k*pdm)
mdmS = ((1 - k)*nz(mdmS) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = ((1 - k)*nz(pdiS) + k*pdi)
mdiS = ((1 - k)*nz(mdiS) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = ((1 - k)*nz(iS) + k*d/s1)
hhv = highest(iS, l)
llv = lowest(iS, l)
d1 = hhv - llv
vI = (iS - llv)/d1
vma=(1 - k*vI)*nz(vma) + k*vI*src
vma

//First calculate RSI
rsi = rsi(src, lengthRSI)

//Calculate stocastic using rsi as series instead of close
st = ((rsi - lowest(rsi, ls))/(highest(rsi, ls) - lowest(rsi, ls))) * 100
//smooth out Stoch using variable moving average instead of simple moving average (no idea why I did it)
k = vma(st, smoothK)
//Smooth out K using again vma to get D
d = vma(k, smoothD)

//Color calculation.
kC=(k > k) ? green : (k<k) ? red : (k==k) ? blue : black
plot(k, color=kC, transp=0)
plot(d, color=orange)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=purple, transp=80)```