커뮤니티

질문 있습니다.

프로필 이미지
스오어스
2025-10-30 19:09:49
164
글번호 227516
답변완료

질문의 핵심: 1분봉 이동평균선 색상 변경 시 딜레이 적용 방법 문의 (파란색 미표시 문제)


안녕하세요.


1분봉 차트에서 이동평균선의 방향에 따라 색상을 다르게 표시하고, 색상 변경 시 딜레이를 주고 싶습니다.


현재 코드:

input : P(120);

var1 = ma(C,P);

if var1 > var1[1] Then

var2 = 1;

if var1 < var1[1] Then

var2 = -1;

if var2 == 1 Then

plot1(var1,"이평",RED,DEF,4);

Else

plot1(var1,"이평",BLUE,DEF,4);

이 코드는 정상 작동하지만, 횡보 구간에서 빨강<->파랑이 너무 자주 바뀝니다.


원하는 기능은 아래와 같습니다.

색상이 변경될 때 즉시 바꾸지 않고, 20분(20봉) 동안 새로운 방향이 유지되면 그때 색상을 변경하고 싶습니다.

예를 들어서 파,빨 파,빨 들쑥날쑥 색이 변하는 것 대신 파에서 빨 변하는 상황이 오면 바로 변하지 않고 20분or20봉 딜레이 주면서 끝나면 빨이 맞다면 빨, 파 맞다면 계속 파

이렇게 하는 것입니다.


시도한 코드:

input : P(120), DelayBars(20);

vars: var1(0), var2(0),

NewSignal(0),

PrevSignal(0),

BarCounter(0),

FirstRun(True);

var1 = ma(C,P);

If var1 > var1[1] Then

NewSignal = 1

Else If var1 < var1[1] Then

NewSignal = -1

Else

NewSignal = PrevSignal;

If FirstRun = True Then Begin

var2 = NewSignal;

PrevSignal = NewSignal;

FirstRun = False;

End;

If NewSignal <> 0 and NewSignal <> var2 Then Begin

BarCounter = BarCounter + 1;

If BarCounter >= DelayBars Then Begin

var2 = NewSignal;

BarCounter = 0;

End;

End

Else Begin

BarCounter = 0;

End;

PrevSignal = NewSignal;

If var2 = 1 Then

plot1(var1, "이평", RED, DEF, 4)

Else

plot1(var1, "이평", BLUE, DEF, 4);


문제:

위 코드를 실행하면 파란색이 전혀 표시되지 않고 빨간색만 표시됩니다. ㅠㅠ (첨부 이미지 참조)

이동평균선이 하락할 때는 파란색으로 표시되어야 하는데, 색상 변경이 제대로 작동하지 않습니다.

1분봉 환경에서 이동평균선 방향 변경 시 N봉 딜레이를 주는 올바른 방법을 알려주시면 감사하겠습니다.


P.S. var2 변수의 초기값이나 방향 전환 로직에 문제가 있는 것 같은데,

어떻게 수정해야 파란색(하락)도 제대로 표시될까요???


사용한 차트 환경

차트: 1분봉

이동평균: 120일

원하는 딜레이: 20분 (20봉)


감사합니다!


image.png

지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-31 10:52:28

안녕하세요 예스스탁입니다. 상승하락이 최소 colorbar동안 유지되면 색상이 변경되게 수정해 드립니다. input : P(120),colorbar(20); var : clr(Black); var1 = ma(C,P); if var2 <= 0 and var1 > var1[1] Then { var2 = 1; var3 = Index; } if var2 >= 0 and var1 < var1[1] Then { var2 = -1; var3 = Index; } if var2 == 1 and Index == var3+colorbar Then clr = Red; if var2 == -1 and Index == var3+colorbar Then clr = Blue; plot1(var1,"이평",clr,DEF,4); 즐거운 하루되세요