커뮤니티

rsx 변환

프로필 이미지
고성
2026-09-26 11:07:38
86
글번호 233738
답변완료

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


indicator("Double Dynamic Zone RSX [Loxx]",

     shorttitle='DDZRSX [Loxx]',

     overlay = false,

     timeframe="",

     timeframe_gaps = true)

     

import loxx/loxxrsx/1

import loxx/loxxdynamiczone/3


per = input.int(14, "Period", group = "Basic Settings")

src = input.source(hlc3, "Source", group = "Basic Settings")  

dzper = input.int(70, "Dynamic Zone Period", group = "Basic Settings")


buy1  = input.float(0.1 , "Dynamic Zone Buy Probability Level 1", group = "Levels Settings", maxval = 0.49)

sell1 = input.float(0.1 , "Dynamic Zone Sell Probability Level 1", group = "Levels Settings", maxval = 0.49)

rsx = loxxrsx.rsx(src, per)

buylout1 = loxxdynamiczone.dZone("buy", rsx, buy1, dzper)

sellout1 = loxxdynamiczone.dZone("sell", rsx, sell1, dzper)


plot(buylout1, "buy lvl 1", color = greencolor)

plot(sellout1, "sell lvl 1", color = redcolor)

colorout = rsx < buylout1 ? greencolor : rsx > sellout1 ? redcolor : color.gray

plot(rsx, "RSX", color = colorout, linewidth = 2)



지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-09-28 15:19:05

안녕하세요 예스스탁입니다. plot2.plot4.plot5는 속성에서 일자그래프로 지정하고 적용하셔야 합니다. input : per(14); input : dzper(70); input : buy1(0.1); input : buy2(0.25); input : sell1(0.1); input : sell2(0.25); Function rsx { input : src(Numeric),len(Numeric); var : src_out(0),mom0(0),moa0(0),kg(0),hg(0); var : f28(0),f30(0),mom1(0); var : f38(0),f40(0),mom2(0); var : f48(0),f50(0),mom_out(0); var : f58(0),f60(0),moa1(0); var : f68(0),f70(0),moa2(0); var : f78(0),f80(0),moa_out(0); src_out = 100 * src; mom0 = src_out-src_out[1]; moa0 = abs(mom0); Kg = 3 / (len + 2.0); Hg = 1 - Kg; //mom f28 = 0.0; f30 = 0.0; f28 = Kg * mom0 + Hg * iff(IsNan(f28[1])==true,0,f28[1]); f30 = Hg * iff(IsNan(f30[1])==true,0,f30[1]) + Kg * f28; mom1 = f28 * 1.5 - f30 * 0.5; f38 = 0.0; f40 = 0.0; f38 = Hg * iff(IsNan(f38[1])==true,0,f38[1]) + Kg * mom1; f40 = Kg * f38 + Hg * iff(IsNan(f40[1])==true,0,f40[1]); mom2 = f38 * 1.5 - f40 * 0.5; f48 = 0.0; f50 = 0.0; f48 = Hg * iff(IsNan(f48[1])==true,0,f48[1]) + Kg * mom2; f50 = Kg * f48 + Hg * iff(IsNan(f50[1])==true,0,f50[1]); mom_out = f48 * 1.5 - f50 * 0.5; //moa f58 = 0.0; f60 = 0.0; f58 = Hg * iff(IsNan(f58[1])==true,0,f58[1]) + Kg * moa0; f60 = Kg * f58 + Hg * iff(IsNan(f60[1])==true,0,f60[1]); moa1 = f58 * 1.5 - f60 * 0.5; f68 = 0.0; f70 = 0.0; f68 = Hg * iff(IsNan(f68[1])==true,0,f68[1]) + Kg * moa1; f70 = Kg * f68 + Hg * iff(IsNan(f70[1])==true,0,f70[1]); moa2 = f68 * 1.5 - f70 * 0.5; f78 = 0.0; f80 = 0.0; f78 = Hg * iff(IsNan(f78[1])==true,0,f78[1]) + Kg * moa2; f80 = Kg * f78 + Hg * iff(IsNan(f80[1])==true,0,f80[1]); moa_out = f78 * 1.5 - f80 * 0.5; rsx = max(min((mom_out / moa_out + 1.0) * 50.0, 100.00), 0.00); } EndFunction Function dzone { input : type(String),src(Numeric),pval(Numeric),per(Numeric); var : left(0),right(0),eps(0),maxSteps(0),yval(0),delta(0); var : count(0),prob(0),k(0); left = -highest(high, per * 3)/PriceScale; right = highest(high, per * 3)/PriceScale; eps = min(PriceScale, 0.001); maxSteps = 0; yval = (left + right) / 2.0; yval = IFF( IsNan(yval) == true,close , yval); delta = yval - left; while (delta > eps * 5 and maxSteps < per * 2) { maxSteps = maxSteps+ 1; count = 0; if type == "buy" Then { for k = 0 to per - 1 step 1 { if src[k] < yval Then { count = count+1; } } prob = count/per; if prob > (pval + eps) Then { right = yval; yval = (yval + left) / 2.; } if prob < (pval - eps) Then { left = yval; yval = (yval + right) / 2.; } if prob < pval + eps and prob > (pval - eps) Then { right = yval; yval = (yval + left) / 2.; } delta = yval - left; } else { for k = 0 to per - 1 step 1 { if src[k] > yval Then { count = count+1; } } prob = count/per; if prob > (pval + eps) Then { left = yval; yval = (yval + right) / 2.; } if prob < (pval - eps) Then { right = yval; yval = (yval + left) / 2.; } if prob < pval + eps and prob > (pval - eps) Then { left = yval; yval = (yval + right) / 2.; } delta = yval - left; } } dzone = yval; } EndFunction var : src(0); var : rsxv(0); var : buylout1(0),buylout2(0),sellout1(0),sellout2(0),midl(0); src = (h+l+c)/3; rsxv = rsx(src, per); buylout1 = dZone("buy", rsxv, buy1, dzper); buylout2 = dZone("buy", rsxv, buy2, dzper); sellout1 = dZone("sell", rsxv, sell1, dzper); sellout2 = dZone("sell", rsxv, sell2, dzper); midl = dZone("sell", rsxv, 0.5, dzper); plot1(buylout1, "buy lvl 1", green); if Index%2 == 1 Then plot2(buylout2, "buy lvl 2", green); //그래프 종류 일자그래프 Else NoPlot(2); plot3(sellout1, "sell lvl 1", red); if Index%2 == 1 Then plot4(sellout2, "sell lvl 2",red); //그래프 종류 일자그래프 Else NoPlot(4); if Index%2 == 1 Then plot5(midl, "mid lvl", gray); //그래프 종류 일자그래프 Else NoPlot(5); var : colorout(0); colorout = iff(rsxv < buylout1 ,green , IFf(rsxv > sellout1 , red , gray)); plot6(rsxv, "RSX", colorout,Def,2); 즐거운 하루되세요