I am trying to complete the code from tv to thinkscript but I cannot pass the error (invalid statement) in the green line. Help will be appreciated. This is the code from tv https://www.tradingview.com/script/L1NqQsyw-Signal-Moving-Average-LUX/
# Signal Moving Average by LuxAlgo
# https://www.tradingview.com/script/L1NqQsyw-Signal-Moving-Average-LUX/
#
input length = 50;
input src = close;
def ma = 0;
def os = 0;
def target = SimpleMovingAvg(src, length);
def abs_diff = AbsValue(target - target[1]);
def bar = BarNumber();
def r2 = Power(Correlation(src, bar, length), 2);
def osCond = if r2 > 0.5 then Sign(src[1] - target[1]) else os;
def oc = osCond;
oc.AssignValueColor(if osCond == 1 the osCond else Double.NaN, Color.GREEN, Color.RED);
def nz = if IsNaN(ma[1]) then target else ma[1];
def maCond = if r2 > 0.5 then r2 * target + (1 - r2) * nz else ma[1] - abs_diff * os;
plot srcPlot = src;
plot signalMA = maCond;
AddCloud(if src > ma then src else Double.NaN, Color.LIGHT_GREEN, Color.LIGHT_RED);
# Signal Moving Average by LuxAlgo
# https://www.tradingview.com/script/L1NqQsyw-Signal-Moving-Average-LUX/
#
input length = 50;
input src = close;
def ma = 0;
def os = 0;
def target = SimpleMovingAvg(src, length);
def abs_diff = AbsValue(target - target[1]);
def bar = BarNumber();
def r2 = Power(Correlation(src, bar, length), 2);
def osCond = if r2 > 0.5 then Sign(src[1] - target[1]) else os;
def oc = osCond;
oc.AssignValueColor(if osCond == 1 the osCond else Double.NaN, Color.GREEN, Color.RED);
def nz = if IsNaN(ma[1]) then target else ma[1];
def maCond = if r2 > 0.5 then r2 * target + (1 - r2) * nz else ma[1] - abs_diff * os;
plot srcPlot = src;
plot signalMA = maCond;
AddCloud(if src > ma then src else Double.NaN, Color.LIGHT_GREEN, Color.LIGHT_RED);