커뮤니티

부탁드립니다

프로필 이미지
어떤하루
2025-06-20 13:09:52
267
글번호 191943
답변완료
초보자의 여러 질문에 성심껏 답변 주심에 항상 감사드립니다. 1> 아래 수식에 분홍● 생길때 봉의 고가선 종가선(연한그레이) 생기고 고가선과 종가선 사이는 연한 분홍색이 채워져 박스형식으로 생기도록 부탁드립니다. 다음 ●이 생기면 그전의 선은 없어지고 새로 생겨 선은 항상 하나만 유지합니다. 초록● 저가선 종가선 (연한그레이) --- 연한 연두색 채워지게 ● 생길때 알림음 지원될 수 있는 방법도 부탁드립니다. input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); } Else { Text_SetLocation(tx1,sDate,sTime,HH); } Condition1 = true; } } if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); } Else { Text_SetLocation(tx2,sDate,stime,LL); } Condition2 = true; } } if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); ____________________ 2> 기준선인 50선을 통과시 통과한 봉 위 아래에 "●" 20정도 크기로 나타나게 부탁드립니다 기준선에는 통과시 작은 화살표 위아래표시도 부탁드립니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); .
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2025-06-20 13:36:23

안녕하세요 예스스탁입니다. 1 input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); var : tl1(0),tl2(0),box1(0); var : tl3(0),tl4(0),box2(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); TL_Delete(tl1); TL_Delete(tl2); var1 = hh; var2 = c; tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1); tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2); TL_SetColor(tl1,LightGray); TL_SetColor(tl2,LightGray); Box_Delete(box1); box1 = Box_new(sDate,sTime,var1,NextBarSdate,NextBarStime,var2); Box_SetColor(box1,LightRed); Box_SetFill(box1,true); } Else { Text_SetLocation(tx1,sDate,sTime,HH); var1 = hh; var2 = c; TL_SetBegin(tl1,Sdate,time,var1); TL_SetBegin(tl2,Sdate,time,var2); Box_SetBegin(box1,Sdate,time,var1); } Condition1 = true; } } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); box_SetEnd(box1,NextBarSdate,NextBarStime,var2); if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); TL_Delete(tl3); TL_Delete(tl4); var3 = ll; var4 = c; tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3); tl4 = TL_New(sDate,sTime,var4,NextBarSdate,NextBarStime,var4); TL_SetColor(tl3,LightGray); TL_SetColor(tl4,LightGray); Box_Delete(box2); box2 = Box_new(sDate,sTime,var3,NextBarSdate,NextBarStime,var4); Box_SetColor(box2,LightGreen); Box_SetFill(box2,true); } Else { Text_SetLocation(tx2,sDate,stime,LL); TL_SetBegin(tl3,Sdate,time,var3); TL_SetBegin(tl4,Sdate,time,var4); Box_SetBegin(box2,Sdate,time,var4); } Condition2 = true; } } TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); box_SetEnd(box2,NextBarSdate,NextBarStime,var4); if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); 2 input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); var : tx1(0),tx2(0); if CrossUp(arsi,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,10); tx2 = Text_New_Self(sDate,sTime,50,"▲"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,10); } if CrossDown(arsi,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,Blue); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,10); tx2 = Text_New_Self(sDate,sTime,50,"▼"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,10); } 즐거운 하루되세요 > 어떤하루 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 초보자의 여러 질문에 성심껏 답변 주심에 항상 감사드립니다. 1> 아래 수식에 분홍● 생길때 봉의 고가선 종가선(연한그레이) 생기고 고가선과 종가선 사이는 연한 분홍색이 채워져 박스형식으로 생기도록 부탁드립니다. 다음 ●이 생기면 그전의 선은 없어지고 새로 생겨 선은 항상 하나만 유지합니다. 초록● 저가선 종가선 (연한그레이) --- 연한 연두색 채워지게 ● 생길때 알림음 지원될 수 있는 방법도 부탁드립니다. input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); } Else { Text_SetLocation(tx1,sDate,sTime,HH); } Condition1 = true; } } if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); } Else { Text_SetLocation(tx2,sDate,stime,LL); } Condition2 = true; } } if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); ____________________ 2> 기준선인 50선을 통과시 통과한 봉 위 아래에 "●" 20정도 크기로 나타나게 부탁드립니다 기준선에는 통과시 작은 화살표 위아래표시도 부탁드립니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); .
프로필 이미지

