거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
Experts

Repaint Inspector - MetaTrader 5용 expert

Quoc Dat Quach
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself.
| Korean English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
조회수:
8
평가:
(1)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

지표가 리페인팅되는지 여부를 단순히 주장만 믿지 않고 직접 측정합니다. 이 도구는 차트에 연결되어, 이미 마감된 봉에 대해 테스트 대상 지표의 버퍼를 다시 읽어들이고, 그곳에서 감지되는 모든 변화를 집계합니다. 즉, 값이 이동하거나, 새로 나타나거나, 사라지는 경우를 모두 포함하며, 이러한 현상이 여전히 발생하는 가장 먼 과거 시점도 함께 기록합니다.

repaint-inspector-지그재그-패널

예시: XAUUSD M1 차트의 ZigZag(12,5,3). 이 패널은 실행 1시간 25분 12초 시점, 즉 중단되기 87초 전에 캡처되었기 때문에 아래 표의 합계 수치가 약간 더 높게 나타납니다. 스크린샷을 위해 패널 색상은 흰 바탕에 검은색으로 설정되었으며, 기본 설정은 어두운 패널에 밝은 색 텍스트입니다.

문제점

“리페인팅 없음”은 지표 설명에서 가장 자주 등장하는 주장이며, 확인하기 가장 어려운 부분이기도 합니다. 일반적인 테스트 방법은 차트를 보고 화살표가 있던 대략적인 위치를 기억한 뒤, 지표를 다시 불러와 다시 확인하는 것입니다. 하지만 이 테스트는 실제로 손실을 초래하는 두 가지 경우를 놓치게 됩니다.

첫 번째는 차트가 열려 있는 동안, 이미 한참 전에 마감된 막대의 값이 변경되는 경우입니다. 눈으로는 이를 포착하기 어렵습니다. 화살표가 몇 픽셀 정도 움직이거나, 사용자의 시선이 차트 오른쪽 가장자리에 쏠린 사이에 화살표가 사라지기 때문입니다.

두 번째는 지표가 활성화된 동안 정상적으로 작동하다가, 재로딩 후 다른 이력을 표시하는 경우인데, 이는 바로 시간대 변경, 터미널 재시작 또는 차트 새로 고침이 사용자에게 미치는 영향과 정확히 일치합니다.

두 경우 모두 측정 가능합니다. 필요한 것은 지표가 처음 데이터를 출력했을 때의 내용을 기록해 두고, 이후 지속적으로 확인하는 기능입니다.

측정 대상

  • 봉은 시프트가 아닌 시가로 식별되므로, 새로운 봉, 스크롤 및 기록 재채우기를 변경으로 오인할 수 없습니다.
  • 오직 마감된 봉만 비교되며, 시프트 1 이상인 경우에만 해당됩니다. 아직 형성 중인 봉은 정의상 변화하는 것이므로 리페인팅 여부와는 무관합니다.
  • 마감된 봉에 대해 처음 관측된 값이 기준이 됩니다. 이후의 모든 측정값은 이벤트를 카운트하는 이전 측정값과, 드리프트를 측정하는 첫 번째 측정값과 비교됩니다.
  • 세 가지 종류의 이벤트는 그 심각도가 서로 다르기 때문에 별도로 집계됩니다:
    • 변경(Changed) — 값이 다른 값으로 이동한 경우.
    • 출현 — 빈 슬롯에 값이 할당되어, 이미 마감된 봉에 신호가 나타났습니다.
    • 소멸(Vanished ) — 게시된 값이 삭제된 경우입니다. 이는 가장 심각한 유형으로, 트레이더가 행동의 근거로 삼았던 신호가 다음 판독자가 보는 기록에서 더 이상 존재하지 않게 됩니다.
  • 주요 지표는 ‘MaxShift’로, 지금까지 관측된 모든 이벤트 중 가장 큰 시프트 값을 의미합니다. 마지막 마감 바만 다시 그리는 지표는 15개의 바에 걸친 이력을 재작성하는 지표와는 완전히 다른 개념입니다.
  • 모든 이벤트는 바 시간, 버퍼, 감지 시의 시프트, 그리고 이전 및 새로운 값과 함께 CSV 파일에 기록되므로, 보고서를 단순히 믿는 대신 검증할 수 있습니다.
  • 테스트 대상 지표는 구문 분석된 매개변수 목록을 기반으로 IndicatorCreate를 통해 생성되므로, 어떤 사용자 정의 지표든 편집이나 재컴파일 없이 검사할 수 있습니다. 구문 분석된 매개변수는 시작 시 저널에 출력되므로, 잘못된 매개변수 목록이 조용히 지나가는 대신 눈에 띄게 됩니다.
  • 선택적으로 핸들을 N분마다 해제하고 다시 생성할 수 있습니다. 기록된 이력은 의도적으로 재설정되지 않으므로, 실행 과정에서는 지표가 활성화된 동안 아무런 신호를 보내지 않다가 재로딩 후 다른 과거 데이터를 출력하는 현상도 포착됩니다.
  • 지표 핸들이 아직 존재하지 않거나, 지표가 아직 계산되지 않았거나, 요청된 깊이보다 마감된 바(bar)의 수가 적거나, 버퍼를 복사할 수 없거나, 시간 읽기와 값 읽기 사이에 시계열이 이동한 경우에는 해당 검사가 무시되며, 증거가 아닌 건너뛴 것으로 집계됩니다.

