I'm studying this Linear Regression Candles Indicator
Seeking help on what part of their code I can spot and re-use the logic IF and when a:
//@version=5
indicator(title='Humble LinReg Candles', shorttitle='LinReg Candles', format=format.price, precision=4, overlay=true)
signal_length = input.int(title='Signal Smoothing', minval=1, maxval=200, defval=11)
sma_signal = input(title='Simple MA (Signal Line)', defval=true)
lin_reg = input(title='Lin Reg', defval=true)
linreg_length = input.int(title='Linear Regression Length', minval=1, maxval=200, defval=11)
bopen = lin_reg ? ta.linreg(open, linreg_length, 0) : open
bhigh = lin_reg ? ta.linreg(high, linreg_length, 0) : high
blow = lin_reg ? ta.linreg(low, linreg_length, 0) : low
bclose = lin_reg ? ta.linreg(close, linreg_length, 0) : close
r = bopen < bclose
signal = sma_signal ? ta.sma(bclose, signal_length) : ta.ema(bclose, signal_length)
plotcandle(r ? bopen : na, r ? bhigh : na, r ? blow : na, r ? bclose : na, title='LinReg Candles', color=color.green, wickcolor=color.green, bordercolor=color.green, editable=true)
plotcandle(r ? na : bopen, r ? na : bhigh, r ? na : blow, r ? na : bclose, title='LinReg Candles', color=color.red, wickcolor=color.red, bordercolor=color.red, editable=true)
plot(signal, color=color.new(color.white, 0))
That white line is the signal
variable. So, you can compare the close
price with signal
.
is_green_candle = (close >= open)
is_red_candle = (not is_green_candle)
is_green_above = is_green_candle and (close > signal)
is_red_below = is_red_candle and (close < signal)