어떤하루

2025-06-20 14:02:15

그림과 같이 주황색선의 50선기준선 통과 기준으로 다시 수정 부탁드립니다. 거기에 다이버전스 표시도 가능하다면 부탁드립니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); var : tx1(0),tx2(0); if CrossUp(arsi,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,25); tx2 = Text_New_Self(sDate,sTime,50,"▲"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,10); } if CrossDown(arsi,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,Blue); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,25); tx2 = Text_New_Self(sDate,sTime,50,"▼"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,10); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드립니다 > 안녕하세요 예스스탁입니다. 1 input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); var : tl1(0),tl2(0),box1(0); var : tl3(0),tl4(0),box2(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); TL_Delete(tl1); TL_Delete(tl2); var1 = hh; var2 = c; tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1); tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2); TL_SetColor(tl1,LightGray); TL_SetColor(tl2,LightGray); Box_Delete(box1); box1 = Box_new(sDate,sTime,var1,NextBarSdate,NextBarStime,var2); Box_SetColor(box1,LightRed); Box_SetFill(box1,true); } Else { Text_SetLocation(tx1,sDate,sTime,HH); var1 = hh; var2 = c; TL_SetBegin(tl1,Sdate,time,var1); TL_SetBegin(tl2,Sdate,time,var2); Box_SetBegin(box1,Sdate,time,var1); } Condition1 = true; } } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); box_SetEnd(box1,NextBarSdate,NextBarStime,var2); if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); TL_Delete(tl3); TL_Delete(tl4); var3 = ll; var4 = c; tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3); tl4 = TL_New(sDate,sTime,var4,NextBarSdate,NextBarStime,var4); TL_SetColor(tl3,LightGray); TL_SetColor(tl4,LightGray); Box_Delete(box2); box2 = Box_new(sDate,sTime,var3,NextBarSdate,NextBarStime,var4); Box_SetColor(box2,LightGreen); Box_SetFill(box2,true); } Else { Text_SetLocation(tx2,sDate,stime,LL); TL_SetBegin(tl3,Sdate,time,var3); TL_SetBegin(tl4,Sdate,time,var4); Box_SetBegin(box2,Sdate,time,var4); } Condition2 = true; } } TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); box_SetEnd(box2,NextBarSdate,NextBarStime,var4); if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); 2 input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); var : tx1(0),tx2(0); if CrossUp(arsi,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,10); tx2 = Text_New_Self(sDate,sTime,50,"▲"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,10); } if CrossDown(arsi,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,Blue); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,10); tx2 = Text_New_Self(sDate,sTime,50,"▼"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,10); } 즐거운 하루되세요 > 어떤하루 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 초보자의 여러 질문에 성심껏 답변 주심에 항상 감사드립니다. 1> 아래 수식에 분홍● 생길때 봉의 고가선 종가선(연한그레이) 생기고 고가선과 종가선 사이는 연한 분홍색이 채워져 박스형식으로 생기도록 부탁드립니다. 다음 ●이 생기면 그전의 선은 없어지고 새로 생겨 선은 항상 하나만 유지합니다. 초록● 저가선 종가선 (연한그레이) --- 연한 연두색 채워지게 ● 생길때 알림음 지원될 수 있는 방법도 부탁드립니다. input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); } Else { Text_SetLocation(tx1,sDate,sTime,HH); } Condition1 = true; } } if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); } Else { Text_SetLocation(tx2,sDate,stime,LL); } Condition2 = true; } } if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); ____________________ 2> 기준선인 50선을 통과시 통과한 봉 위 아래에 "●" 20정도 크기로 나타나게 부탁드립니다 기준선에는 통과시 작은 화살표 위아래표시도 부탁드립니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); .
프로필 이미지

