예스스탁
예스스탁 답변
2022-11-29 16:12:30
안녕하세요
예스스탁입니다.
input : Factor(7),Pd(10),highPd(1),lowPd(5);
var : sp(0),th(0),ll(0),myh(0),myl(0),up(0),dn(0),ii(0),Trendup(0),trenddown(0),Trend(0);
var : Tsl(0),linecolor(0);
var : hv(0),lv(0),dv(0),tv(0),box(0),tx(0);
sp = (H+L+c)/3;
th = high;
for ii = 1 to Pd*highPd
{
if th < high[ii] Then
th = high[ii];
}
ll = low;
for ii=1 to Pd*lowPd
{
if ll > low[ii] Then
ll = low[ii];
}
myh = ma(high,Pd)*0.4+th*0.6;
myl = (ma(sp,Pd)*0.5+ll*0.5);
Up = myl-(Factor*atr(Pd)*0.8 );
Dn = (myh+(Factor*atr(Pd) ));
TrendUp = iff(sp[1]>TrendUp[1], max(Up,TrendUp[1]) , Up);
TrendDown = iff(sp[1]<TrendDown[1], min(Dn,TrendDown[1]) , Dn);
Trend = iff(sp > TrendDown[1] , 1, iff(sp< TrendUp[1] , -1, Trend[1]));
Tsl = IFF(Trend==1, TrendUp, TrendDown);
linecolor = IFF(Trend == 1 , Red , Blue);
plot1(Tsl,"SuperTrend",linecolor);
if Trend == 1 Then
{
if Trend != Trend[1] Then
{
if hv-lv < 0.5 Then
Text_Delete(tx);
Else
Text_SetSize(tx,15);
hv = Tsl;
lv = Tsl;
dv = sDate;
tv = sTime;
box = Box_New(sDate,sTime,hv,NextBarSdate,NextBarStime,lv);
tx = Text_New(NextBarSdate,NextBarStime,hv,NumToStr(hv-lv,2));
Text_SetStyle(tx,2,1);
Text_SetSize(tx,20);
}
Else
{
if Tsl > hv Then
hv = Tsl;
if Tsl < lv Then
lv = Tsl;
Box_SetBegin(box,dv,tv,hv);
Box_SetEnd(box,NextBarSdate,NextBarStime,lv);
Box_SetColor(box,Red);
Box_SetFill(box,true);
Text_SetString(tx,NumToStr(hv-lv,2));
Text_SetLocation(tx,NextBarSdate,NextBarStime,hv);
}
}
if Trend == -1 Then
{
if Trend != Trend[1] Then
{
if hv-lv < 0.5 Then
Text_Delete(tx);
Else
Text_SetSize(tx,15);
hv = Tsl;
lv = Tsl;
dv = sDate;
tv = sTime;
box = Box_New(sDate,sTime,hv,NextBarSdate,NextBarStime,lv);
tx = Text_New(NextBarSdate,NextBarStime,hv,NumToStr(hv-lv,2));
Box_SetColor(box,Blue);
Box_SetFill(box,true);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,20);
}
Else
{
if Tsl > hv Then
hv = Tsl;
if Tsl < lv Then
lv = Tsl;
Box_SetBegin(box,dv,tv,hv);
Box_SetEnd(box,NextBarSdate,NextBarStime,lv);
Text_SetString(tx,NumToStr(hv-lv,2));
Text_SetLocation(tx,NextBarSdate,NextBarStime,hv);
}
}
즐거운 하루되세요
> 고성 님이 쓴 글입니다.
> 제목 : 슈퍼트렌드 박스
> input : Factor(7),Pd(10),highPd(1),lowPd(5);
var : sp(0),th(0),ll(0),myh(0),myl(0),up(0),dn(0),ii(0),Trendup(0),trenddown(0),Trend(0);
var : Tsl(0),linecolor(0);
sp = (H+L+c)/3;
th = high;
for ii = 1 to Pd*highPd
{
if th < high[ii] Then
th = high[ii];
}
ll = low;
for ii=1 to Pd*lowPd
{
if ll > low[ii] Then
ll = low[ii];
}
myh = ma(high,Pd)*0.4+th*0.6;
myl = (ma(sp,Pd)*0.5+ll*0.5);
Up = myl-(Factor*atr(Pd)*0.8 );
Dn = (myh+(Factor*atr(Pd) ));
TrendUp = iff(sp[1]>TrendUp[1], max(Up,TrendUp[1]) , Up);
TrendDown = iff(sp[1]<TrendDown[1], min(Dn,TrendDown[1]) , Dn);
Trend = iff(sp > TrendDown[1] , 1, iff(sp< TrendUp[1] , -1, Trend[1]));
Tsl = IFF(Trend==1, TrendUp, TrendDown);
linecolor = IFF(Trend == 1 , Red , Blue);
plot1(Tsl,"SuperTrend",linecolor);
1.방향이 전환되면 박스를 표시하고, 그 시점의 박스 크기를 박스를 따라가며 큰 글씨로 표기. 계속 커지면 계속 수정 변경하면서 끝날 때까지 크기를 표기.
2.방향이 역으로 전환되면 색상과 글자 크기를 작게 변경하여 0.5p이하는 지우고
0.5p 이상만 표기하여 저장. 하락시 - 부호는 생략. 감사합니다.