Indicator Test Report MT4
- 유틸리티
-
Narayanan Mohanan Mohanan Krishnan
저는 MetaTrader용 측정 도구를 만듭니다. 시장이 무엇을 해왔는지 기술하고, 각 측정의 한계를 감추지 않고 명시합니다. - 버전: 3.10
MetaTrader 4용 Indicator Test Report — 지표가 실제로 어떻게 작동하는지 보여주는 MT4 다시 그리기 검사기 및 지표 테스터
컴파일된 표시기 내부는 볼 수 없습니다. Indicator Test Report는 구매, 작성 또는 MetaTrader에 내장된 모든 지표를 로드하고 설명이 할 수 없는 질문에 답합니다. 다시 그리는지, 얼마나 많은 기록이 필요한지, 실제로 무엇을 게시합니까? 행동을 보고합니다. 등급을 매기지 않습니다.
Strategy Tester에 지표를 로드하고 해당 동작의 12가지 측면(공개하는 버퍼 수, 값이 의미를 갖기 전에 필요한 기록 양, 닫힌 막대의 값이 나중에 변경되는지 여부, 읽는 데 드는 비용)에 대한 일반 언어 보고서를 받으세요.
지표가 좋은지 여부에 대한 점수, 합격 표시, 평결은 없습니다. 단지 관찰된 것과 증명된 것과 증명되지 않은 것만 있을 뿐입니다.
답변 내용
1. 버퍼.지표가 실제로 게시하는 번호가 매겨진 데이터 시리즈의 수와 응답하는 가장 높은 지수입니다. 이는 차트에 표시된 것보다 더 많은 경우가 많습니다. 두 줄 표시기는 6개의 버퍼를 게시할 수 있으며 인덱스로 읽는 EA에는 실수가 필요합니다. 인덱스가 연속적이지 않은 경우 보고서에서는 그렇게 말합니다. 즉, 계산을 통한 인덱스는 잘못된 시리즈를 읽을 것입니다.
2. 계산 상태.존재하는 막대 수에 대해 대상이 계산한 막대 수입니다. 채워진 버퍼가 있는 0은 오류가 아닌 실제 명명된 상태입니다.
3. 폐쇄 바 안정성.각 막대에 표시된 첫 번째 값은 고정된 다음 나중에 읽은 모든 값과 비교됩니다. 이미 닫힌 바의 값이 나중에 변경되면 보고서는 바 시간, 버퍼 인덱스 및 두 값을 모두 제공합니다. 움직이는 현재 막대는 다시 칠해지지 않습니다. 형성 막대를 다시 계산하는 것이 정확하고 바람직합니다. 중요한 것은 나중에 값이 변경되는 닫힌 막대입니다.
4. 워밍업.각 버퍼가 값을 보유하기 전에 필요한 막대 수는 모든 응답이 0인 최근 창 대신 사용 가능한 가장 오래된 막대에서 측정됩니다. 버퍼는 당연히 다릅니다. 신호 라인은 평활화하는 시리즈보다 더 많은 히스토리가 필요합니다. 차트의 처음 50개 막대는 아직 의미가 없을 수도 있습니다.
5. 바 내 신호가 깜박입니다.닫기 전에 형성 막대가 빈 상태와 숫자 신호 사이에서 깜박이는지 여부입니다. 신호 표시기의 경우 정상입니다. 귀하의 EA가 성형 바에서 작동하는지 여부가 중요합니다.
6. 버퍼 액세스 비용.막대당 값을 검색하는 데 드는 마이크로초 비용이므로 틱당 여러 값을 읽는 EA에 예산을 책정할 수 있습니다. 절대적인 VPS 수치가 아닌 지표를 비교하기 위한 상대적 수치입니다.
7. 출력 도메인.EA의 임계값 크기 조정을 위해 각 버퍼가 방출한 최소 및 최대 값(소수점 16자리)입니다. 이는 관찰된 범위이며 결코 가능한 범위가 아닙니다.
8. 신호 지속성.화살표, 점 및 플래그의 경우: 형성 막대에 값이 나타나면 닫힐 때에도 여전히 그대로 있었습니까? 연속선은 구성에 따라 100% 점수를 얻었으며 그 숫자가 결과가 아닌 산술이기 때문에 그렇게 표시됩니다.
9. 숫자가 아닌 가치.버퍼가 숫자가 아닌 값을 내보냈는지 여부. 보다 큼과 보다 작음을 포함하여 NaN과의 모든 비교는 거짓이므로 임계값 테스트는 실행되지 않고 오류도 보고되지 않으며 산술적으로 접촉하면 NaN이 생성됩니다. 이는 대상의 결함이며 작성된 가드에는 보이지 않습니다. EMPTY_VALUE 홀로.
10. 차트 개체 공간.대상이 실행되는 동안 나타난 차트 개체 수 및 라이브 차트에서 대상이 제거된 후에도 여전히 남아 있는 개체 수. 패널, 영역 및 대시보드 표시기는 버퍼가 아닌 개체로 그려지므로 해당 제품의 경우 매번 확인 시 빈 절반을 측정합니다. 청소되지 않는 표시기는 손으로 치운 잔해물을 남깁니다.
11. 모델 의존성.테스터 모델만 변경하여 두 번 실행합니다. 모든 틱과 1분 OHLC는 시뮬레이션된 가격 경로가 다르기 때문에 바 내 움직임에 의도적으로 반응하는 지표는 합법적으로 다를 수 있습니다. 대상이 폐쇄 막대 값을 최종적으로 주장하는 시점이 중요합니다.
12. 역사 의존성.날짜 범위만 변경하여 두 번 실행합니다. 차이는 이전 기록의 양에 따라 대상이 동일한 막대에 대해 서로 다른 값을 보고한다는 것을 의미합니다. 즉, 백테스트가 실시간 차트와 일치하지 않게 만드는 결함입니다.
이미 알고 있는 것에 시도해 보세요.
다음을 통해 도달할 수 있는 모든 것을 읽습니다. iCustom, MetaTrader 자체 지표를 포함합니다. ZigZag를 가리키십시오. ZigZag가 다시 칠해진다는 것은 누구나 알고 있으며 보고서에는 변경된 막대와 두 값이 모두 표시됩니다. Ichimoku를 가리키고 미래에 이동된 두 개의 범위가 그렇지 않은 세 개와 다르게 동작하는 것을 확인하세요. 이미 알고 있는 동작을 나타내는 지표와 비교하여 도구를 확인하는 것이 방금 구입한 도구를 신뢰할지 여부를 결정하는 가장 빠른 방법이며 비용도 들지 않습니다.
이 도구의 테스트 방법
모든 점검은 의도적으로 오작동하는 특수 제작 지표에 대해 검증되었습니다. 매 틱마다 기록의 모든 막대를 다시 쓰는 지표, 숫자가 아닌 값을 내보내는 지표, 399바의 워밍업이 필요한 지표, 제거 시 차트 개체를 남기는 지표입니다. 바 시간과 전후 값을 통해 수표가 그들을 포착했습니다. 다른 사람의 지표를 보고하는 도구는 자체 테스트 방법을 말할 수 있어야 합니다.
엔진은 또한 서로 반대 방향으로 작동합니다. MetaTrader 4와 MetaTrader 5에서 측정된 동일한 지표는 12개 검사 중 10개에 동의합니다. 다른 두 가지는 보고서에 표시된 플랫폼 사실입니다. MetaTrader 4에는 BarsCalculated 지표를 조기에 언로드할 방법이 없기 때문에 이러한 검사는 편안한 0을 보고하는 대신 측정할 수 없는 것을 말합니다.
지표를 사지 않고 쓴다면
동일한 보고서는 다른 질문에 대한 답변입니다. 내 제품이 실제로 어떤 역할을 하며 설명에서 그렇게 말할 수 있습니까? 닫힌 막대 값이 최종적이라는 주장은 그 뒤에 있는 비교 횟수가 있을 때 더 가치가 있습니다. 그리고 리뷰어에게 찾는 것보다 직접 다시 칠하는 것이 더 낫습니다.
두 플랫폼 모두에서 실행하면 MT4와 MT5 빌드가 서로 다른 버퍼 수, 이동된 워밍업, 한쪽에서만 변경되고 다른 쪽에서는 변경되지 않는 값 등 쌍이 표시됩니다. 이러한 차이는 일반적으로 두 제품을 모두 구입한 사람의 별 1개 리뷰로 전달됩니다.
생성된 코드 조각은 워밍업, 범위, 비어 있는지 여부와 함께 이름이 지정된 모든 버퍼와 같이 직접 작성하게 될 통합 문서입니다. 배송하거나 설명에 붙여넣으세요. 이는 클레임이 아니라 측정된 제품의 동작입니다.
하지 않는 것
신호에 우위가 있는지, 지표가 구매할 가치가 있는지, 전략이 수익성이 있는지 여부는 알려주지 않습니다. 등급, 점수, 순위를 매기지 않습니다. 소스 코드를 읽지 않고 문서화된 버퍼 인터페이스를 통해 관찰 가능한 동작만 읽습니다. 자체 기본 입력으로 대상을 실행합니다.
발견은 잘못이 아니다
다시 칠하기, 긴 워밍업, 바 내 이동 및 차트 개체는 디자인 선택이며 많은 좋은 지표가 이를 의도적으로 만듭니다. 이 도구는 무슨 일이 일어났는지 측정합니다. 판매자 자신의 설명만이 의도된 것인지 여부를 알 수 있습니다. 모든 보고서에는 해당 문장과 함께 한 가지가 더 포함됩니다. 놀라운 점이 있으면 개발자에게 문의하세요. 보고서는 판매자에게 제출할 수 있는 좋은 질문입니다. 그들에 대해 출판하는 것은 증거가 아니며 그렇게 되도록 만들어진 것도 아닙니다.
깨끗한 결과는 증거가 아닙니다
모든 Indicator Test Report에는 자체 텍스트가 나와 있습니다. 하나의 실행은 하나의 기호, 하나의 기간, 하나의 기간, 하나의 테스터 모델입니다. 보고서에는 특정 실행을 확인하는 테스트가 불가능하다고 명시되어 있습니다. 틱 수가 너무 적은 실행은 바 내 동작을 테스트할 수 없으며 편안한 0을 보고하는 대신 그렇다고 말합니다. 관찰의 부재는 부재의 증거가 아닙니다.
각 보고서는 12개 검사 모두에 대한 한 화면 요약과 동일한 대상에 대한 모든 이전 실행의 표로 끝나므로 서로 다른 조건에 대한 여러 실행을 세트로 읽을 수 있습니다.
입력
- 지표 이름— 폴더를 포함하여 네비게이터에 나타나는 것과 정확히 같은 대상입니다. 시장 제품이 아래에 있습니다. Market\ 그리고 그 자체의 이름; 아래의 MetaTrader 샘플 Examples\. 이를 잘못 이해하는 것이 실행을 중단시키는 한 가지 실수이며, 보고서는 조용히 실패하지 않고 평이한 언어로 그렇게 말합니다.
- 먼저 이 많은 바를 기다리세요— 차트에 이만큼의 기록이 포함될 때까지 보고서는 시작되지 않습니다. 기본값은 500입니다.
- 다시 칠하는 것을 관찰하기 위한 닫힌 막대— 각 틱이 얼마나 멀리 다시 읽고 비교되는지. 이는 검사 3의 깊이입니다. 기본값은 300입니다.
- 보고하기 전에 살펴봐야 할 새로운 막대 — 샘플 크기.이 많은 막대가 닫힌 후에 실행이 종료되므로 숫자가 작을수록 지름길이 아니라 약한 테스트입니다. 기본값은 200입니다.
- 워밍업을 조사할 최대 기록— 각 버퍼에서 첫 번째 실제 값을 찾기까지 얼마나 오래 전으로 거슬러 올라갑니다. 기본값은 10000입니다.
- 숫자 다시 그리기 검사에 대한 허용 오차— 이 아래에서는 차이가 변경이 아닌 부동 소수점 노이즈로 처리됩니다. 값의 크기에 따라 확장되므로 가격 계열과 볼륨 계열이 동일한 조건으로 판단됩니다. 기본값은 0.00000001입니다.
- 기준: 자동/잠금/재설정— 두 번째 실행이 무엇과 비교되는지 결정합니다. 자동은 대부분의 사람들이 대상을 두 번 실행한다는 것을 의미합니다. 첫 번째 실행은 참조를 설정하고 나중에 실행은 이를 대체하지 않고 비교합니다. 기본 자동.
- 라벨 실행— 두 번의 실행 사이에 변경된 내용을 선언하는 방법. MetaTrader는 어떤 테스터 모델이 실행 중인지 알 수 있는 방법을 프로그램에 제공하지 않으므로 보고서는 반복에서 모델 변경을 알 수 있는 유일한 방법입니다.
- 대상 표시 이름— 읽을 수 있는 보고서 헤더의 이름입니다. 표시 이름이 측정된 항목의 ID를 대체해서는 안 되기 때문에 파일 경로는 여전히 옆에 표시됩니다.
- 즉시 사용 가능한 EA 스니펫 작성— 기본적으로 켜져 있습니다. 보고서만 원할 경우 이 기능을 끄십시오.
- 출력 파일 접두사— 하나의 요약을 공유하는 대신 동일한 대상에 대한 두 개의 실행을 별도의 파일에 기록할 수 있습니다.
스크린샷이 보여주는 것
- 스냅샷.한 화면에 12개의 검사가 모두 표시됩니다. 모든 실행은 보고서에 포함된 내용이 무엇이든 이 블록으로 끝납니다.
- 발견.막대 시간과 두 값 모두와 함께 값이 변경된 닫힌 막대입니다. 이것이 바로 도구의 목적입니다. 나머지는 맥락이다.
- 두 플랫폼 모두.MetaTrader 4와 MetaTrader 5에서 동일한 지표가 측정되므로 두 보고서를 한 줄씩 비교할 수 있습니다.
- 정직한 거절.통과로 읽혀지는 0을 인쇄하는 대신 무언가를 테스트할 수 없어서 그렇다고 말하는 실행입니다.
- 생성된 조각입니다.즉시 사용 가능한 .mqh 이름이 지정된 모든 버퍼와 이미 읽기 기능이 있는 실행으로 작성된 파일입니다.
스크린샷 읽기
호박색은 빨간색이 아닙니다.호박색 판결은 다음을 의미합니다.행동이 발견되었으며 여기에 증거가 있습니다, 아니다이 표시기가 고장났어요. 다시 그리기, 긴 워밍업 및 차트 개체는 디자인 선택이며 많은 좋은 지표가 이를 의도적으로 만듭니다. 보고서는 막대 시간과 두 값을 모두 제공하므로 개발자에게 이에 대해 물어볼 수 있으며 페이지에서 수행하도록 지시합니다.
파란색 평결은 이해할만한 가치가 있는 평결입니다. [NOT TESTED] 그리고 [NOT FOUND] 실행이 무언가를 측정할 수 없다는 것을 의미합니다. 틱 수가 너무 적거나 스캔이 최고치에 도달했습니다. 패스가 아닙니다. 대부분의 도구는 거기에서 편안한 0을 인쇄합니다. 이것은 질문에 대한 답변이 없다는 것을 알려주는 것입니다. 이는 측정과 확신의 차이입니다.
패리티 이미지는 두 플랫폼에서 측정된 동일한 표시기를 보여 주므로 두 보고서를 한 줄씩 비교할 수 있습니다. 이미지에 표시된 결과는 시장에 있는 제품이 아닌 해당 목적을 위해 의도적으로 깨진 테스트 표시기에서 나온 것입니다.
스크린샷에 대해서.모든 이미지는 실제 실행에서 캡처됩니다. 보고서는 모형이 아닌 도구가 작성하는 파일입니다. 이러한 이미지는 MetaTrader 4에서 캡처됩니다. 왜냐하면 12개의 수표 중 2개가 합법적으로 다르게 읽혀지고 MetaTrader 4 목록에 MetaTrader 5 결과가 표시되면 이를 잘못 나타낼 수 있기 때문입니다. 패리티 이미지는 동일한 표시기에 두 플랫폼을 나란히 표시합니다. 12개 검사 중 10개는 동일하며, 다른 2개는 보고서에 이름이 지정됩니다. 이 두 가지는 포트가 얼마나 세심하게 작성되었는지가 아니라 PLATFORM이 무엇을 제공할 수 있는지의 문제입니다. MQL4에는 BarsCalculated 기능을 수행하며 표시기를 조기에 언로드할 수 있는 방법이 없습니다. MetaTrader 4 빌드에는 아무것도 남지 않았습니다. 이는 MetaTrader 4가 보고할 수 있는 모든 것을 보고하고, 보고할 수 없는 곳에서는 그렇게 말합니다. 이 도구는 측정할 수 없는 내용을 설명하기 위해 만들어졌으며 해당 내용은 자체 목록에 먼저 적용됩니다.
산출
텍스트 보고서, 교차 실행 비교를 위한 CSV 기준 및 누적 요약(실행당 한 행)이 공유 Files 폴더에 기록되어 실행 간에 유지됩니다. 비교 결과 값이 발견되면 서로 다른 모든 값이 자체 CSV에 기록됩니다.
바로 사용할 수 있는 코드 조각: 컴파일 가능한 .mqh 실행한 플랫폼에 대해 이미 작성된 읽기 기능을 사용하여 모든 라이브 버퍼의 이름, 워밍업, 관찰된 범위 및 비어 있는지 여부를 지정합니다. 이는 전화를 건 사람이 재판을 통해 발견하게 될 내용입니다. 실행에서 닫힌 막대 변경 사항이나 NaN 값이 발견된 경우 스니펫은 상단에 이를 표시하고 그에 대한 결과가 없는 버퍼를 예시로 가리킵니다.
만기일에 신용
버퍼 읽기 접근 방식은 다음과 같습니다.ICustom 표시기 테스터작성자: Piotr Latoszynski, 2020년부터 무료로 제공됩니다. 변경된 폐쇄 막대 값을 감지하기 위한 동결 및 비교 방법은 Brahim Ben Abla가 mql5.com 게시물 772704(2026년 7월 17일)에서 실수와 함께 설명했습니다. 방법은 그의 몫이고 배송만 내 몫이다.
MetaTrader 4의 차이점
12개 수표 중 10개는 동일한 지표를 기반으로 하는 MetaTrader 5 빌드와 동일하게 읽혀집니다. 둘은 할 수 없다: MQL4에는 없다 BarsCalculated, 따라서 계산 상태는 경험적 조사이며 레이블이 지정됩니다.[MT4 프록시]; MQL4는 표시기를 조기에 언로드할 수 없으므로 차트 객체 정리 질문은 라이브 차트에서만 답변되고 읽혀집니다.[테스트되지 않음]전략 테스터에서. 둘 다 숨겨진 것이 아니라 보고서에 이름이 지정됩니다. 이 도구의 제한이나 포트의 지름길도 아닙니다. 이는 MetaTrader 4 자체의 용량이며 보고서는 편안한 0을 보고하는 대신 두 가지 중 어느 것을 보고 있는지 알려줍니다.
메모
- 보고서를 작성하는 Expert Advisor 입니다. 절대 거래되지 않습니다.주문을 하지 않고, 포지션을 개설 및 청산하지 않으며, 귀하의 계정에 아무 것도 건드리지 않습니다. 지표를 읽고 텍스트 파일을 작성합니다.
- 자동 거래를 활성화해야 합니다.MetaTrader는 거래 여부에 관계없이 해당 권한 뒤에 있는 모든 Expert Advisor를 제어하므로 버튼을 끄면 터미널이 프로그램 호출을 중지하고 보고서나 오류가 표시되지 않습니다. 실제 계정에서 활성화하지 않으려면 데모 계정에 연결하세요. 결과는 동일합니다. 여기에는 계정에 따라 달라지는 것이 없기 때문입니다.
- Strategy Tester와 수표에 실제 틱이 필요한 라이브 차트에서 실행됩니다. 문서화된 내용을 통해 대상을 읽습니다. iCustom 인터페이스.
- 자체 표시기 핸들을 내부적으로 구축하는 일부 대상은 계산된 상태를 보고하지 않습니다. 보고서는 0을 보고하는 대신 해당 사례의 이름을 지정합니다.
- 출력은 공유 파일 폴더로 이동하므로 보고서는 실행 간에 유지되며 각각 하나의 요약 행을 누적합니다.
- 여러 인스턴스가 지원됩니다.두 개의 차트는 동시에 서로 다른 기호를 측정할 수 있으며, 두 실행 모두 서로를 덮어쓰지 않고 동일한 누적 요약에 추가됩니다. 두 인스턴스가 1초 간격으로 완료되는 테스트를 거쳤습니다. 두 기록을 별도로 유지하려면 서로 다른 출력 접두사를 지정하세요.
- 외부 종속성이 없습니다. 라이브러리나 다른 표시기를 호출하지 않습니다.
| 이 개발자의 추가 도구 저는 종가 기준 로직, 검증된 버퍼, 다른 지표에 대한 의존성 없음을 원칙으로 깔끔하고 문서화된 코드를 지향하며 MetaTrader 지표와 EA를 개발합니다. 이 도구는 누군가에게 그 주장을 믿어달라고 하기 전에, 제 작업에서 먼저 확인하고 싶었기에 만들었습니다. 보고서에서 예상치 못한 내용을 발견했거나 12개 항목에 포함되지 않은 수표를 원하시나요? 나에게 개인 메시지를 보내주세요. 기꺼이 답변해 드리겠습니다. |
개발 및 유지 관리: Narayanan Mohanan, ML/Python/MQL Developer.
이 페이지의 번역에서 오류를 발견하시면 알려주시기 바랍니다. 확인 후 수정하겠습니다.
