커뮤니티

ZLMA Trend Levels(트레이딩뷰)지표 +2-2+1-1변환

프로필 이미지
조민철
2026-08-30 21:45:25
147
글번호 233407
답변완료

아래 지표 "◆" ,"◆","▼","▲" 부분을

+2,-2,+1,-1 지표로

변환해주시기 바랍니다


변환과정에서 "◆" ,"◆","▼","▲" 지표와 관련된부분은 삭제해 주시기 바랍니다

감사합니다


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

tx = Text_New(sDate,sTime,zlma,"◆"); ===> +2

Text_SetColor(tx,up);


tx = Text_New(sDate,sTime,zlma,"◆"); ===> -2

Text_SetColor(tx,dn);


tx1 = Text_New(sDate[1],sTime[1],low[1],"▲"); ===> +1

Text_SetColor(tx1,up);


tx1 = Text_New(sDate[1],sTime[1],high[1],"▼"); ===> -1

Text_SetColor(tx1,dn);

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

##골드크로스와 ATR 박스 매매 - ZLMA Trend Levels(트레이딩뷰)##


input : length(60); # 기본수치:15 / 변경 60 #

input : show_levl(true);

input : up(red);

input : dn(lime);

var : box(Nan),box1(Nan),alpha(0),ATRV(0);

var : emaValue(0),correction(0),zlma(0);

var : signalUp(False),signalDn(False);

var : zlma_color(0),Ema_col(0),ii(0),check_signals(False);

var : tx(0),tx1(0),text(0),text1(0);


alpha = 1 / 200 ;

ATrV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1]));


emaValue = ema(close, length);

correction = close + (close - emaValue);

zlma = ema(correction, length);


signalUp = CrossUp(zlma, emaValue);

signalDn = CrossDown(zlma, emaValue);


zlma_color = iff(zlma > zlma[3] , up , iff(zlma < zlma[3] , dn , Nan));

ema_col = iff(emaValue < zlma , up , dn);


plot1(zlma,"zlma",zlma_color);

plot2(emaValue,"EmaValue", ema_col);



if signalUp == true Then

{

tx = Text_New(sDate,sTime,zlma,"◆");

Text_SetColor(tx,up);

Text_SetStyle(tx,2,2);

var1 = zlma - ATRV;

var2 = close;

box = Box_New(sDate,sTime,zlma,NextBarSdate,NextBarStime,var1);

Box_SetColor(box,up);

Box_SetFill(box,true);

text = Text_New(sDate,sTime,(zlma+var1)/2,NumToStr(var2,2));

Text_SetStyle(text,1,2);


box1 = box[1];

text1 = text[1];

ii = Index;

}

Else if signalDn == true Then

{

tx = Text_New(sDate,sTime,zlma,"◆");

Text_SetColor(tx,dn);

Text_SetStyle(tx,2,2);


var1 = zlma + ATRV;

var2 = close;

box = Box_New(sDate,sTime,zlma,NextBarSdate,NextBarStime,var1);

Box_SetColor(box,dn);

Box_SetFill(box,true);

text = Text_New(sDate,sTime,(zlma+var1)/2,NumToStr(var2,2));

Text_SetStyle(text,1,2);


box1 = box[1];

text1 = text[1];

ii = Index;

}

Else

{

Box_SetEnd(box,sDate,sTime,var1);

Text_SetLocation(text,sDate,sTime,avg(Box_GetBeginVal(box),Box_GetEndVal(box)));

}


if var11 > 0 and Index < ii+4 Then

{

Box_SetEnd(box1,sDate,sTime,Box_GetEndVal(box1));

Text_SetLocation(text1,sDate,sTime,avg(Box_GetBeginVal(box1),Box_GetEndVal(box1)));

Text_SetStyle(text1,0,2);

}



check_signals = signalUp or signalDn;

