예스스탁
예스스탁 답변
2025-06-05 13:13:31
안녕하세요
예스스탁입니다.
현재 작성하신 수식에서 매봉 새박스를 그리게 작성되어 있습니다.
최초 조건만족시 박스를 한번 그리고 해당 박스를 우측으로 연장하게 작성하시면 됩니다.
input : st(240),sel(1);
var : cnt(0),ut(0),dt(0),uv(0),dv(0),calcu(0),calcd(0),calcu1(0);
var : uth(0),utl(0),dth(0),dtl(0),ccu(0),ccd(0),sdte(0),sdtt(0),edte(0),edtt(0);
var : ubox1(0),ubox2(0),ubox3(0),ubox4(0),ubox5(0),dbox1(0),dbox2(0),dbox3(0),dbox4(0),dbox5(0);
array : uh[20](0),ul[20](0),dh[20](0),dl[20](0),uc[20](0);
var : T(0);
ut = Upticks;
dt = Downticks;
uv = Upvol;
dv = DownVol;
if sel == 1 Then
{
calcu = ut * uv;
}
if sel == 2 Then
{
calcu = Ticks * Volume;
}
calcd = dt * dv;
if BarIndex%st == 0 Then
{
uth = 0;
utl = 0;
ccu = 0;
//dte = 0;
//dtt = 0;
uh[0] = h;
ul[0] = l;
edte = sdate;
edtt = stime;
TL_New(sDate,sTime,0,sDate,sTime,999999999);
}
if calcu > ccu Then
{
uth = h;
utl = l;
ccu = calcu;
sdte = sdate;
sdtt = stime;
For cnt = 1 to 19
{
uh[cnt] = uh[cnt-1][1];
ul[cnt] = ul[cnt-1][1];
uc[cnt] = uc[cnt-1][1];
}
T = 1;
}
Else
{
if ccu > uc[0] Then
uh[0] = uth;
ul[0] = utl;
uc[0] = ccu;
//sortArray(uc,19,1);
//SortArray(ul,20,1);
T = 0;
}
if T == 0 and T != T[1] Then
{
ubox1 = Box_New(sdate,stime,uh[0],NextBarSdate,NextBarStime,ul[0]);
Box_SetColor(ubox1,Red);
Box_SetFill(ubox1,true);
}
if T == 1 and T != T[1] Then
{
ubox2 = Box_New(sdate,stime,uh[1],NextBarSdate,NextBarStime,ul[1]);
Box_SetColor(ubox2,Blue);
Box_SetFill(ubox2,true);
ubox3 = Box_New(sdate,stime,uh[2],NextBarSdate,NextBarStime,ul[2]);
Box_SetColor(ubox3,Black);
Box_SetFill(ubox3,true);
}
Box_SetEnd(ubox1,NextBarSdate,NextBarStime,ul[0]);
Box_SetEnd(ubox2,NextBarSdate,NextBarStime,ul[1]);
Box_SetEnd(ubox3,NextBarSdate,NextBarStime,ul[2]);
즐거운 하루되세요
> oni 님이 쓴 글입니다.
> 제목 : 수식 수정좀 부탁드려요
> 안녕하세요.
아래 수식이 원하는대로 작동은 하는데, 박스가 그려질때 세로줄이 생기는게
신경쓰여서 수정을 해보려고 해도 잘안돼네요.
세로줄이 생기지 않도록 수정좀 부탁드려요.
공부를 위해 왜 세로줄이 생겼는지, 해결은 어떻게 되는건지 주석좀 남겨주시면
감사드립니다.
input : st(240),sel(1);
var : cnt(0),ut(0),dt(0),uv(0),dv(0),calcu(0),calcd(0),calcu1(0);
var : uth(0),utl(0),dth(0),dtl(0),ccu(0),ccd(0),sdte(0),sdtt(0),edte(0),edtt(0);
var : ubox1(0),ubox2(0),ubox3(0),ubox4(0),ubox5(0),dbox1(0),dbox2(0),dbox3(0),dbox4(0),dbox5(0);
array : uh[20](0),ul[20](0),dh[20](0),dl[20](0),uc[20](0);;
ut = Upticks;
dt = Downticks;
uv = Upvol;
dv = DownVol;
if sel == 1 Then
{
calcu = ut * uv;
}
if sel == 2 Then
{
calcu = Ticks * Volume;
}
calcd = dt * dv;
if BarIndex%st == 0 Then
{
uth = 0;
utl = 0;
ccu = 0;
//dte = 0;
//dtt = 0;
uh[0] = h;
ul[0] = l;
edte = sdate;
edtt = stime;
}
if calcu > ccu Then
{
uth = h;
utl = l;
ccu = calcu;
sdte = sdate;
sdtt = stime;
For cnt = 1 to 19
{
uh[cnt] = uh[cnt-1][1];
ul[cnt] = ul[cnt-1][1];
uc[cnt] = uc[cnt-1][1];
}
}
Else
{
if ccu > uc[0] Then
uh[0] = uth;
ul[0] = utl;
uc[0] = ccu;
//sortArray(uc,19,1);
//SortArray(ul,20,1);
}
ubox1 =
Box_New(sdate,stime,uh[0],NextBarSdate,NextBarStime,ul[0]);
Box_SetColor(ubox1,Red);
Box_SetFill(ubox1,true);
ubox2 =
Box_New(sdate,stime,uh[1],NextBarSdate,NextBarStime,ul[1]);
Box_SetColor(ubox2,Blue);
Box_SetFill(ubox2,true);
ubox3 =
Box_New(sdate,stime,uh[2],NextBarSdate,NextBarStime,ul[2]);
Box_SetColor(ubox3,Black);
Box_SetFill(ubox3,true);