커뮤니티

rsx

프로필 이미지
고성
2026-09-21 08:58:05
42
글번호 233695
답변완료

트레이딩뷰 수식입니다. 변환 부탁드립니다.


length = input(title="Length", type=integer, defval=14)

src = input(title="Source", type=source, defval=hlc3)

obLevel = input(title="OB Level", type=integer, defval=70)

osLevel = input(title="OS Level", type=integer, defval=30)

highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=bool, defval=true)


f8 = 100 * src

f10 = nz(f8[1])

v8 = f8 - f10

f18 = 3 / (length + 2)

f20 = 1 - f18

f28 = 0.0

f28 := f20 * nz(f28[1]) + f18 * v8

f30 = 0.0

f30 := f18 * f28 + f20 * nz(f30[1])

vC = f28 * 1.5 - f30 * 0.5

f38 = 0.0

f38 := f20 * nz(f38[1]) + f18 * vC

f40 = 0.0

f40 := f18 * f38 + f20 * nz(f40[1])

v10 = f38 * 1.5 - f40 * 0.5

f48 = 0.0

f48 := f20 * nz(f48[1]) + f18 * v10

f50 = 0.0

f50 := f18 * f48 + f20 * nz(f50[1])

v14 = f48 * 1.5 - f50 * 0.5

f58 = 0.0

f58 := f20 * nz(f58[1]) + f18 * abs(v8)

f60 = 0.0

f60 := f18 * f58 + f20 * nz(f60[1])

v18 = f58 * 1.5 - f60 * 0.5

f68 = 0.0

f68 := f20 * nz(f68[1]) + f18 * v18

f70 = 0.0

f70 := f18 * f68 + f20 * nz(f70[1])

v1C = f68 * 1.5 - f70 * 0.5

f78 = 0.0

f78 := f20 * nz(f78[1]) + f18 * v1C

f80 = 0.0

f80 := f18 * f78 + f20 * nz(f80[1])

v20 = f78 * 1.5 - f80 * 0.5

f88_ = 0.0

f90_ = 0.0

f88 = 0.0

f90_ := nz(f90_[1]) == 0 ? 1 : nz(f88[1]) <= nz(f90_[1]) ? nz(f88[1]) + 1 : nz(f90_[1]) + 1

f88 := nz(f90_[1]) == 0 and (length - 1 >= 5) ? length - 1 : 5

f0 = f88 >= f90_ and f8 != f10 ? 1 : 0

f90 = f88 == f90_ and f0 == 0 ? 0 : f90_

v4_ = f88 < f90 and v20 > 0 ? (v14 / v20 + 1) * 50 : 50

rsx = v4_ > 100 ? 100 : v4_ < 0 ? 0 : v4_


rsxColor = rsx > obLevel ? #0ebb23 : rsx < osLevel ? #ff0000 : #f4b77d

plot(rsx, title="RSX", linewidth=2, color=rsxColor, transp=0)

transparent = color(white, 100)

maxLevelPlot = hline(100, title="Max Level", linestyle=dotted, color=transparent)

obLevelPlot = hline(obLevel, title="Overbought Level", linestyle=dotted)

hline(50, title="Middle Level", linestyle=dotted)

osLevelPlot = hline(osLevel, title="Oversold Level", linestyle=dotted)

minLevelPlot = hline(0, title="Min Level", linestyle=dotted, color=transparent)

fill(obLevelPlot, osLevelPlot, color=purple, transp=95)

obFillColor = rsx > obLevel and highlightBreakouts ? green : transparent

osFillColor = rsx < osLevel and highlightBreakouts ? red : transparent

fill(maxLevelPlot, obLevelPlot, color=obFillColor, transp=90)

fill(minLevelPlot, osLevelPlot, color=osFillColor, transp=90)


지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2026-09-21 10:02:47