if CrossDown(high, min(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue > zlma Then

{

tx1 = Text_New(sDate[1],sTime[1],high[1],"▼");

Text_SetColor(tx1,dn);

Text_SetStyle(tx1,2,1);

}


if CrossUp(low, max(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue < zlma Then

{

tx1 = Text_New(sDate[1],sTime[1],low[1],"▲");

Text_SetColor(tx1,up);

Text_SetStyle(tx1,2,0);

}

지표
답변 6
프로필 이미지

예스스탁 예스스탁 답변

2026-08-31 14:21:07

안녕하세요 예스스탁입니다. input : length(60); # 기본수치:15 / 변경 60 # input : show_levl(true); input : up(red); input : dn(lime); var : box(Nan),box1(Nan),alpha(0),ATRV(0); var : emaValue(0),correction(0),zlma(0); var : signalUp(False),signalDn(False); var : zlma_color(0),Ema_col(0),ii(0),check_signals(False); var : tx(0),tx1(0),text(0),text1(0); alpha = 1 / 200 ; ATrV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1])); emaValue = ema(close, length); correction = close + (close - emaValue); zlma = ema(correction, length); signalUp = CrossUp(zlma, emaValue); signalDn = CrossDown(zlma, emaValue); zlma_color = iff(zlma > zlma[3] , up , iff(zlma < zlma[3] , dn , Nan)); ema_col = iff(emaValue < zlma , up , dn); plot1(zlma,"zlma",zlma_color); plot2(emaValue,"EmaValue", ema_col); if signalUp == true Then { tx = Text_New(sDate,sTime,zlma,"+2"); Text_SetColor(tx,up); Text_SetStyle(tx,2,2); var1 = zlma - ATRV; var2 = close; box = Box_New(sDate,sTime,zlma,NextBarSdate,NextBarStime,var1); Box_SetColor(box,up); Box_SetFill(box,true); text = Text_New(sDate,sTime,(zlma+var1)/2,NumToStr(var2,2)); Text_SetStyle(text,1,2); box1 = box[1]; text1 = text[1]; ii = Index; } Else if signalDn == true Then { tx = Text_New(sDate,sTime,zlma,"-2"); Text_SetColor(tx,dn); Text_SetStyle(tx,2,2); var1 = zlma + ATRV; var2 = close; box = Box_New(sDate,sTime,zlma,NextBarSdate,NextBarStime,var1); Box_SetColor(box,dn); Box_SetFill(box,true); text = Text_New(sDate,sTime,(zlma+var1)/2,NumToStr(var2,2)); Text_SetStyle(text,1,2); box1 = box[1]; text1 = text[1]; ii = Index; } Else { Box_SetEnd(box,sDate,sTime,var1); Text_SetLocation(text,sDate,sTime,avg(Box_GetBeginVal(box),Box_GetEndVal(box))); } if var11 > 0 and Index < ii+4 Then { Box_SetEnd(box1,sDate,sTime,Box_GetEndVal(box1)); Text_SetLocation(text1,sDate,sTime,avg(Box_GetBeginVal(box1),Box_GetEndVal(box1))); Text_SetStyle(text1,0,2); } check_signals = signalUp or signalDn; if CrossDown(high, min(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue > zlma Then { tx1 = Text_New(sDate[1],sTime[1],high[1],"-1"); Text_SetColor(tx1,dn); Text_SetStyle(tx1,2,1); } if CrossUp(low, max(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue < zlma Then { tx1 = Text_New(sDate[1],sTime[1],low[1],"+1"); Text_SetColor(tx1,up); Text_SetStyle(tx1,2,0); } 즐거운 하루되세요
프로필 이미지

조민철

2026-08-31 14:39:46

질문에 혼선이 있는거 같아 재질의 드립니다
아래 지표 "◆" ,"◆","▼","▲" 부분을

baseline 0을 기준으로하여 "◆" 부분은 +2,-2 /
"▲" 부분은 +1 / "▼"부분은 -1 직선지표로 변환해주시기 바랍니다 변환과정에서 "◆" ,"◆","▼","▲" 지표와 관련된 수식은 삭제해 주시기 바랍니다 감사합니다

프로필 이미지

조민철

2026-08-31 14:46:27

조민철 님에 의해 삭제된 답변입니다.
프로필 이미지

예스스탁 예스스탁 답변

2026-08-31 14:49:32

안녕하세요 예스스탁입니다. plot1(zlma,"zlma",zlma_color); plot2(emaValue,"EmaValue", ema_col); +2,-2,+1,-1로 출력해야 하므로 기존의 plot으로 출력되는 위 내용은 Y축이 달라 같이 출력이 가능하지 않으므로 삭제합니다. 속성에서 막대그래프로 지정해 적용하시면 됩니다. input : length(60); # 기본수치:15 / 변경 60 # input : show_levl(true); input : up(red); input : dn(lime); var : box(Nan),box1(Nan),alpha(0),ATRV(0); var : emaValue(0),correction(0),zlma(0); var : signalUp(False),signalDn(False); var : zlma_color(0),Ema_col(0),ii(0),check_signals(False); var : tx(0),tx1(0),text(0),text1(0); alpha = 1 / 200 ; ATrV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1])); emaValue = ema(close, length); correction = close + (close - emaValue); zlma = ema(correction, length); signalUp = CrossUp(zlma, emaValue); signalDn = CrossDown(zlma, emaValue); zlma_color = iff(zlma > zlma[3] , up , iff(zlma < zlma[3] , dn , Nan)); ema_col = iff(emaValue < zlma , up , dn); Plot1(0,"막대"); if signalUp == true Then { Plot1(2,"막대",up); var1 = zlma - ATRV; var2 = close; box = Box_New(sDate,sTime,zlma,NextBarSdate,NextBarStime,var1); Box_SetColor(box,up); Box_SetFill(box,true); text = Text_New(sDate,sTime,(zlma+var1)/2,NumToStr(var2,2)); Text_SetStyle(text,1,2); box1 = box[1]; text1 = text[1]; ii = Index; } Else if signalDn == true Then { Plot1(-2,"막대",dn); var1 = zlma + ATRV; var2 = close; box = Box_New(sDate,sTime,zlma,NextBarSdate,NextBarStime,var1); Box_SetColor(box,dn); Box_SetFill(box,true); text = Text_New(sDate,sTime,(zlma+var1)/2,NumToStr(var2,2)); Text_SetStyle(text,1,2); box1 = box[1]; text1 = text[1]; ii = Index; } Else { Box_SetEnd(box,sDate,sTime,var1); Text_SetLocation(text,sDate,sTime,avg(Box_GetBeginVal(box),Box_GetEndVal(box))); } if var11 > 0 and Index < ii+4 Then { Box_SetEnd(box1,sDate,sTime,Box_GetEndVal(box1)); Text_SetLocation(text1,sDate,sTime,avg(Box_GetBeginVal(box1),Box_GetEndVal(box1))); Text_SetStyle(text1,0,2); } check_signals = signalUp or signalDn; if CrossDown(high, min(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue > zlma Then { Plot1(-1,"막대",dn); } if CrossUp(low, max(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue < zlma Then { Plot1(1,"막대",up); } PlotBaseLine1(0); 즐거운 하루되세요
프로필 이미지

조민철

2026-08-31 14:49:39

지표
프로필 이미지

예스스탁 예스스탁 답변

2026-08-31 16:11:41

-1값을 -2로 지정해서 위식 수정했습니다. 수정한 값은 아래와 같습니다. 막대그래프로 설정하시면 됩니다. check_signals = signalUp or signalDn; if CrossDown(high, min(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue > zlma Then { Plot1(-1,"막대",dn); } if CrossUp(low, max(Box_GetBeginVal(box),Box_GetEndVal(box))) and check_signals[1] == False and check_signals == False and emaValue < zlma Then { Plot1(1,"막대",up); } PlotBaseLine1(0);