OPEN-SOURCE SCRIPT

Reverse RSI

115
//version=6
indicator("Reverse RSI", overlay=false)

rsi_length = input.int(14, title="RSI Length", minval=1)
ob_level = input.int(75, title="Overbought Level")
os_level = input.int(25, title="Oversold Level")

invRSI(target, length) =>
target_rs = target / (100 - target)

up = math.max(close-close[1], 0)
down = math.max(close[1]-close, 0)

prev_avg_up = ta.rma(up, length)
prev_avg_down = ta.rma(down, length)


price_up = target_rs * (prev_avg_down * (length - 1)) - (prev_avg_up * (length - 1)) + close
price_down = (prev_avg_down * (length - 1) - (prev_avg_up * (length - 1)) / target_rs) + close

current_rsi = ta.rsi(close, length)
price = target > current_rsi ? price_up : price_down
price

price_ob = invRSI(ob_level, rsi_length)
price_mid = invRSI(50, rsi_length)
price_os = invRSI(os_level, rsi_length)

upside = (price_ob-close)/close*100
downside = (close-price_os)/close*100
net = upside-downside

plot(upside, title="Upside Line", color=color.green)
plot(downside, title="Downside Line", color=color.red)
plot(net, title="Net Line", color=net>0?color.new(color.green, 30):color.new(color.red, 30), style=plot.style_columns)

hline(0, "Zero Line")

면책사항

해당 정보와 게시물은 금융, 투자, 트레이딩 또는 기타 유형의 조언이나 권장 사항으로 간주되지 않으며, 트레이딩뷰에서 제공하거나 보증하는 것이 아닙니다. 자세한 내용은 이용 약관을 참조하세요.