안녕하세요 예스스탁입니다. input : length(14); input : obLevel(70); input : osLevel(30); input : highlightBreakouts(true); var : src(0),f8(0),f10(0),v8(0),f18(0),f20(0),f28(0),f30(0); var : vc(0),f38(0),f40(0),v10(0),f48(0),f50(0),v14(0),f58(0); var : f60(0),v18(0),f68(0),f70(0),v1c(0),f78(0),f80(0),v20(0); var : f88(0),f88_(0),f90_(0),f0(0),f90(0),v4_(0),rsx(0); var : rsxColor(0); src = (h+l+c)/3; f8 = 100 * src; f10 = IFF(IsNan(f8[1])==true,0,f8[1]); v8 = f8 - f10; f18 = 3 / (length + 2); f20 = 1 - f18; f28 = 0.0; f28 = f20 * IFF(IsNan(f28[1])==true,0,f28[1]) + f18 * v8; f30 = 0.0; f30 = f18 * f28 + f20 * IFF(IsNan(f30[1])==true,0,f30[1]); vC = f28 * 1.5 - f30 * 0.5; f38 = 0.0; f38 = f20 * IFF(IsNan(f38[1])==true,0,f38[1]) + f18 * vC; f40 = 0.0; f40 = f18 * f38 + f20 * IFF(IsNan(f40[1])==true,0,f40[1]); v10 = f38 * 1.5 - f40 * 0.5; f48 = 0.0; f48 = f20 * IFF(IsNan(f48[1])==true,0,f48[1]) + f18 * v10; f50 = 0.0; f50 = f18 * f48 + f20 * IFF(IsNan(f50[1])==true,0,f50[1]); v14 = f48 * 1.5 - f50 * 0.5; f58 = 0.0; f58 = f20 * IFF(IsNan(f58[1])==true,0,f58[1]) + f18 * abs(v8); f60 = 0.0; f60 = f18 * f58 + f20 * IFF(IsNan(f60[1])==true,0,f60[1]); v18 = f58 * 1.5 - f60 * 0.5; f68 = 0.0; f68 = f20 * IFF(IsNan(f68[1])==true,0,f68[1]) + f18 * v18; f70 = 0.0; f70 = f18 * f68 + f20 * IFF(IsNan(f70[1])==true,0,f70[1]); v1C = f68 * 1.5 - f70 * 0.5; f78 = 0.0; f78 = f20 * IFF(IsNan(f78[1])==true,0,f78[1]) + f18 * v1C; f80 = 0.0; f80 = f18 * f78 + f20 * IFF(IsNan(f80[1])==true,0,f80[1]); v20 = f78 * 1.5 - f80 * 0.5; f88_ = 0.0; f90_ = 0.0; f88 = 0.0; f90_ = IFF( IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 , 1 , IFF( IFF(IsNan(f88[1])==true,0,f88[1]) <= IFF(IsNan(f90_[1])==true,0,f90_[1]) , IFF(IsNan(f88[1])==true,0,f88[1]) + 1 , IFF(IsNan(f90_[1])==true,0,f90_[1]) + 1)); f88 = IFF(IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 and (length - 1 >= 5) , length - 1 , 5); f0 = IFF(f88 >= f90_ and f8 != f10 , 1 , 0); f90 = IFF(f88 == f90_ and f0 == 0 , 0 , f90_); v4_ = IFF(f88 < f90 and v20 > 0 , (v14 / v20 + 1) * 50 , 50); rsx = IFF(v4_ > 100 , 100 , IFF(v4_ < 0 , 0 , v4_)); rsxColor = iff(rsx > obLevel , Green , iff(rsx < osLevel , Red , Orange)); plot1(rsx, "RSX",rsxColor); PlotBaseLine1(100, "Max Level",Gray); PlotBaseLine2(obLevel, "Overbought Level",Gray); PlotBaseLine3(50, "Middle Level",Gray); PlotBaseLine4(osLevel, "Oversold Level",Gray); PlotBaseLine5(0, "Min Level",Gray); 즐거운 하루되세요
프로필 이미지

고성

2026-09-22 14:07:56

시스템에서, rsx 선의 하단 시작점이 30 이하이면 매수되어야하는데,
rsx 선의 종가가 30 이상이면 매수신호 안나옵니다.
선물 1분봉 length 7로 설정했습니다.