샘플링 과정에서, 확인 간격보다 짧은 시간 동안만 존재하는 값은 누락될 수 있습니다. 이는 실제적인 한계이며, 이에 대한 측정 결과는 아래에서 설명합니다.

측정된 예시

아래의 모든 예시는 터미널에 기본으로 포함된 지표를 사용하므로 누구나 재현할 수 있습니다.

실시간, XAUUSD M1, 1시간 26분

동일한 터미널과 동일한 피드의 4개 차트에 4개의 인스턴스를 실행, 2026.09.30 서버 시간 02:19부터 03:46까지, 300개의 마감된 바를 관찰, 초당 1회 확인.

테스트 대상 지표버퍼비교변경된 사항출현사라짐MaxShift결론
예시\지그재그 (12,5,3)01 315 713001715재도색
예제\지그재그 (12,5,3)11 315 7130031재도색
예제\지그재그 (12,5,3)21 315 71300103재그리기
예시\사용자 정의 이동 평균 (13,0,2)01 305 513000-STABLE
예시\프랙탈, 확인 지연01 303 71301303재도색
예시\프랙탈, 늦은 확인11 303 71301203재그리기

각각 4387, 4353, 4347건의 검사가 수행되었으며, 0 / 0 / 1건의 검사가 건너뛰어졌고, 0건의 재동기화, 0건의 핸들 재로딩이 발생했습니다. 이벤트 파일에는 30, 0, 25개의 행이 포함되어 있으며, 이는 각 경우의 세 이벤트 열의 합계와 일치합니다.

비교 횟수는 정수 값이 아니며, 그럴 필요도 없습니다. 실행 중에 87개의 새로운 M1 막대가 열렸으며, 막대가 막 열린 상태에서는 아직 마감된 막대의 이력이 없기 때문입니다. 각 사례에 대해 (검증 횟수 - 1) × 300 - 87을 계산하면 보고된 비교 횟수와 정확히 일치합니다.

하나의 테이블에 나타나는 세 가지 다른 특징:

  • ZigZag는 자신의 과거 데이터를 삭제합니다. 플롯된 ZigZag 버퍼에서 17개의 값이 지워졌는데, 그중 하나는 해당 바가 마감된 지 15바 후에 지워졌으며, 그 뒤의 두 계산 버퍼에서 13개가 더 지워졌습니다. 변경된 사항 없음: ZigZag의 극값은 해당 바의 고가 또는 저가이며, 변동할 수 없으므로 제거된 후 다른 곳에 다시 게시됩니다. 이것이 바로 이벤트가 ‘Vanished’로 표시되고 델타 열이 비어 있는 이유입니다.
  • 종가 바의 이동평균은 이동하지 않습니다. 1,305,513회의 비교가 이루어졌으나, 단 하나의 이벤트도 발생하지 않았습니다.
  • 프랙탈은 세 번째 경우이며, 도구는 이를 첫 번째 경우와 구분합니다. 25건의 이벤트가 발생했으며, 모두 ‘Appeared’ 상태이고, ‘Changed’나 ‘Vanished’는 없으며, 모두 시프트 3에 위치합니다. 이는 리페인팅이 아니라 지연된 확인입니다. 프랙탈은 그려지기 전에 두 개의 봉이 더 필요하므로, 해당 값은 정당한 절차에 따라 세 봉 전으로 거슬러 올라가 나타난 후 그대로 유지됩니다. ‘판결’ 열에는 여전히 ‘REPAINTS’라고 표시되는데, 이는 도구가 관측한 내용을 보고할 뿐 판단은 독자에게 맡기기 때문입니다. 이벤트가 모두 하나의 고정된 시프트에서 ‘Appeared’로 표시되는 지표는 이러한 지연이 내재되어 있어 사용 가능하지만, 이벤트가 흩어진 시프트에서 ‘Vanished’로 표시되는 지표는 사용할 수 없습니다.

