커뮤니티

질문 있습니다.

프로필 이미지
스오어스
2025-10-30 19:09:49
106
글번호 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); 즐거운 하루되세요