Indicator Test Report MT4
- ユーティリティ
-
Narayanan Mohanan Mohanan Krishnan
私は MetaTrader 向けの測定ツールを作っています。相場が何をしてきたかを記述し、各測定の限界を隠さずに明示します。 - バージョン: 3.10
MetaTrader 4 のIndicator Test Report — インジケーターが実際にどのように動作するかを示す MT4 再描画チェッカーおよびインジケーター テスター
コンパイルされたインジケーターの内部を見ることはできません。Indicator Test Reportは、購入、作成、または MetaTrader に組み込まれたあらゆるインジケーターを読み込み、再描画するのか、どのくらいの履歴が必要なのか、実際に何を公開するのかなど、説明では説明できない質問に答えます。行動を報告してくれます。採点はしません。
ストラテジーテスターに任意のインジケーターをロードすると、その動作の 12 の側面に関する平易な言語のレポートが得られます。つまり、発行するバッファーの数、値が意味を持つ前にどれだけの履歴が必要か、閉じたバーの値がその後変更されるかどうか、読み取りにかかるコストなどです。
指標が優れているかどうかについてのスコアや合格点、評決はありません。観察されたことと、それが何を証明し、何が証明しないのかだけが考慮されます。
答えは何ですか
1. バッファー。インジケーターが実際に公開する番号付きデータ シリーズの数と、応答する最高のインデックス。これは多くの場合、チャートで示されているよりも多くなります。2 行のインジケーターは 6 つのバッファーを発行する可能性があり、インデックスによる EA 読み取りには実数が必要です。インデックスが連続していない場合、レポートにはそのように記載されています。カウントによるインデックス付けでは、間違った系列が読み取られることになります。
2. 計算状態。存在するバーの数に対してターゲットが計算したバーの数。バッファに値が設定されたゼロは、エラーではなく実際の名前付き状態です。
3. クローズドバーの安定性。各バーで確認された最初の値は凍結され、その後のすべての読み取り値と比較されます。すでに閉じているバーの値がその後変更された場合、レポートにはバータイム、バッファーインデックス、および両方の値が表示されます。移動している現在のバーは再描画されません。形成中のバーを再計算することは正しく、望ましいことです。重要なのは、値が後で変更される閉じたバーです。
4. ウォーミングアップ。各バッファーが値を保持する前に必要なバーの数。すべての答えがゼロになる最近のウィンドウではなく、利用可能な最も古いバーで測定されます。バッファーは当然のことながら異なります。信号線には、平滑化する系列よりも多くの履歴が必要です。チャートの最初の 50 バーはまだ意味を持たない可能性があります。
5. バー内信号がちらつきます。閉じる前にフォーミングバーが空と数値信号の間で点滅するかどうか。信号インジケーターとしては正常です。 EA がフォーミングバーに作用するかどうかが重要です。
6. バッファアクセスコスト。バーごとの値の取得にかかるマイクロ秒のコスト。これにより、ティックごとに複数の値を読み取る EA を予算化できます。絶対的な VPS 数ではなく、インジケーターを比較するための相対的な数値。
7. 出力ドメイン。EA のしきい値のサイジングに使用される、各バッファーが出力した最小値と最大値 (小数点以下 16 桁まで)。これらは観察された範囲であり、決して可能な範囲ではありません。
8. 信号の持続性。矢印、ドット、およびフラグの場合: フォーミングバーに値が表示された場合、その値は終了時にまだ存在していましたか?連続線は構成によって 100% のスコアを獲得し、その数値が結果ではなく算術演算であるため、そのようにマークされます。
9. 非数値。数値ではない値を出力したバッファーがあるかどうか。 NaN との比較はすべて false (大なり、小なりを含む) であるため、しきい値テストは起動せず、エラーも報告されません。また、しきい値に接触する算術演算はすべて NaN を生成します。これはターゲットの欠陥であり、それに対して書かれたガードには見えません。EMPTY_VALUE 一人で。
10. チャートオブジェクトのフットプリント。ターゲットの実行中に表示されたチャート オブジェクトの数と、ライブ チャート上で削除された後にまだ存在していたチャート オブジェクトの数。パネル、ゾーン、およびダッシュボードのインジケーターはバッファーではなくオブジェクトを使用して描画するため、これらの製品では、1 つおきのチェックで空の半分が測定されます。インジケーターを掃除しないと、手作業で取り除いた破片が残ります。
11. モデル依存性。テスターの機種のみを変更して2回実行します。すべてのティックと 1 分足の OHLC は異なるシミュレートされた価格パスであるため、バー内の動きに意図的に反応するインジケーターは正当に異なる可能性があります。ターゲットがクローズドバー値が最終的であると主張する場合は重要です。
12. 歴史依存性。日付範囲のみを変更して 2 回実行します。違いとは、ターゲットが以前の履歴の量に応じて、同じバーに対して異なる値を報告することを意味します。これは、バックテストがライブ チャートと一致しない原因となる欠陥です。
すでに知っているもので試してみる
経由で到達可能なものはすべて読み取ります iCustom、MetaTrader 独自のインジケーターを含みます。 ZigZag をポイントします。ZigZag が再描画することは誰もが知っています。レポートには、変更されたバーと両方の値が表示されます。それを一目に向けて、未来にシフトされた 2 つのスパンが、そうでない 3 つのスパンとは異なる動作をするのを観察してください。動作がすでにわかっているインジケーターに対してツールをチェックすることは、購入したばかりのインジケーターを信頼するかどうかを判断する最も速い方法であり、費用はかかりません。
このツールのテスト方法
すべてのチェックは、意図的に誤動作する専用のインジケーターに対して検証されました。ティックごとに履歴内のすべてのバーを書き換えるもの、非数値を出力するもの、399 足のウォームアップが必要なもの、削除されたときにチャート オブジェクトを残すものなどです。チェックでは、小節時間とその前後の値が検出されました。他の人の指標についてレポートするツールは、それ自体がどのようにテストされたかを伝えることができる必要があります。
エンジンは相互に動作することもあります。 MetaTrader 4 と MetaTrader 5 で測定された同じ指標は、12 のチェックのうち 10 で一致します。異なる 2 つはプラットフォームの事実であり、レポートにラベルが付けられています。MetaTrader 4 には何もありません。BarsCalculated また、インジケーターを早期にアンロードする方法がないため、これらのチェックでは快適なゼロを報告するのではなく、測定できなかったことを報告します。
インジケーターを購入するのではなく作成する場合
同じレポートが、別の質問、つまり自分の製品が実際に何をするのか、説明文でそう言えばよいのか、という質問に答えています。閉じたバーの値が最終的なものであるという主張は、その背後にある比較の数を考慮するとより価値があります。また、再描画をレビューアに見つけてもらうよりも自分で見つける方が良いです。
両方のプラットフォームで実行すると、MT4 と MT5 のビルドがどこで分岐しているかが表示されます。バッファ数の違い、ウォームアップの移動、一方では変化しもう一方では変化しない値などです。通常、その相違点は、両方を購入した人からの 1 つ星のレビューとして届きます。
生成されたスニペットは、通常は手動で作成する統合ドキュメントです。すべてのバッファーの名前、ウォームアップ、範囲、バッファーが空になるかどうかが含まれます。それを発送するか、独自の説明に貼り付けてください。それは測定された製品の動作であり、主張ではありません。
できないこと
シグナルにエッジがあるかどうか、インジケーターに購入の価値があるかどうか、または戦略が収益性があるかどうかはわかりません。採点、得点、ランク付けは行いません。ソース コードは読み取られません。文書化されたバッファ インターフェイスを通じて観察可能な動作のみです。独自のデフォルト入力でターゲットを実行します。
発見は間違いではありません
再描画、長いウォームアップ、バー内移動、チャートオブジェクトは設計上の選択であり、多くの優れたインジケーターはこれらを意図的に作成しています。このツールは何が起こったかを測定します。それが意図されたものであるかどうかは、販売者自身の説明のみでわかります。すべてのレポートには次の文が含まれており、さらにもう 1 つ、「何か驚いたことがあれば、開発者に尋ねてください」という一文があります。レポートは販売者に提出する良い質問です。それは彼らに不利な証拠を公開するものではなく、そのように作られたものでもありません。
クリーンな結果は証拠ではありません
すべてのインジケーターテストレポートには、独自のテキストでそのように記載されています。 1 回の実行は 1 つのシンボル、1 つのタイムフレーム、1 つの期間、1 つのテスター モデルです。レポートでは、特定の実行でどのチェックがテストできなかったかを述べています。ティックが少なすぎる実行ではバー内の動作をテストできず、快適なゼロを報告するのではなく、そのように述べています。観察の欠如は欠席の証明にはなりません。
各レポートの最後には、12 個のチェックすべての 1 画面の概要と、同じターゲットでの以前のすべての実行の表が表示されるため、異なる条件での複数の実行をセットとして読み取ることができます。
入力
- インジケーター名— ナビゲータに表示されるとおりのターゲット (フォルダも含む)。マーケット製品は以下にあります Market\ そしてそれ自体の名前。以下の MetaTrader サンプル Examples\。これを間違えることは、実行を停止させる唯一の間違いであり、レポートでは、黙って失敗するのではなく、わかりやすい言葉でそう述べています。
- 最初にこの数のバーを待ちます— チャートにこれだけの履歴が保持されるまで、レポートは開始されません。デフォルトは 500。
- 閉じたバーは再塗装に注意する必要があります— 各ティックをどれだけ遡って再読み取りして比較するか。チェック 3 の深さです。デフォルトは 300 です。
- 報告する前に注目すべき新しいバー — サンプルサイズ。この数のバーが閉じた後に実行が終了するため、数値が小さいとテストは弱くなり、近道ではありません。デフォルトは 200。
- ウォームアップを調査するための最大履歴— 各バッファーの最初の実数値をどれだけ遡って検索するか。デフォルトは 10000。
- 数値再描画チェックの許容範囲— これより下では、差分は変化ではなく浮動小数点ノイズとして扱われます。値の大きさに比例するため、価格系列と出来高系列は同じ条件で判断されます。デフォルトは 0.00000001。
- ベースライン: 自動 / ロック / リセット— 2 回目の実行を何と比較するかを決定します。自動とは、ほとんどの人がターゲットを 2 回実行することを意味します。最初の実行で参照を設定し、その後の実行で置き換えずに比較します。デフォルトの自動。
- 実行ラベル— 2 回の実行の間に何を変更したかをどのように宣言するか。 MetaTrader では、プログラムではどのテスター モデルが実行されているかを確認する方法が提供されないため、レポートでモデルの変更と反復を区別できる唯一の方法はラベルです。
- ターゲットの表示名— レポートヘッダーの読みやすい名前。ファイル パスは引き続きその横に表示されます。これは、測定された内容を表示名で置き換えてはいけないためです。
- すぐに使用できる EA スニペットを作成する— デフォルトでオン。レポートのみが必要な場合はオフにします。
- 出力ファイルのプレフィックス— 同じターゲットで 2 つの実行を実行すると、1 つのサマリーを共有するのではなく、別々のファイルに書き込むことができます。
スクリーンショットが示すもの
- スナップショット。12 個のチェックすべてが 1 つの画面に表示されます。レポートに含まれる他の内容に関係なく、すべての実行はこのブロックで終了します。
- 発見です。値が変更された閉じたバー。バータイムと両方の値が表示されます。これがこのツールの目的です。残りはコンテキストです。
- 両方のプラットフォーム。同じインジケーターが MetaTrader 4 と MetaTrader 5 で測定されるため、2 つのレポートを行ごとに比較できます。
- 正直な拒否です。何かをテストできず、パスとして読み取られるゼロを出力する代わりに、その旨を示す実行。
- 生成されたスニペット。すぐに使える .mqh 実行によって書き込まれたファイル。すべてのバッファーに名前が付けられ、読み取り関数がすでに配置されています。
スクリーンショットを読む
琥珀は赤ではありません。アンバー判決の意味は、ある行動が見つかりました。これがその証拠です、 ないこのインジケーターは壊れています。再描画、長いウォームアップ、チャート オブジェクトは設計上の選択であり、多くの優れたインジケーターはこれらを意図的に行っています。レポートにはバータイムと両方の値が表示されるため、開発者にそれについて尋ねることができ、それがこのページで指示されているとおりです。
青の評決は理解に値するものです。 [NOT TESTED] そして [NOT FOUND] これは、実行で何かを測定できなかったことを意味します。ティックが少なすぎるか、スキャンが上限に達しました。それらはパスではありません。ほとんどのツールはそこに快適なゼロを出力します。これは質問に答えていないことを示しており、それが測定と安心の違いです。
パリティ イメージには、両方のプラットフォームで測定された同じ指標が表示されるため、2 つのレポートを行ごとに比較できます。画像に示されている所見は、市販の製品ではなく、その目的のために書かれた意図的に壊れたテストインジケーターによるものです。
スクリーンショットについて。すべての画像は実際の実行からキャプチャされたものです。レポートはツールが書き込むファイルであり、モックアップではありません。これらの画像は MetaTrader 4 でキャプチャされます。これは、12 個の小切手のうち 2 つが、そこでは正当に異なって読み取られ、MetaTrader 4 のリストに MetaTrader 5 の出力を表示すると、それが誤って表示されてしまうためです。パリティ画像は、同じインジケーター上に両方のプラットフォームを並べて示しています。12 個のチェックのうち 10 個は同一で、異なる 2 個はレポート内で名前が示されています。これら 2 つは、ポートがどれだけ慎重に記述されたかではなく、プラットフォームが何を提供できるかの問題です。MQL4 には、BarsCalculated 機能があり、インジケーターを早期にアンロードする方法がありません。 MetaTrader 4 のビルドには何も残されていません。MetaTrader 4 がレポートできるすべてのものをレポートし、レポートできない箇所にはその旨を表示します。このツールは、測定できなかったことを説明するために構築されており、それが最初に独自のリストに適用されます。
出力
テキスト レポート、クロス実行比較用の CSV ベースライン、および累積概要 (実行ごとに 1 行) が共有ファイル フォルダーに書き込まれるため、実行間で存続します。比較で値が見つかると、すべての異なる値が独自の CSV に書き込まれます。
すぐに使えるコード スニペット: コンパイル可能な .mqh すべてのライブ バッファー、そのウォームアップ、その観測範囲、およびバッファーが空になるかどうかに名前を付けます。実行したプラットフォーム用にすでに作成された読み取り関数を使用します。それは、発信者が試してみることで発見するものです。実行で閉じたバーの変更または NaN 値が見つかった場合、スニペットはその旨を上部に示し、その例をバッファーに示しますが、それに対する検出結果はありません。
支払い義務がある場合のクレジット
バッファ読み取りアプローチは次のとおりです。IカスタムインジケーターテスターPiotr Latoszynski 氏によるもので、2020 年から無料で市場に公開されています。変更されたクローズドバー値を検出するための凍結比較方法は、mql5.com post 772704 (2026 年 7 月 17 日) で Brahim Ben Abla 氏によって実数を使用して説明されています。方法は彼のもので、発送だけは私のものです。
MetaTrader 4 の違い
12 個のチェックのうち 10 個は、同じインジケーターで構築された MetaTrader 5 と同じように読み取られました。 2 つはできません: MQL4 にはありません BarsCalculated、したがって、計算状態は経験的なプローブであり、次のようにラベル付けされます。【MT4プロキシ】; MQL4 はインジケーターを早期にアンロードできないため、チャート オブジェクトのクリーンアップの質問はライブ チャートでのみ回答され、次のようになります。[未テスト]ストラテジーテスターで。どちらも非表示ではなく、レポート内で名前が付けられます。どちらもこのツールの制限でもポートのショートカットでもありません。これらは MetaTrader 4 自体の能力であり、レポートでは快適なゼロを報告するのではなく、2 つのうちのどちらを調べているかが示されます。
注意事項
- これはレポートを作成する Expert Advisor です。それは決して取引されません。注文も行わず、ポジションの開閉も行わず、アカウントには何も触れません。インジケーターを読み取り、テキスト ファイルに書き込みます。
- 自動取引を有効にする必要があります。MetaTrader は、取引するかどうかに関係なく、その権限に基づいてすべての Expert Advisor をゲートします。そのため、ボタンをオフにするとターミナルはプログラムの呼び出しを停止し、レポートもエラーも表示されません。ライブアカウントで有効にしたくない場合は、デモアカウントにアタッチしてください。ここではアカウントに依存するものは何もないため、結果は同じになります。
- ストラテジー テスターと、チェックに実際のティックが必要なライブ チャート上で実行されます。文書化された文書からターゲットを読み取る iCustom インタフェース。
- 独自のインジケーター ハンドルを内部的に構築する一部のターゲットは、計算された状態を報告しません。報告書では、ゼロを報告するのではなく、そのケースに名前を付けています。
- 出力は共有ファイル フォルダーに保存されるため、レポートは実行間で存続し、それぞれ 1 つの概要行が蓄積されます。
- 複数のインスタンスがサポートされています。2 つのチャートで異なるシンボルを同時に測定でき、両方の実行が互いに上書きされるのではなく、同じ累積サマリーに追加されます。2 つのインスタンスが 1 秒間隔で終了することでテストされました。 2 つの履歴を別々に保持したい場合は、異なる出力プレフィックスを付けます。
- 外部依存関係はありません。ライブラリや他のインジケーターは呼び出しません。
| この開発者が提供するその他のツール 私はクローズドバーのロジック、検証済みバッファ、他のインジケーターへの依存なしという、明確で文書化されたコードを重視して MetaTrader のインジケーターと EA を開発しています。このツールは、その主張を誰かに信じてもらう前に、まず自分の作品で確かめたかったからこそ存在します。 レポートで予期していなかった何かを見つけましたか、または 12 がカバーしていない内容を確認したいですか?プライベートメッセージを送ってください - 喜んでお答えします。 |
開発・保守:Narayanan Mohanan、ML/Python/MQL Developer。
本ページの翻訳に誤りがございましたら、ご連絡いただければ修正いたします。