전략 테스터, 10초 동안의 동일한 측정값

예시\ZigZag(12,5,3), XAUUSD M1, 2026.09.28 ~ 2026.09.29, 1분 OHLC 모델링, 300개의 종가 봉차 관찰:

카운터값
판정재그리기
검증5 512
종료된 막대 그래프에 대한 비교1,651,923
변경됨 / 나타남 / 사라짐0 / 3 / 342
값을 잃은 고유 막대 수341
이벤트가 하나 이상 발생한 고유 막대 수343
MaxShift28
건너뛴 검사/재동기화 횟수0 / 0
CSV 행 수345 (= 342 + 3)

한 거래일 동안 ZigZag는 당시 이미 마감된 봉에 대해 이미 게시했던 342개의 값을 삭제했으며, 그 중 한 건은 해당 봉이 마감된 지 28봉 후에 발생했습니다. 이미 마감된 바에 세 개의 값이 나타났습니다. 이 세 개 중 단 하나만이 다시 나타난 값이었습니다: 17:06 바에서 4126.184를 잃었고, 20초 후에 정확히 같은 수치를 되찾았으며, 그로부터 1분 후에 다시 잃었습니다. 이것이 바로 해당 실행에서 Max |delta| 값이 0.00000000으로 표시되는 이유이기도 합니다. 이는 측정값이지 갭이 아닙니다.

repaint-inspector-지그재그-이동

해당 날짜의 345개 이벤트는 감지된 시프트별로 분류된 것입니다. 대부분의 재그리딩은 한두 바 전에서 발생하므로, 마지막 마감된 바만 확인하는 것만으로는 충분하지 않습니다.

repaint-inspector-stable-panel

예시\Custom Moving Average(13,0,2), 위의 ZigZag과 동일한 종목 및 실행 창: 스크린샷 촬영 시점에 1,291,114회의 비교가 이루어졌으나 변경된 값은 단 하나도 없습니다. 비교 횟수는 의도적으로 판정 결과 옆에 표시됩니다 — ‘STABLE’의 가치는 바로 그 옆에 적힌 숫자만큼만 의미가 있습니다.

"0.0을 값 없음으로 처리" 옵션이 무엇을 변경하는지, 그리고 샘플링 간격이 얼마나 큰지

네 번째 복제본은 해당 스위치를 끄고 동일한 지그재그를 실행했으므로, 0.0은 일반 값으로 간주됩니다: 1,308,513회의 비교, 18 + 3 + 11 = 32건의 이벤트, 모두 ‘변경됨(Changed)’ 상태, 동일한 MaxShift 15, 메인 버퍼에서 Max |delta| 4184.08800000을 기록했습니다. 이 수치는 ‘변경’이 피크가 0.0으로 대체되는 것을 의미하므로 핵심 지표입니다. 두 설정 모두 동일한 재그리기 현상을 설명하지만, 기본 설정은 이를 올바르게 명명합니다.

두 복사본은 정확히 동일한 목록을 확인하지 못했으며, 이는 알아둘 가치가 있습니다. 네 번째 복사본은 첫 번째 복사본이 놓친 두 가지 이벤트를 기록했습니다: 버퍼 0과 2의 03:32:00 바가 03:33:01에 감지된 것입니다. 두 복사본은 14초 간격으로 시작되었으며, 해당 값은 하나의 확인 간격보다 짧은 시간 동안만 존재했기 때문에, 한 쪽은 이를 샘플링했지만 다른 쪽은 그렇지 못했습니다. M1에서 1초 간격으로 설정되어 있다면, 이것이 바로 해당 계측기의 분해능입니다.

