예스스탁
예스스탁 답변
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);
}