예스스탁
예스스탁 답변
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");
.
그림과 같이 주황색선의 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");
.