repaint-inspector-delta-panel

0.0으로 읽힌 동일한 ZigZag 값도 값으로 집계되었습니다. 이제 모든 삭제 건은 가격 크기의 델타를 가진 ‘변경됨(Changed)’으로 표시됩니다. 교차 확인용으로는 유용하지만, 설명용으로는 오해의 소지가 있습니다.

수치 감사

카운터 값도 무비판적으로 신뢰하지는 않았습니다. 터미널에서 가져온 원시 캔들 데이터를 대상으로 Examples\ZigZag를 Python으로 독립적으로 재구현한 후, 이를 이벤트 파일과 비교했습니다:

  • 실시간 실행: 플롯된 버퍼에서 값이 누락된 17개의 바 각각에 대해, 해당 값은 오늘의 리플레이에서 누락되어 있으며, 17개 모두에서 도구의 마지막 판독값은 리플레이된 값과 일치합니다.
  • 테스터 실행: 이벤트가 포함된 343개의 바에 대해 동일한 두 가지 검사를 수행한 결과, 불일치는 없었습니다. 즉, 재현본에서 누락된 341개의 값이 없었으며, 343개 중 343개의 마지막 판독값이 해당 값과 일치했습니다.

입력 데이터

입력기본값설명
검사할 지표 (iCustom 경로, .ex5 제외; 예: Examples\ZigZag)비어 있음MQL5\Indicators를 기준으로 한 사용자 정의 지표의 경로로, 확장자를 제외하고 iCustom이 기대하는 형식과 정확히 일치해야 합니다. 의도적으로 비워둔 경우: 아무것도 입력하지 않으면 도구는 저널과 패널에 해당 사실을 표시하고, 터미널에 없을 수도 있는 지표를 가리키는 대신 아무것도 측정하지 않습니다. 실전 차트에서 경로가 잘못된 경우 도구는 연결된 상태를 유지하며 30초마다 재시도하므로, 도구를 제거하지 않고도 입력을 수정할 수 있습니다. 잘못된 경로로 XAUUSD M1 차트에서 측정해 본 결과: 도구는 오류 코드를 한 번 표시했고, 터미널은 시도할 때마다(30.4초 및 30.7초 간격) 자체적으로 “로드할 수 없음” 메시지를 추가했으며, 경로를 수정하자 도구를 분리하지 않은 채 측정이 시작되었습니다.
매개변수, 쉼표로 구분 (비어 있음 = 지표 기본값)비어 있음테스트 대상 지표의 입력 목록입니다(예: 12,5,3). 각 항목은 내용에 따라 유형이 지정됩니다. true 및 false는 bool이 되고, 소수점이나 지수가 포함된 숫자는 double이 되며, 일반 숫자는 int가 되고, 그 외의 모든 것은 string이 되며, 앞뒤 따옴표는 제거됩니다. 구문 분석된 목록은 시작 시 저널에 출력되므로, 잘못된 목록은 즉시 확인할 수 있습니다. 비워두면 지표가 자체 기본값으로 실행됩니다.
감시할 버퍼 수 (1..32)1읽어들이는 버퍼의 수입니다. 계산용 버퍼도 포함됩니다. 지표에 없는 버퍼가 있으면 전체 검사가 실패합니다. 이는 건너뛴 검사로 간주되며, 처음 몇 번의 발생 건은 오류 코드와 함께 저널에 기록되므로, 오류가 발생해도 조용히 넘어가지 않고 바로 확인할 수 있습니다.
심볼 (비어 있음 = 차트 심볼)비어 있음차트를 열지 않고 다른 종목의 지표를 검사합니다.
시간대현재다른 시간대의 지표를 확인합니다.
관찰 대상 종가 봉 (시프트 1..N)300검증 깊이. 바 수에 버퍼를 곱한 값은 200,000 슬롯으로 제한되며, 이를 초과할 경우 깊이가 축소되고 저널에 한 줄이 기록됩니다.
검증 간 최소 초 수, 테스터 내 모델링된 시간 (0 = 매 틱마다)1스로틀. 1초 간격은 사람이 반응할 수 있는 모든 화면 갱신을 포착하며, 매 틱마다 처리하는 것보다 CPU 사용량이 훨씬 적지만, 이 간격보다 짧은 시간 동안 존재하는 값은 놓칠 수 있습니다. 전략 테스터에서는 실제 시계 대신 모델링된 시계가 사용되므로, 동일한 설정이 적용됩니다.
이보다 작은 |변경|은 무시(0 = 모든 변경 사항 카운트)0.0부동 소수점 값을 기반으로 재계산되며 마지막 자릿수에 미세한 변동이 발생하는 지표에 대한, 버퍼 단위의 절대 허용 오차. 0은 모든 차이를 카운트합니다. 허용 오차보다 크지 않은 변화는 전혀 기록되지 않습니다 — 이벤트도, CSV 행도, Max |delta|에 대한 기여도도 없습니다.
0.0을 “값 없음”으로 처리(화살표/ZigZag 스타일 버퍼)true많은 신호 지표는 “신호 없음”을 나타낼 때 EMPTY_VALUE 대신 0.0을 출력합니다. 이 옵션을 켜면 0.0이 빈 값으로 간주되며, 해당 이벤트는 ‘출현(Appeared)’ 및 ‘소멸(Vanished)’로 보고됩니다. 정확히 0이 유효한 값인 버퍼의 경우 이 옵션을 끄십시오.
N분마다 지표 핸들을 재생성합니다(0 = 절대 안 함)0핸들을 해제하고 터미널에 새로운 핸들을 요청합니다. 이때 다른 프로그램이 동일한 매개변수를 가진 동일한 지표를 여전히 보유하고 있지 않은 한, 전체 재계산이 트리거됩니다. 기록된 이력은 지워지지 않으므로, 이 기능을 통해 실행 중에는 안정적이지만 재로딩 후에는 달라지는 지표를 포착할 수 있습니다.
N분 후 측정 중지 (0 = 제거될 때까지 실행)0측정을 종료하고 보고서를 고정합니다. 이는 무인 실행 시 유용합니다.
모든 이벤트를 MQL5\Files에 기록(CSV)true이벤트 파일.
CSV 파일 이름 (비워두면 자동)비어 있음자동 이름은 심볼, 시간대 및 시작 시간을 기반으로 생성됩니다. 같은 분에 다른 복사본이 시작되어 해당 이름의 파일이 현재 열려 있는 경우, 파일이 전혀 없는 상태로 복사본이 실행되는 대신 숫자 접미사가 추가됩니다. 같은 분에 실행된 이전 실행에서 동일한 이름의 닫힌 파일은 덮어쓰기되므로, 실행 결과가 중요한 경우에는 직접 이름을 지정하십시오.
이 행 수 이후에는 쓰기를 중지합니다100000매 틱마다 다시 그려지는 지표에 대비하십시오. 제한을 초과해도 카운팅은 계속되며, 파일 크기만 더 이상 증가하지 않을 뿐이고, 저널에 한 줄로 그 사실이 기록됩니다.
차트에 보고서 패널 표시true무인 실행이나 테스터 실행 시 이 기능을 비활성화하십시오.
패널 X 거리, 96 dpi 기준 픽셀12위치. 패널은 화면 dpi에 따라 크기가 조정됩니다.
패널 Y 거리, 96 dpi 기준 픽셀 수20위치.
글꼴 크기, 포인트 (4 이상; 패널은 화면 DPI에 따라 크기가 조정됩니다)9이 패널은 고정폭 글꼴로 된 표입니다. 고해상도 화면이나 차트가 작은 경우 크기를 줄이십시오. 위의 스크린샷은 4를 사용했습니다.
패널 모서리왼쪽 상단고정 모서리.
패널 배경색짙은 회색패널 색상. 다른 Expert Advisor와 마찬가지로 차트당 하나의 인스턴스가 생성되며, 여러 차트에서 동시에 인스턴스를 실행할 수 있습니다.
패널 테두리 색상옅은 회색
패널 텍스트 색상밝은 회색
모든 버퍼가 안정 상태일 때의 헤더 색상라임 그린
버퍼가 다시 그려질 때의 헤더 색상토마토색

