私たちのファンページに参加してください
- ビュー:
- 28
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
私は 、 大規模な プロジェクト で設計された の コード を、別の ライブラリで共有することにした。
Expert Advisorのコードにアクセスできる場合、このライブラリからコードを追加することで、バランスとエクイティ・チャートを保存し、追加の最適化基準を計算することができます。
添付リンクからAdvanced Optimization Report Saver.mqh ファイルをダウンロードし、ターミナル・フォルダに保存します。
#include <Advanced Optimization Report Saver.mqh>次に、エクスポートした関数の呼び出しを、Expert Advisor の既存の関数に追加します。
void OnTick(){ //... あなたのコード //バランス・チャートとエクイティ・チャートを保存 save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY)); } void OnTesterInit() { //... あなたのコード save_OnTesterInit();//print to chart "最適化が完了するまで、このウィンドウを閉じないでください!" } void OnTesterDeinit(){ //... あなたのコード save_OnTesterDeinit();// フレームの取得 } double OnTester(){ //... あなたのコード //カスタム値を保存する: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//値、桁数、名前、ソート_min_to_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//カスタムフィットネス saveCharts(Custom);//最終的なエクイティ、すべてのディール... return Custom; }
save_Add 関数を使用すると、 レポートに含める独自の基準を追加できます:
save_Add( AvgPips, 2, "Custom 1", true);//値、桁数、名前、ソート_min_to_max
save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
例えば、このコードをExamples フォルダの 移動平均 Expert Advisorに追加してみましょう (...↪MQL5↩ExpertsઃExamplesઃMoving AverageઃMovingAverage.mq5)。まず、元のExpert Advisorをコピーして、Moving Average Charts.mq5という 名前にします。
変更は コードの一番最後だけで、CheckForOpen(); 行の後の OnTick() 関数から始まります:
void OnTick(void) { //--- if(SelectPosition()) CheckForClose(); else CheckForOpen(); //バランス・チャートとエクイティ・チャートを保存 save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY)); } void OnTesterInit() { //... あなたのコード save_OnTesterInit();//print to chart "最適化が完了するまで、このウィンドウを閉じないでください!" } void OnTesterDeinit(){ //... あなたのコード save_OnTesterDeinit();// フレームの取得 } double OnTester(){ //... あなたのコード //カスタム値を保存する: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//値、桁数、名前、ソート_min_to_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//カスタムフィットネス saveCharts(Custom);//最終的なエクイティ、すべてのディール... return Custom; } #include <Advanced Optimization Report Saver.mqh>
その後、最適化を実行できます:


最後のスクリーンショットは、接続されたコードが2つのパラメーターを追加したことを示しています:
- Save Statistics- 統計情報の収集を有効または無効にします。
- Pixels in balance and equity charts- ミニチャートの幅のピクセル数を指定します。
最適化が完了したら、(保存されたフレームを解析するプログラムを使用して)レポートを作成し、以下を見ることができます:
| MovingPeriodで 100行 | MovingShiftで10 行 |
20行以上ある場合は、平均値の横3行のみが表示される:
100行では見づらいので、行数を減らす必要がある。
入力変数を同じステップで使用するのではなく、列挙型(enum)を使って目盛りをつけるとよい。例えば、 1,2,3,5,7,10,15,20,30,50,70,100 - 100行ではなく12行になる。
enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500}; input nums1 MovingPeriod = 10; // 移動平均期間エキスパート・アドバイザーの列挙型バージョンは 添付ファイルからダウンロードできます。
最適化パスは1000回ではなく、120回になり、計算時間は8倍速くなり、ファイルサイズは8倍小さくなります。
結果はより見やすくなります:

しかし、よくあることですが、バックテストでの最良の結果がフォワードテストでも最良とは限りません。
保存されたフレームを解析するプログラムは、このようにチャートを表示することができます:

そして、このような追加基準も:
他の興味深い基準のコードをお持ちの場合は、ライブラリに追加するためにそれらを提案することができます。
更新
- 2026-02-02:カスタム基準名の UTF 文字をサポート。
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/68706
EA Duplicate Detector
EAが条件に基づいてチャート上に重複したEAがあるかどうかを判断できるようにする。
Project Template Generator
このスクリプトは、開発者がMQL5を使用してプログラムでファイルを操作する方法の実践的な例として役立ちます。このスクリプトの主な目的の1つは、効果的なプロジェクト・ファイル整理を実証することです。これは、大規模なシステムに取り組む開発者や、ポータブルで自己完結型のプロジェクトを作成することを目指す開発者にとって不可欠です。このコンセプトは、より高度な開発ワークフローをサポートするために、さらに拡張して改良することができます。
Binary tradng based on candle colors
ローソク足の色をカウントするシンプルなバイナリー取引戦略。
Accelerator Oscillator (AC)
アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。


