당사 팬 페이지에 가입하십시오
- 조회수:
- 12
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
거의 모든 지표 설명에는 “리페인팅 없음”이라는 문구가 포함되어 있습니다. 그러나 숫자가 명시된 경우는 거의 없습니다. 이 문구는 거짓일 수 없습니다. 왜냐하면 이에 대한 검증 절차가 따로 없기 때문입니다. 확인해 본 적이 없는 개발자와 철저히 확인한 개발자 모두 똑같은 문장을 작성하기 때문입니다. 이 스크립트는 해당 문구를 구체적인 수치로 대체합니다.
불변 조건
한 번 막대가 마감되어 처리되면, 해당 지표가 그 막대에 그린 어떤 객체도 절대 변경되어서는 안 됩니다. 위치가 이동해서는 안 되고, 색상이 바뀌어서는 안 되며, 텍스트가 변경되어서는 안 되고, 사라져서는 안 됩니다. 이는 거짓일 가능성이 있는 주장이기 때문에, 테스트해 볼 가치가 있습니다.
방법
사용자 정의 심볼에 실제 시세 데이터의 초기화 슬라이스를 적용하고, 템플릿을 통해 지표를 연결한 뒤, 지표가 그리는 모든 객체를 기록합니다. 더 많은 바를 추가하고 차트를 전체 재계산하도록 강제하여, 지표가 더 긴 시세 데이터에 대해 모든 객체를 처음부터 다시 구축하도록 합니다. 이미 마감된 막대에 위치한 이전 단계의 각 객체는 새로운 단계에서 조회되어 필드별로 비교됩니다: 두 앵커 시간, 두 앵커 가격, 색상 및 텍스트. 사용자가 지정한 단계 수만큼 이 과정을 반복합니다.
전체 재구성은 증분 틱보다 더 까다로운 테스트입니다. 지표는 지난번에 무엇을 그렸는지 기억하지 못한 채, 서로 다른 배열 인덱스를 사용하여 더 긴 기록에서 동일한 맵을 재현해야 합니다. 이는 사용자가 터미널이 더 오래된 바를 불러올 수 있을 만큼 충분히 뒤로 스크롤할 때 정확히 유발되는 상황이며, 바로 이때 바 ‘시간’이 아닌 바 ‘인덱스’를 기준으로 한 객체 이름 체계가 한계에 부딪히게 됩니다.
중요한 점
변경 사항과 소멸은 별도로 집계되며, 변경이 발생한 경우에만 주장이 거짓으로 간주됩니다. 대부분의 그리기 지표는 제한값을 초과하면 의도적으로 오래된 객체를 제거하므로, 객체가 사라지는 현상은 대개 결함이 아니라 사용자가 설정한 MaxObjects 또는 HistoryBars 설정 때문인 경우가 많습니다. 이러한 제한을 해제하고 실행해 보십시오.
비교 대상이 없는 실행 결과는 ‘INCONCLUSIVE’로 보고되며, 절대 ‘통과’로 보고되지 않습니다. 테스트 하네스에서 발생할 수 있는 가장 위험한 버그는 빈 실행에 대해 성공으로 보고하는 것인데, 이는 결국 인용되는 수치가 되기 때문입니다.
출력 결과는 MQL5\Files 폴더에 CSV 파일로 저장되며, 심볼, 시간대, 단계별로 한 행씩 구성됩니다. 여기에는 비교된 개체 수, 변경된 개체 수, 사라진 개체 수와 첫 번째 문제 개체가 포함됩니다. 'marks_compared' 열의 값을 합산하면 공개할 수 있는 수치를 얻을 수 있으며, 이를 뒷받침하는 파일도 함께 확보하게 됩니다.
사용법
1. ‘Prefix’를 지표의 객체 이름 접두사로 설정하십시오. ‘Exclude’에는 설계상 변경되는 모든 항목(예: 매 틱마다 다시 그려지는 범례, 카운트다운 타이머)을 나열하십시오. 이러한 항목들은 마크가 아닙니다. 이를 여기서 명시적으로 선언하는 것이 조용히 필터링하는 것보다 더 정직합니다.
2. 모든 그리기 제한이 해제된 상태로 지표가 적용된 차트를 템플릿으로 저장하십시오. 그런 다음 ‘템플릿’을 해당 템플릿으로 지정하십시오.
3. 첫 번째 통과 시 마크 수가 실행 간에 더 이상 변하지 않을 때까지 SettleMs 값을 높여보세요. 값이 너무 작으면 오류가 발생하지는 않지만, 마크가 갑자기 사라지는 현상이 발생할 수 있습니다.
4. 의도적으로 한 번 오류를 발생시켜 보세요: 객체 하나를 한 칸 이동시킨 다음, 스크립트가 이를 보고하며 해당 필드의 이름을 명시하는지 확인하세요. 한 번도 오류가 발생한 적이 없는 테스트 세트는 아직 증거가 되지 않습니다.
이것이 알려주지 않는 것
지표가 정확한지, 그 신호가 유용한지 여부는 알려주지 않습니다. 이 지표는 한 가지 좁은 질문에 답할 뿐이며, 그 답이 가치가 있는 유일한 이유도 바로 그 점 때문입니다.
테스트처럼 보이지만 실제로는 아닌 두 가지 테스트가 있었는데, 둘 다 이번 테스트 전에 시도되었다가 배제되었습니다. 첫 번째는 ‘전략 테스터(Strategy Tester)’로, 여기서 iCustom 기반 지표의 객체들은 MT4의 EA에서 전혀 열거할 수 없습니다; 그리고 실전 차트에서 지표 자체의 HistoryBars 입력값을 변경하는 방법인데, 이 경우 루프 시작 지점은 바뀌지만 rates_total과 모든 배열 인덱스는 그대로 유지되므로, 이 테스트가 포착하기 위해 존재하는 버그 클래스는 결코 실행되지 않습니다.
무료이며, 출처 표기도 필요 없습니다. 여러분의 코드에서 무언가를 발견한다면, 그 내용을 알려주시면 감사하겠습니다.

MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/76632
Sniper Gold Hybrid Recovery EA
XAUUSD M15 바스켓 회복 EA로, 적응형 ATR 간격 설정, LL/LH 구조 검증, 동적 RSI 게이트, 급락 감지, 뉴스 필터 및 스마트 트레이드 트리밍 기능을 갖추고 있습니다.
Volume Profile Levels Indicator
최근 룩백 창을 기준으로 수평 거래량 히스토그램을 생성하고, 단순히 POC ± 고정 오프셋을 사용하는 것이 아니라 표준 TPO/거래량 가치 영역 확장 알고리즘을 사용하여 제어점(POC)과 가치 영역을 표시합니다. 새로운 바가 생성될 때마다 한 번씩 갱신되며, 가격 차트 옆의 사이드바로 표시됩니다.
Support Resistance zig zag based
지지·저항 지그재그 기반 지표는 차트에 지지선, 저항선 및 전환 구역(플립 존)을 자동적이고 동적으로 표시하도록 설계된 가격 행동(Price Action) 지표입니다. 이 지표는 명확한 가격 구조를 시각화하고 주요 반등 구역(SBR 및 RBS)을 강조하는 데 전적으로 초점을 맞춥니다. 또한 실시간 시장 추세를 모니터링할 수 있는 대화형 대시보드도 포함되어 있습니다.
iFVG Indicator With Signals
iFVG Indicator With Signals