보고서

이것은 위에서 실행 중이던 실시간 ZigZag가 중지되었을 때 도구가 저널에 출력한 요약 블록을 그대로 복사한 것입니다. 차트의 패널에는 실행 시간이 오른쪽 정렬된 동일한 표가 표시됩니다:

=== 리페인팅 인스펙터 요약 =====================================
리페인팅 인스펙터   Examples\ZigZag (12,5,3)
XAUUSD M1   300개의 마감된 막대 관측   실행 중 01:26:39
검증 4,387   건너뜀 0   재동기화 0   재로드 처리 0
버퍼  판정      비교 횟수    변경됨   나타남   사라짐   최대 이동량    최대 |델타|
  0  재그리기       1 315 713          0          0         17         15              -
  1  재그리기       1 315 713          0          0          3          1              -
  2  REPAINTS       1 315 713          0          0         10          3              -
CSV: RepaintInspector_XAUUSD_M1_20260930_0219.csv (30행)
서버 시간 기준 2026.09.30 02:19:31에 시작, 4387회 검사, 0회 건너뛰기, 0회 재동기화, 0회 핸들 재로드
이벤트 총 30개, CSV 행 30개
버퍼 0: REPAINTS, 비교 횟수 1315713, 변경 0, 새로 나타남 0, 사라짐 17, 영향을 받은 막대 17
버퍼 0: 최대 이동량 15 (2026.09.30 02:59 바에서 사라짐)
버퍼 0: 최대 |델타| 없음
버퍼 0: 첫 번째 이벤트 2026.09.30 02:23:02, 마지막 이벤트 2026.09.30 03:46:03

