커뮤니티

추세선

프로필 이미지
고성
2026-01-19 12:41:12
152
글번호 229879
답변완료

첨부 이미지

아래 차트의 꺽은선을, 위 차트와 같이 직선으로 표시.  

plot을 체크 해제하면 전체가 안보입니다.   위 차트는 plot이 없는 수식입니다.  감사합니다.


input : Period(30);

Var:j(0),T(0),box(0),tx(0),TL(0),TL1(0),TL2(0);

Var: date11(0),date12(0),time11(0),time12(0);

Array: HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);

Plot1(value12,"value12",IFf(t==1,Red,Blue));

{

HiBar[j] = HiBar[j] + 1;

LoBar[j] = LoBar[j] + 1;

}

if crossup(c,highest(H,Period)[1]) Then

T = 1;

if CrossDown(c,Lowest(L,Period)[1]) Then

T = -1;

If T == -1 Then

{

If T[1] != -1 Then

{

{

LoVal[j+1] = LoVal[j];

LoBar[j+1] = LoBar[j];

}

LoVal[0] = L;

LoBar[0] = 0;

date11 = date[HiBar[0]];

time11 = stime[HiBar[0]];

Value11 = HiVal[0];

date12 = date[LoBar[0]];

time12 = stime[LoBar[0]];

Value12 = LoVal[0];

TL_Delete(TL2);

TL2 = TL_New_Self(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);

TL1 = TL_New_Self(date11,time11,Value11,date12,time12,Value12);

TL_SetColor(TL1,Blue);

TL_SetSize(TL1,1);

if abs(value12[1]-value11[1]) < 1.25 Then

Text_Delete(tx);

tx = Text_New_Self(sDate,stime,value12,NumToStr(value11-value12,2));

Text_SetColor(Tx,Blue);

Text_SetStyle(tx,1,0);

Text_SetSize(tx,20);

Text_SetBold(tx,1);

Condition1 = False;

box = Box_New_Self(date11,time11,Value11,date12,time12,Value12);

}

If LoVal[0] >= L Then

{

LoVal[0] = L;

LoBar[0] = 0;

date12 = date[LoBar[0]];

time12 = stime[LoBar[0]];

Value12 = LoVal[0];

TL_SetEnd(TL1, date12,time12,Value12);

Text_SetString(tx,NumToStr(value11-value12,2));

Text_SetLocation(tx,sDate,sTime,value12);

Box_SetEnd(box,date12,time12,Value12);

}

if value12 > value11-0.5 Then

{

Box_SetColor(box,Lime);

Box_SetFill(box,true,120);

}

else if value12 <= value11-0.5 and value12 > value11-1 Then

{

Box_SetColor(box,Cyan);

Box_SetFill(box,true,100);

}

else if value12 <= value11-1 and value12 > value11-1.5 Then

{

Box_SetColor(box,Blue);

Box_SetFill(box,true,60);

}

else if value12 <= value11-1.5 and value12 > value11-2 Then

{

Box_SetColor(box,Lime);

Box_SetFill(box,true,90);

}

else if value12 <= value11-2 and value12 > value11-3 Then

{

Box_SetColor(box,Cyan);

Box_SetFill(box,true,80);

}

else

{

Box_SetColor(box,Blue);

Box_SetFill(box,true,30);

}

if Condition1 == False and hival[0] < hival[1] and Loval[0] < loval[1] Then

{

Condition1 = true;

TL_Delete(TL);

TL = TL_New(sdate,stime,0,sdate,stime,999);

TL_SetColor(TL,Gold);

TL_SetSize(TL,2);

}

}

If T == 1 Then

{

If T[1] != 1 Then

{

{

HiVal[j+1] = HiVal[j];

HiBar[j+1] = HiBar[j];

}

HiVal[0] = H;

HiBar[0] = 0;

date11 = date[LoBar[0]];

time11 = stime[LoBar[0]];

Value11 = LoVal[0];

date12 = date[HiBar[0]];

time12 = stime[HiBar[0]];

Value12 = HiVal[0];

TL_Delete(TL2);

TL2 = TL_New_Self(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);

TL1 = TL_New_Self(date11,time11,Value11,date12,time12,Value12);

TL_SetColor(TL1,Red);

TL_SetSize(TL1,1);

if abs(value12[1]-value11[1]) < 1.25 Then

Text_Delete(tx);

tx = Text_New_Self(sDate,stime,value12,NumToStr(value12-value11,2));

Text_SetColor(Tx,Red);

Text_SetStyle(tx,1,1);

Text_SetSize(tx,20);

Text_SetBold(tx,1);

Condition2 = False;

box = Box_New_Self(date11,time11,Value11,date12,time12,Value12);

}

If HiVal[0] <= H Then

{

HiVal[0] = H;

HiBar[0] = 0;

date12 = date[HiBar[0]];

time12 = stime[HiBar[0]];

Value12 = HiVal[0];

TL_SetEnd(TL1, date12,time12,Value12);

Text_SetString(tx,NumToStr(value12-value11,2));

Text_SetLocation(tx,sDate,sTime,value12);

Box_SetEnd(box,date12,time12,Value12);

}

if Value12 >= value11+3 Then

{

Box_SetColor(box,Orange);

Box_SetFill(box,true,60);

}

else if value12 >= value11+2 and value12 < value11+3 Then

{

Box_SetColor(box,Gray);

Box_SetFill(box,true,60);

}

else if value12 >= value11+1.5 and value12 < value11+2 Then

{

Box_SetColor(box,Magenta);

Box_SetFill(box,true,50);

}

else if value12 >= value11+1 and value12 < value11+1.5 Then

{

Box_SetColor(box,Orange);

Box_SetFill(box,true,70);

}

else if value12 >= value11+0.5 and value12 < value11+1 Then

{

Box_SetColor(box,Gray);

Box_SetFill(box,true,70);

}

Else

{

Box_SetColor(box,Magenta);

Box_SetFill(box,true,60);

}

if Condition2 == False and loval[0] > loval[1] and hival[0] > hival[1] Then

{

Condition2 = true;

TL_Delete(TL);

TL = TL_New(sdate,stime,0,sdate,stime,999);

TL_SetColor(TL,Lime);

TL_SetSize(TL,2);

}

}



지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2026-01-20 10:26:40

안녕하세요 예스스탁입니다. TL_New_Self Text_New_Self Box_New_Self 위 함수는 수식이 적용된 영역에 출력되는 함수입니다. _self를 빼면 봉차트 위에 항상 적용이 됩니다. 봉차트 위에 적용하실 경우에는 _self를 모두 삭제하시고 plot도 삭제후에 적용하시면 됩니다. 하지만 첨부한 그림과 같이 하단에 별도로 그려보기 위해서는 plot이 필요합니다. plot이 없으면 상하 스케일을 알수 없어 표시영역에 보이지 않습니다. 수식 자체에 꺽은선도 표시되고 있으므로 별도로 수정이나 추가해 드릴 수 있는 내용이 없습니다. 즐거운 하루되세요
프로필 이미지

고성

2026-01-20 10:29:55

하단의 꺽은선을 안보이게 감출 수는 없나요?
프로필 이미지

예스스탁 예스스탁 답변

2026-01-20 13:30:01

안녕하세요 예스스탁입니다. 수식에서 TL1이 꺽은선(지그재그)이고 TL2가 마지막봉 연결선입니다. TL2 = TL_New_Self(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New_Self(date11,time11,Value11,date12,time12,Value12); 해당 내용을 주석처리하시거나 삭제하시면 됩니다. 즐거운 하루되세요