Schaff Trend Cycle (STC) indicator

Hi All,

I would need to get this very useful and quite common indicator… Is there someone here to code it in javascript ?
Or, is it already available for the Tradovate platform somewhere ?

Here is a code made for TradingView by a fellow trader (Everget):

//@version=3
// Copyright © 2018-present, Alex Orekhov (everget)
// Schaff Trend Cycle script may be freely distributed under the MIT license.
study(“Schaff Trend Cycle”, shorttitle=“STC”)

fastLength = input(title=“MACD Fast Length”, type=integer, defval=23)
slowLength = input(title=“MACD Slow Length”, type=integer, defval=50)
cycleLength = input(title=“Cycle Length”, type=integer, defval=10)
d1Length = input(title=“1st %D Length”, type=integer, defval=3)
d2Length = input(title=“2nd %D Length”, type=integer, defval=3)
src = input(title=“Source”, type=source, defval=close)
highlightBreakouts = input(title=“Highlight Breakouts ?”, type=bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)

k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))

d = ema(k, d1Length)

kd = nz(fixnan(stoch(d, d, d, cycleLength)))

stc = ema(kd, d2Length)
stc := stc > 100 ? 100 : stc < 0 ? 0 : stc

stcColor = not highlightBreakouts ? (stc > stc[1] ? green : red) : #ff3013
stcPlot = plot(stc, title=“STC”, color=stcColor, transp=0)

upper = 75
lower = 25

transparent = color(white, 100)

upperLevel = plot(upper, title=“Upper”, color=gray)
hline(50, title=“Middle”, linestyle=dotted)
lowerLevel = plot(lower, title=“Lower”, color=gray)

fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)

upperFillColor = stc > upper and highlightBreakouts ? green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? red : transparent

fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)

plotshape(crossover(stc, lower) ? lower : na, title=“Crossover”, location=location.absolute, style=shape.circle, size=size.tiny, color=green, transp=0)
plotshape(crossunder(stc, upper) ? upper : na, title=“Crossunder”, location=location.absolute, style=shape.circle, size=size.tiny, color=red, transp=0)

Best,

Al