MQL5\Files에 있는 이벤트 파일은 이벤트당 한 행을 포함합니다:

detect_time;bar_time;shift_at_detect;buffer;event;old_value;new_value;delta;drift_from_first;after_reload
2026.09.28 17:11:20;2026.09.28 17:06:00;5;0;VANISHED;4126.18400000;EMPTY;;;0

빈 값은 EMPTY로 기록되며, 정의되지 않은 차이는 공백으로 남겨지므로, 독자가 누락된 숫자를 0으로 오해할 일이 없습니다. 두 번째 파일인 <name>_summary.csv는 버퍼당 한 행을 포함하며, 모든 카운터와 지표, 매개변수, 심볼, 시간대 및 깊이를 담고 있으며, 실행 중에는 15초마다 갱신되므로 로그를 파싱하지 않고도 이벤트 파일에서 수치를 재계산할 수 있습니다. 저널은 도구를 제거할 때 시작 블록, 처음 20개의 이벤트 전체 내용, 그리고 위의 요약 정보를 가져옵니다.

사용 방법

  1. 확인하고자 하는 지표를 MQL5\Indicators 폴더에 넣고 해당 매개변수 목록을 확인하십시오.
  2. 실제로 거래하는 종목과 시간대의 차트에 Repaint Inspector를 연결하고, 경로와 매개변수를 입력한 다음 버퍼 수를 설정하십시오.
  3. 거래하는 시간 동안 도구를 실행하십시오. 리페인팅은 시계의 특성이 아니라 시장 활동의 특성이며, 조용한 일요일 저녁은 아무것도 증명하지 못합니다.
  4. 먼저 MaxShift를 확인한 다음, Changed, Appeared, Vanished 간의 구분을 살펴보고, CSV 파일을 열어 몇 행을 확인하십시오.
  5. 지표가 이 과정을 무사히 통과하면, 핸들 재로드를 30분으로 설정하고 다시 실행하십시오.

