커뮤니티

부탁드립니다.

프로필 이미지
어떤하루
2025-06-23 14:53:12
294
글번호 191979
답변완료
안녕하세요. 수고에 항상 감사드립니다. 1> 아래 수식에 signal이 50선 상방 통과시 분홍색● 봉이 생길때 봉의 저가선 종가선(연한그레이) 생기고 저가선과 종가선 사이는 연한 분홍색이 채워져 박스형식으로 생기도록 부탁드립니다. 다음 ●이 생기면 그전의 선은 없어지고 새로 생겨 선은 항상 하나만 유지합니다. 반대로 파랑색● 고가선 종가선 (연한그레이) --- 연한 연두색 채워지게 2> signal 선 그림처럼 다이버전스 선이 생기도록 가능하다면 부탁드립니다. 봉에도 같이 생기는게 가능하다면 그럼처럼 부탁드립니다. 3> 그림처럼 노랑 박스안 80과 20사이에 5단위의 얇은회색점선 부탁드립니다. 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,rgb(255, 0, 127)); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,30); tx2 = Text_New_Self(sDate,sTime,50,"●"); Text_SetColor(tx2,rgb(255, 0, 127)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,16); } if CrossDown(signal,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,rgb(0, 145, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,30); tx2 = Text_New_Self(sDate,sTime,50,"●"); Text_SetColor(tx2,rgb(0, 145, 255)); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,16); } if CrossUp(signal,80) Then { tx1 = Text_New(sDate,sTime,L,"◈"); Text_SetColor(tx1,rgb(255, 0, 212)); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,15); tx2 = Text_New_Self(sDate,sTime,50,"◈"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,20); } if CrossDown(signal,20) Then { tx1 = Text_New(sDate,sTime,H,"◈"); Text_SetColor(tx1,rgb(34, 0, 204)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,15); tx2 = Text_New_Self(sDate,sTime,50,"◈"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,20); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-06-23 08:56:51

안녕하세요 예스스탁입니다. 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"); PlotBaseLine4(25, "25",Gray); PlotBaseLine5(30, "30",Gray); PlotBaseLine6(35, "35",Gray); PlotBaseLine7(40, "40",Gray); PlotBaseLine8(45, "45",Gray); PlotBaseLine9(55, "55",Gray); PlotBaseLine10(60, "60",Gray); PlotBaseLine11(65, "65",Gray); PlotBaseLine12(70, "70",Gray); PlotBaseLine13(75, "75",Gray); var : tx1(0),tx2(0); var : tl1(0),tl2(0),box1(0); var : tl3(0),tl4(0),box2(0); if CrossUp(signal,50) Then { tx1 = Text_New(sDate,sTime,L,"●"); Text_SetColor(tx1,rgb(255, 0, 212)); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,30); tx2 = Text_New_Self(sDate,sTime,50,"●"); Text_SetColor(tx2,rgb(255, 0, 212)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,16); TL_Delete(tl1); TL_Delete(tl2); var1 = l; 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,LightGreen); Box_SetFill(box1,true); } Else { TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); box_SetEnd(box1,NextBarSdate,NextBarStime,var2); } if CrossDown(signal,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,rgb(117, 117, 117)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,30); tx2 = Text_New_Self(sDate,sTime,50,"●"); Text_SetColor(tx2,rgb(117, 117, 117)); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,16); TL_Delete(tl3); TL_Delete(tl4); var3 = h; 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,LightRed); Box_SetFill(box2,true); } Else { TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); box_SetEnd(box2,NextBarSdate,NextBarStime,var4); } if CrossUp(signal,80) Then { tx1 = Text_New(sDate,sTime,L,"◈"); Text_SetColor(tx1,rgb(255, 0, 212)); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,15); tx2 = Text_New_Self(sDate,sTime,50,"◈"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,20); } if CrossDown(signal,20) Then { tx1 = Text_New(sDate,sTime,H,"◈"); Text_SetColor(tx1,rgb(34, 0, 204)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,15); tx2 = Text_New_Self(sDate,sTime,50,"◈"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,20); } var : slv(0),sld(0),slt(0),slv1(0),sld1(0),slt1(0); var : plv(0),pld(0),plt(0),plv1(0),pld1(0),plt1(0); var : dtl1(0),dtl2(0); if CrossDown(signal,20) Then { slv = signal; sld = sDate; slt = sTime; slv1 = slv[1]; sld1 = sld[1]; slt1 = slt[1]; plv = l; pld = sDate; plt = sTime; plv1 = plv[1]; pld1 = pld[1]; plt1 = plt[1]; } if CrossUp(signal,20) Then { if plv1 > 0 and plv < plv1 and slv > slv1 Then { dtl1 = TL_New_Self(sld1,slt1,slv1,sld,slt,slv); TL_SetColor(dtl1,Lime); TL_SetSize(dtl1,2); dtl2 = TL_New(pld1,plt1,plv1,pld,plt,plv); TL_SetColor(dtl2,Lime); TL_SetSize(dtl2,2); } } if plv > 0 and signal < 20 Then { if signal < slv Then { slv = signal; sld = sDate; slt = sTime; } if l < plv Then { plv = L; pld = sDate; plt = sTime; } } 즐거운 하루되세요 > 어떤하루 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 안녕하세요. 수고에 항상 감사드립니다. 1> 아래 수식에 signal이 50선 상방 통과시 분홍색● 봉이 생길때 봉의 저가선 종가선(연한그레이) 생기고 저가선과 종가선 사이는 연한 분홍색이 채워져 박스형식으로 생기도록 부탁드립니다. 다음 ●이 생기면 그전의 선은 없어지고 새로 생겨 선은 항상 하나만 유지합니다. 반대로 파랑색● 고가선 종가선 (연한그레이) --- 연한 연두색 채워지게 2> signal 선 그림처럼 다이버전스 선이 생기도록 가능하다면 부탁드립니다. 봉에도 같이 생기는게 가능하다면 그럼처럼 부탁드립니다. 3> 그림처럼 노랑 박스안 80과 20사이에 5단위의 얇은회색점선 부탁드립니다. 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,rgb(255, 0, 127)); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,30); tx2 = Text_New_Self(sDate,sTime,50,"●"); Text_SetColor(tx2,rgb(255, 0, 127)); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,16); } if CrossDown(signal,50) Then { tx1 = Text_New(sDate,sTime,H,"●"); Text_SetColor(tx1,rgb(0, 145, 255)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,30); tx2 = Text_New_Self(sDate,sTime,50,"●"); Text_SetColor(tx2,rgb(0, 145, 255)); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,16); } if CrossUp(signal,80) Then { tx1 = Text_New(sDate,sTime,L,"◈"); Text_SetColor(tx1,rgb(255, 0, 212)); Text_SetStyle(tx1,2,0); Text_SetSize(tx1,15); tx2 = Text_New_Self(sDate,sTime,50,"◈"); Text_SetColor(tx2,Red); Text_SetStyle(tx2,2,0); Text_SetSize(tx2,20); } if CrossDown(signal,20) Then { tx1 = Text_New(sDate,sTime,H,"◈"); Text_SetColor(tx1,rgb(34, 0, 204)); Text_SetStyle(tx1,2,1); Text_SetSize(tx1,15); tx2 = Text_New_Self(sDate,sTime,50,"◈"); Text_SetColor(tx2,Blue); Text_SetStyle(tx2,2,1); Text_SetSize(tx2,20); }