Search code examples
pine-scriptpine-script-v5tradingview-api

Linear Regression Candles Close


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:

  • A Red candle closes bellow the white line
  • A Green candle closes above the white line
//@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))

Linear Regression Candle Chart


Solution

  • 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)