예스스탁
예스스탁 답변
2025-06-24 15:55:24
안녕하세요
예스스탁입니다.
1
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(75);
input : obCss(Green);
input : obAreaCss(LightGreen);
input : osValue(25);
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, 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);
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,Red);
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(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);
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,rgb(0, 255, 255));
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,75) 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,20);
}
if CrossDown(signal,25) Then
{
tx1 = Text_New(sDate,sTime,H,"◈");
Text_SetColor(tx1,rgb(34, 0, 204));
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,20);
}
if CrossUp(signal,70) 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,20);
}
if CrossDown(signal,30) Then
{
tx1 = Text_New(sDate,sTime,H,"◈");
Text_SetColor(tx1,rgb(34, 0, 204));
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,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];
}
var : box(0),t(0);
if signal > 70 Then
t = 1;
Else if signal < 30 Then
t = -1;
Else
t = 0;
if t != 0 and t != t[1] Then
{
box = Box_New(sDate,sTime,h,NextBarSdate,NextBarStime,l);
Box_SetColor(box,IFf(t==1,Red,IFf(t==-1,Blue,White)));
Box_SetFill(box,true);
Box_SetExtFill(box,true);
}
Else
{
if t != 0 Then
Box_SetEnd(box,NextBarSdate,NextBarStime,l);
}
2
input : short(10),long(100);
var : macdv(0),tx(0);
macdv = macd(short,long);
Plot1(macdv);
PlotBaseLine1(0);
if CrossUp(macdv,0) Then
{
tx = Text_New_Self(sDate,sTime,0,"▲");
Text_SetColor(tx,Red);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,0);
}
if CrossDown(macdv,0) Then
{
tx = Text_New_Self(sDate,sTime,0,"▼");
Text_SetColor(tx,Blue);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,1);
}
즐거운 하루되세요
> 어떤하루 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 아래 지표에서 signal 70통과시 분홍색 30통과시 파랑색으로 70과 30사이는 그냥 하얀바탕으로 강세약세 지표 부탁드립니다.
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(75);
input : obCss(Green);
input : obAreaCss(LightGreen);
input : osValue(25);
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, 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);
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,Red);
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(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);
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,rgb(0, 255, 255));
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,75) 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,20);
}
if CrossDown(signal,25) Then
{
tx1 = Text_New(sDate,sTime,H,"◈");
Text_SetColor(tx1,rgb(34, 0, 204));
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,20);
}
if CrossUp(signal,70) 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,20);
}
if CrossDown(signal,30) Then
{
tx1 = Text_New(sDate,sTime,H,"◈");
Text_SetColor(tx1,rgb(34, 0, 204));
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,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];
}
0선 기준으로 통과시 화살표 표시 ↑ ↓ 부탁드립니다.
input : short(10),long(100);
var : macdv(0),tx(0);
macdv = macd(short,long);
Plot1(macdv);
PlotBaseLine1(0);
if CrossUp(macdv,0) Then
{
tx = Text_New(sDate,sTime,macdv,"▲");
Text_SetColor(tx,Red);
Text_SetSize(tx,20);
}