예스스탁
예스스탁 답변
2025-07-29 12:17:30
안녕하세요
예스스탁입니다.
5분봉으로 음봉/양봉이 진행중인 봉에서
조건판단해 바로 색상 변경은 가능하지 않을것 같습니다.
값을 저장하면 봉색상 변경시 계산값 환원이 어려워
5분봉으로 봉완성시에 최종 진하게 표시됩니다.
input : ntime1(5);
var : SS1(0),DD1(0),TTM(0),TTF(0);
var : SM1(0),m3var(0), m3L(0), cnt(0);
Array : Mb30[100](0);
var : M3date(0),M3time(0), StrtV(0), m3UD(0), mrCl(0);
var : idx2(0), HH(0),LL(0),HTL(0),LTL(0),bb(0),box(0);
var : T(0),T1(0),T2(0),clr(0),clr1(0);
var : PLO(0),PLO1(0),PL(0);
var : NHO(0),NHO1(0),NH(0);
if Bdate != Bdate[1] Then
{
SS1 = TimeToMinutes(0);
DD1 = sdate;
}
if DD1 > 0 then
{
if sdate == DD1 Then
TTM = TimeToMinutes(stime)-SS1;
Else
TTM = TimeToMinutes(stime)+1440-SS1;
TTF = TTM%ntime1;
if Bdate != Bdate[1] or sTime == 90000 or // 90000
(Bdate == Bdate[1] && ntime1 > 1 && TTF < TTF[1]) or
(Bdate == Bdate[1] && ntime1 > 1 && TTM >= TTM[1]+ntime1) or
(Bdate == Bdate[1] && ntime1 == 1 && TTM > TTM[1]) Then
{
T1 = T[1];
T2 = T1[1];
clr1 = clr[1];
if T1 == 1 and T1 != T2 Then
{
PLO = StrtV[1];
PLO1 = PLO[1];
if PLO <= PLO1 Then
{
PL = PLO;
}
Else
{
Box_SetFill(box,true,120);
}
}
if T1 == -1 and T1 != T2 Then
{
NHO = StrtV[1];
NHO1 = NHO[1];
if NHO >= NHO1 Then
NH = NHO;
Else
{
Box_SetFill(box,true,120);
}
}
idx2 = 0;
StrtV = O;
M3date = sdate;
M3time = stime;
HH = H;
LL = L;
HTL = TL_New(sDate,sTime,max(C,StrtV),sDate,sTime,HH);
LTL = TL_New(sDate,sTime,min(C,StrtV),sDate,sTime,LL);
box = Box_New(sDate,sTime,StrtV,NextBarSdate,NextBarStime,C);
Box_SetFill(box,true);
}
else
{
idx2 = idx2+1;
if H > HH Then
HH = H;
if L < LL Then
LL = L;
bb = Floor(idx2/2);
TL_SetBegin(HTL,sDate[bb],sTime[bb],max(C,StrtV));
TL_SetEnd(HTL,sDate[bb],sTime[bb],HH);
TL_SetBegin(LTL,sDate[bb],sTime[bb],min(C,StrtV));
TL_SetEnd(LTL,sDate[bb],sTime[bb],LL);
Box_SetEnd(Box,sDate,sTime,C);
}
if C > StrtV Then
{
T = 1;
clr = RGB(235,000,000);
box_SetColor(box,clr);
TL_SetColor(HTL,clr);
TL_SetColor(LTL,clr);
}
Else
{
T = -1;
clr = RGB(000,000,235);
box_SetColor(box,clr);
TL_SetColor(HTL,clr);
TL_SetColor(LTL,clr);
}
}
즐거운 하루되세요
> 짱짱해야지 님이 쓴 글입니다.
> 제목 : box에서 높이 찾기
> 더운데 수고 많으시죠!
틱 봉에서 위 그림과 같이 5분봉의 높낮이를 찾아 보고 싶습니다.
1. 첫 번째 왼쪽의 노란색 번호 같이 이전 봉들에서 최초의 음봉box과 현재의 음봉box중 낮을 경우 이를 더 진하게 표시하고자 합니다
2. 중앙에 보이는 붉은색 번호와 같이 이전 봉의 양봉box와 현재 양봉box가 높을 경우 더 진하게 표시하고자 합니다. 1번의 완전 반대되는 내용입니다.
3. 오른쪽의 노란색 연속 번호에서 연속으로 표시된 경우 1번은 음봉box의 최고 음봉box인데 이후 양봉box이후 나타난 음봉box의 높이가 최고봉 음봉box보다 낮을 경우를 표시해보고 싶습니다. -> 양봉box의 경우도 이것의 반대로 만들 수 있음 좋겠습니다.
항상 감사드립니다!
input : ntime1(5);
var : SS1(0),DD1(0),TTM(0),TTF(0);
var : SM1(0),m3var(0), m3L(0), cnt(0);
Array : Mb30[100](0);
var : M3date(0),M3time(0), StrtV(0), m3UD(0), mrCl(0);
var : idx2(0), HH(0),LL(0),HTL(0),LTL(0),bb(0),box(0);
if Bdate != Bdate[1] Then
{
SS1 = TimeToMinutes(0);
DD1 = sdate;
}
if DD1 > 0 then
{
if sdate == DD1 Then
TTM = TimeToMinutes(stime)-SS1;
Else
TTM = TimeToMinutes(stime)+1440-SS1;
TTF = TTM%ntime1;
if Bdate != Bdate[1] or sTime == 90000 or // 90000
(Bdate == Bdate[1] && ntime1 > 1 && TTF < TTF[1]) or
(Bdate == Bdate[1] && ntime1 > 1 && TTM >= TTM[1]+ntime1) or
(Bdate == Bdate[1] && ntime1 == 1 && TTM > TTM[1]) Then
{
m3L = 1;
}
else
m3L = 0;
if m3L == 1 Then
{
idx2 = 0;
StrtV = O;
M3date = sdate;
M3time = stime;
HH = H;
LL = L;
HTL = TL_New(sDate,sTime,max(C,StrtV),sDate,sTime,HH);
LTL = TL_New(sDate,sTime,min(C,StrtV),sDate,sTime,LL);
box = Box_New(sDate,sTime,StrtV,NextBarSdate,NextBarStime,C);
Box_SetFill(box,true);
}
else
{
idx2 = idx2+1;
if H > HH Then
HH = H;
if L < LL Then
LL = L;
bb = Floor(idx2/2);
TL_SetBegin(HTL,sDate[bb],sTime[bb],max(C,StrtV));
TL_SetEnd(HTL,sDate[bb],sTime[bb],HH);
TL_SetBegin(LTL,sDate[bb],sTime[bb],min(C,StrtV));
TL_SetEnd(LTL,sDate[bb],sTime[bb],LL);
Box_SetEnd(Box,sDate,sTime,C);
}
if C > StrtV Then
{
box_SetColor(box,RGB(235,000,000));
TL_SetColor(HTL,RGB(235,000,000));
TL_SetColor(LTL,RGB(235,000,000));
}
Else
{
box_SetColor(box,RGB(000,000,235));
TL_SetColor(HTL,RGB(000,000,235));
TL_SetColor(LTL,RGB(000,000,235));
}
}