커뮤니티

부탁드립니다

프로필 이미지
다올
2025-12-26 14:55:51
104
글번호 229381
답변완료

사용가능하도록 부탁드립니다.


//@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")




지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-12-29 15:10:03

안녕하세요 예스스탁입니다. input : rsi_length(14); input : ob_level(75); input : os_level(25); var : price_ob(0),price_mid(0),price_os(0); var : upside(0),downside(0),net(0); Function invRSI Numeric { input : target(Numeric),length(Numeric); var : target_rs(0),up(0),down(0),prev_avg_up(0),prev_avg_down(0); var : price_up(0),price_down(0),alpha(0),current_rsi(0),price(0); target_rs = target / (100 - target); up = max(close-close[1], 0); down = max(close[1]-close, 0); alpha = 1/length; prev_avg_up = iff(Isnan(prev_avg_up[1]) == true , ma(up, length) , alpha * up + (1 - alpha) * iff(isnan(prev_avg_up[1]) == true,0,prev_avg_up[1])); prev_avg_down = iff(Isnan(prev_avg_down[1]) == true , ma(down, length) , alpha * down + (1 - alpha) * iff(isnan(prev_avg_down[1]) == true,0,prev_avg_down[1])); 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 = rsi(length); price = iff(target > current_rsi , price_up , price_down); invRSI = price; } EndFunction 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; plot1(upside, "Upside Line", green); plot2(downside, "Downside Line", red); plot3(net, "Net Line", iff(net>0,green,red)); PlotBaseLine1(0, "Zero Line"); 새해 복 많이 받으세요