커뮤니티
문의드립니다.
아래는 틱봉차트에서 30분봉의 시가고가저가종가의 캔들을 나타내달라는것을 해주셨는건데,
이제 차트에 60분봉이나 30분봉캔들을 열어놓고 그안에 이중으로 겹쳐서 일봉의 시가고가저가종가의 캔들을 나타내는 것을 표현해주실수 있는가요?
========================================================================================
안녕하세요
예스스탁입니다.
틱봉에서 분봉의 값은 정확히 계산할 수 없습니다.
랭귀지는 봉의 시고저종만 이용이 가능하데
분봉의 시고저종이 봉 중간에 있을 경우 해당 값을 추출하지 못합니다.
아래식은 타분봉 봉을 그리는 내용인데
틱봉에서는 근사값이라고 보셔야 합니다.
input : 분(30);
var : S1(0),D1(0),TM(0),TF(0);
var : OO(0),HH(0),LL(0),CC(0),ii(0);
var : TL1(0),TL2(0),box(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;
LL = L;
ii = 0;
TL1 = TL_New(sDate,sTime,max(C,O),sDate,sTime,HH);
TL2 = TL_New(sDate,sTime,min(C,O),sDate,sTime,LL);
box = box_new(sDate,sTime,OO,NextBarSdate,NextBarStime,C);
}
ii = ii +1;
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC = C;
TL_SetBegin(TL1,sDate[int(ii/2)],sTime[int(ii/2)],max(CC,OO));
TL_SetBegin(TL2,sDate[int(ii/2)],sTime[int(ii/2)],min(CC,OO));
TL_SetEnd(TL1,sDate[int(ii/2)],sTime[int(ii/2)],HH);
TL_SetEnd(TL2,sDate[int(ii/2)],sTime[int(ii/2)],LL);
Box_SetEnd(box,sDate,Stime,CC);
Box_SetColor(Box,IFF(CC>OO,Red,IFf(CC<OO,Blue,Green)));
Box_SetSize(Box,1);
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetColor(TL1,IFF(CC>OO,Red,IFf(CC<OO,Blue,Green)));
TL_SetColor(TL2,IFF(CC>OO,Red,IFf(CC<OO,Blue,Green)));
TL_SetDrawMode(TL1,0);
TL_SetDrawMode(TL2,0);
}
즐거운 하루되세요
답변 1
예스스탁 예스스탁 답변
2026-04-06 16:58:04