명확히 밝힌 한계

  • 이 도구는 리페인팅이 없다는 것을 증명할 수 없습니다. 단지 측정된 기간 동안 리페인팅을 발견하지 못했을 뿐이며, 이것이 바로 모든 판정 결과 옆에 비교 횟수가 표시되는 이유입니다.
  • 이 도구는 점검 간격마다 샘플링합니다. 한 간격 내에 나타났다 사라지는 값은 놓칠 수 있으며, 위의 측정 결과에서 볼 수 있듯이 1시간 30분 동안 두 번 그런 현상이 발생했습니다.
  • 이 도구는 지표가 버퍼를 통해 출력하는 내용을 측정합니다. 버퍼를 채우는 대신 차트에 객체를 그리는 지표는 이 도구에서 감지되지 않습니다.
  • 전략 테스터는 하루를 몇 초로 압축해 보여주기 때문에 유용하지만, 테스터 내 리페인팅과 실제 시장에서의 리페인팅이 자동으로 동일하다고 볼 수는 없습니다. 결과가 중요한 경우에는 실제 시장에서 실행해 보십시오.
  • 전략 테스터에서는 실행이 시작되기 전에 테스트 대상 지표가 존재하고 컴파일되어 있어야 합니다. 테스터는 IndicatorCreate 실패를 치명적인 오류로 간주하여 전문가(Expert)를 언로드하며, 이는 도구 내부의 어떤 오류 처리 기능으로도 변경할 수 없습니다: 의도적으로 잘못된 경로로 측정했을 때, OnInit에서 핸들을 생성하면 "indicator create error"가 발생하고 이어서 "OnInit critical error"가 발생하지만, 대신 첫 번째 확인 시점에 생성하면 "OnTester critical error"로 끝나는 동일한 6개의 오류 기록이 생성됩니다. 실시간 차트에서는 동일한 잘못된 경로가 치명적이지 않았습니다. 도구는 연결 상태를 유지한 채 재시도했으며, 수정된 경로를 통해 제자리에서 측정이 시작되었습니다.
  • 이는 지표가 수익을 내는지 여부와는 무관합니다. 리페인팅되지 않는 지표라도 쓸모없을 수 있으며, 일부 리페인팅 지표는 의도적으로 올바르게 사용되기도 합니다.
  • 거래 기능, DLL, 네트워크 액세스, 외부 파일이 필요하지 않습니다. 버퍼를 읽고 MQL5\Files에 CSV 파일을 작성합니다.

MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/77842

ATS Liquidity City - liquidity pools and sweeps, drawn as a neon city ATS Liquidity City - liquidity pools and sweeps, drawn as a neon city

스탑이 어디에 위치해 있을 가능성이 높은지, 그리고 어떤 스탑이 방금 발동되었는지를 보여줍니다. 유동성 풀 = 가격이 아직 돌파하지 않은 확인된 스윙 고점과 저점, 동일한 고점/저점(더 큰 풀), 그리고 전날의 고점과 저점입니다. 봉이 풀을 넘어 거래되면 ‘스윕(swept)’으로 표시되며, 같은 봉이 다시 풀 내부로 마감되면 ‘잡혔다가 거부됨(grabbed &amp; rejected)’으로 표시됩니다. 리페인팅 없음: 스윙은 양쪽에서 N개의 마감된 봉이 지난 후에만 사용됩니다. 이 패널은 CCanvas에 그려진 네온 도시입니다: 가격은 하늘을 나는 자동차, 매도 스탑은 그 아래의 타워, 매수 스탑은 그 위의 떠 있는 플랫폼, 어제의 수준은 황금색 광고판, 탐조등이 하늘을 비추고, 티커에는 오늘의 성과가 표시됩니다. 두 개의 버퍼는 전문가 자문가(Expert Advisor)에서 사용할 수 있도록 상하방에서 가장 가까운 활성 풀을 제공합니다. 지표 전용: 절대 매매를 수행하지 않습니다.

SessionEdgeTester - does a time-of-day rule beat spread and swap? SessionEdgeTester - does a time-of-day rule beat spread and swap?

Tests "buy at hour X, exit Y hours later" on your broker's own history after spread, commission and swap, with an out-of-sample split, weekday/year breakdown and an all-hours baseline.

AlertKit, one alert per event and bar, no alert spam AlertKit, one alert per event and bar, no alert spam

A small include class that stops indicator alerts from firing on every tick. One alert per event and bar, silent about history on start, popup, push, email or sound, and an optional log of every decision. Comes with a working range break indicator as an example

Rolling VWAP Deviation Regime Filter Rolling VWAP Deviation Regime Filter

A regime-classification oscillator that measures how far, and how persistently, price deviates from a rolling volume-weighted VWAP in standard-deviation units, separating trending conditions from ranging ones.