예스스탁 예스스탁 답변

2025-06-20 14:02:04

안녕하세요 예스스탁입니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); var : tx1(0),tx2(0); if CrossUp(signal,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,25); tx2 = Text_New_Self(sDate,sTime,50,"▲"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,10); } if CrossDown(signal,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,Blue); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,25); tx2 = Text_New_Self(sDate,sTime,50,"▼"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,10); } 즐거운 하루되세요 > 어떤하루 님이 쓴 글입니다. > 제목 : Re : Re : 부탁드립니다 > 그림과 같이 주황색선의 50선기준선 통과 기준으로 다시 수정 부탁드립니다. 거기에 다이버전스 표시도 가능하다면 부탁드립니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); var : tx1(0),tx2(0); if CrossUp(arsi,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,25); tx2 = Text_New_Self(sDate,sTime,50,"▲"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,10); } if CrossDown(arsi,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,Blue); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,25); tx2 = Text_New_Self(sDate,sTime,50,"▼"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,10); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드립니다 > 안녕하세요 예스스탁입니다. 1 input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); var : tl1(0),tl2(0),box1(0); var : tl3(0),tl4(0),box2(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); TL_Delete(tl1); TL_Delete(tl2); var1 = hh; var2 = c; tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1); tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2); TL_SetColor(tl1,LightGray); TL_SetColor(tl2,LightGray); Box_Delete(box1); box1 = Box_new(sDate,sTime,var1,NextBarSdate,NextBarStime,var2); Box_SetColor(box1,LightRed); Box_SetFill(box1,true); } Else { Text_SetLocation(tx1,sDate,sTime,HH); var1 = hh; var2 = c; TL_SetBegin(tl1,Sdate,time,var1); TL_SetBegin(tl2,Sdate,time,var2); Box_SetBegin(box1,Sdate,time,var1); } Condition1 = true; } } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); box_SetEnd(box1,NextBarSdate,NextBarStime,var2); if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); TL_Delete(tl3); TL_Delete(tl4); var3 = ll; var4 = c; tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3); tl4 = TL_New(sDate,sTime,var4,NextBarSdate,NextBarStime,var4); TL_SetColor(tl3,LightGray); TL_SetColor(tl4,LightGray); Box_Delete(box2); box2 = Box_new(sDate,sTime,var3,NextBarSdate,NextBarStime,var4); Box_SetColor(box2,LightGreen); Box_SetFill(box2,true); } Else { Text_SetLocation(tx2,sDate,stime,LL); TL_SetBegin(tl3,Sdate,time,var3); TL_SetBegin(tl4,Sdate,time,var4); Box_SetBegin(box2,Sdate,time,var4); } Condition2 = true; } } TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); box_SetEnd(box2,NextBarSdate,NextBarStime,var4); if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); 2 input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); var : tx1(0),tx2(0); if CrossUp(arsi,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,10); tx2 = Text_New_Self(sDate,sTime,50,"▲"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,10); } if CrossDown(arsi,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,Blue); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,10); tx2 = Text_New_Self(sDate,sTime,50,"▼"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,10); } 즐거운 하루되세요 > 어떤하루 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 초보자의 여러 질문에 성심껏 답변 주심에 항상 감사드립니다. 1> 아래 수식에 분홍● 생길때 봉의 고가선 종가선(연한그레이) 생기고 고가선과 종가선 사이는 연한 분홍색이 채워져 박스형식으로 생기도록 부탁드립니다. 다음 ●이 생기면 그전의 선은 없어지고 새로 생겨 선은 항상 하나만 유지합니다. 초록● 저가선 종가선 (연한그레이) --- 연한 연두색 채워지게 ● 생길때 알림음 지원될 수 있는 방법도 부탁드립니다. input : 분(60),틱수(20); var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0); var : OO(0),HH(0),LL(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { OO = O; HH = H; Condition1 = false; LL = L; Condition2 = False; } if h > HH Then { HH = H; if HH >= OO+PriceScale*틱수 Then { if Condition1 == false Then { tx1 = text_new(sDate,sTime,HH,"●"); Text_SetColor(tx1,rgb(255, 0, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,24); } Else { Text_SetLocation(tx1,sDate,sTime,HH); } Condition1 = true; } } if Condition1 == true and L <= HH*0.75 Then { Text_Delete(tx1); Condition1 = False; } if L < LL Then { LL = L; if LL <= OO-PriceScale*틱수 Then { if Condition2 == False Then { tx2 = text_new(sDate,sTime,LL,"●"); Text_SetColor(tx2,rgb(0, 194, 136)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,24); } Else { Text_SetLocation(tx2,sDate,stime,LL); } Condition2 = true; } } if Condition2 == true and H >= LL*1.25 Then { Text_Delete(tx2); Condition2 = False; } } Plot1(OO); ____________________ 2> 기준선인 50선을 통과시 통과한 봉 위 아래에 "●" 20정도 크기로 나타나게 부탁드립니다 기준선에는 통과시 작은 화살표 위아래표시도 부탁드립니다. input : length(14); input : smoType1(3); #1:EMA, 2:SMA, 3:RMA, 4TMA input : arsiCss(silver); input : autoCss(true); //Signal Line input : smooth(14); input : smoType2(1);#1EMA, 2SMA, 3RMA, 4TMA input : signalCss(Orange); //OB/OS Style input : obValue(80); input : obCss(Green); input : obAreaCss(LightGreen); input : osValue(20); input : osCss(Red); input : osAreaCss(LightRed); var : src(0); var : upper(0),lower(0),r(0); var : d(0),diff(0),alpha(0),num(0),den(0),arsi(0),signal(0),a(0),tx(0); src = close; upper = highest(src, length); lower = lowest(src, length); r = upper - lower; d = src - src[1]; diff = iff(upper > upper[1] , r , iff(lower < lower[1] , -r , d)); if smoType1 == 1 Then { num = ema(diff, length); den = ema(abs(diff), length); } if smoType1 == 2 Then { num = ma(diff, length); den = ma(abs(diff), length); } if smoType1 == 3 Then { alpha = 1/length; num = iff(isnan(num[1]) == true, ma(diff, length) , alpha * diff + (1 - alpha) * iff(isnan(num[1])==true,0,num[1])); den = iff(isnan(den[1]) == true, ma(abs(diff), length) , alpha * abs(diff) + (1 - alpha) * iff(isnan(den[1])==true,0,den[1])); } if smoType1 == 4 Then { num = ma(ma(diff, length),length); den = ma(ma(abs(diff), length), length); } arsi = num / den * 50 + 50; if smoType2 == 1 Then { signal = ema(arsi, smooth); } if smoType2 == 2 Then { signal = ma(arsi, smooth); } if smoType2 == 3 Then { a = 1/smooth; signal = iff(isnan(signal[1]) == true, ma(arsi, length) , a * arsi + (1 - a) * iff(isnan(signal[1])==true,0,signal[1])); } if smoType2 == 4 Then { signal = ma(arsi, smooth); } plot1(arsi, "Ultimate RSI",IFf(arsi > obValue , obCss , IFF(arsi < osValue , osCss ,IFf( autoCss , Black , arsiCss)))); plot2(signal, "Signal Line", signalCss); PlotBaseLine1(obValue, "Overbought"); PlotBaseLine2(50, "Midline"); PlotBaseLine3(osValue, "Oversold"); .