MetaTrader 5テスターのストラテジーのビジュアル化

MetaQuotes | 7 10月, 2015

”百聞は一見にしかず”ということわざがあります。パリやヴェニスに関する本を読んだとしても、心のイメージに関して言えばこれらの美しい都市を夜に実際に歩いてみるのと同じ感覚を得ることはできません。ビジュアル化の利点は、私たちの生活のあらゆる部分で見つけることができます。それには市場も含まれます。例えば、チャートのプライスアナリストはインディケーターや、ストラテジーテスティングのビジュアル化ももちろん利用します。


全ての人がストラテジーテスターの可能性を理解しているでしょうか?

実際、すべての人は理解しているわけではありません。MetaTrader 5 トレーディングプラットフォームがその他のプラットフォームに対して優れている点は、ユーザーに使いやすいインターフェースだけではなくターミナルと、MQL5MQL5クラウドネットワークを使ったクラウドコンピューティングがあるマルチ通貨テスター、そしてその他多くのオプションなど多くあります。トレーダーが必要とするツールが1つの場所にあることも利点の1つです。

この記事ではトレーダーの皆さんにMetaTrader 5のもう1つ重要な可能性について紹介します。ストラテジーテスティングのビジュアル化と最適化です。過去のデータや最良のパラメータに基づく Expert Advisorの動きの分析は、図やトレード、バランス 、株式の研究室の面倒な分析だけではありません。椅子に腰かけてリラックスして”3D”グラスをかけたら、さあ始めましょう。


チャートの 世界はなんて素晴らしいんだろうと...

Expert Advisorsをコードベースマーケットに出品する際、作者はテストの結果や資産グラフの統計リポートを添付することが普通です。しかし、もっと興味深いチャートがストラテジーテスターの "結果" タブの統計にあります。

テスト結果のチャート

これらのチャートではEAによりマーケットでポジションを持った際に、結果がベストになるのは、月間なのか数日なのか、数時間なのかを分析することができます。さらにEAが正しいタイミングで利食いを行っているか、MFE(最大順行幅)やMAE(最大逆行幅)の分布グラフに基づき損失が”終わりまで続いて”いないかを評価することができます。

MFE/MAE distribution charts

テスト結果をさらに下にスクロールするともう一つのグラフがあるはずです。

利益とポジションを維持した時間の分布グラフ:

この図はポジションの利益とその取引にかかった時間の依存性を示しています。この図は、自動トレード選手権2012において非常に役立つでしょう。選手権ではスキャルピングは禁止されています。ご自分のExpert Advisorをテストして、ルールに反していないことを確認してください。


ヒストリカルムービーかヴァーチャルテスティングか

ストラテジーテスターの革命的な機能の1つがビジュアルテスティングモードです。毎日の取引を分析したり、チャートのプロットしたり、他の"興味深い"ルーティンなどは複雑なプロセスを構成します。しかし、ストラテジーテスターはヒストリカルムービーを再生するための”再生”ボタンのついたリモコンを手に入れたようなものです。再生スピードを遅くしたり、早くしたり、停止をしてどのような状況かを分析することもできます。リアルタイムにシミュレートされた過去のデータによりチャートがどう構成されるかExpert Advisorがプライスの変化にどう反応するかを見ることができます。


ヴィジュアライザーはストラテジーテスターのようにマルチ通貨をサポートします。ビデオではExpert Advisorが4つの通貨ペアを使用しています。シミュレートされたプライスはMarket Watchとチャートで利用可能です。


2D 最適化の結果

テレビ製造業に人気の3次元の画像を紹介する前に、ストラテジーテスターの2Dヴィジュアライゼーションに注目してみましょう。この長方形は最初、奇妙に見えるかもしれません。最適化基準の2つの最適化パラメータの相互作用を見ることができます (今回はバランスの最大値です)。緑の色が濃いほど、バランスは高くなります:

2D 最適化の結果

関係性は波状の性質を持っていることが分かると思います。そして最大の結果を得るためには周期の平均と移動平均のシフトを使用します。移動平均 EAの最適化の結果です。ターミナルの正規分布パックで利用可能です。ここでも十分興味深いものが見つかります。


それでは3Dを見てみましょう

3次元の画像がより良いヴィジュアライゼーションの方法です。下の図は先程と同じ2つのパラメータの依存性を示したものです。コンテキストメニューの最適化グラフタブを使いのこの上級モードに変更することができます。

3D最適化の結果

MetaTrader 5のストラテジーテスターに3次元の最適化が登場してから、トレーダーはフォーラムに数学的な計算のヴィジュアライゼーションを投稿するようになりました:

3次元グラフは完全にインタラクティブです - ズームインとズームアウト、見やすい角度に回転などです。重要な機能はテストと最適化の結果がイメージファイルやXML/HTMLリポートとして出力できることです。


ビジュアル化の最適化

いよいよ - 最適化の結果を使ってみましょう!結果をプロセスするためには、トレーダーはデータを準備しダウンロードし、どこかにプロセスします。[fuzzy]これで最適化の際にその場ですぐすることができます!何ができるかを実際に見せるには、このようなプロセスの最もシンプルな例を実行するいくつかのヘッダーファイルが必要です。

下に添付されたMQHファイルをダウンロードしMQL5\Includeフォルダに保存して下さい。どれでも良いのでExpert Advisorのコードの最後に以下を貼り付けてください。

//--- Add a code for working with optimization results
#include <FrameGenerator.mqh>
//--- генератором фреймов
CFrameGenerator fg;
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester()
  {
//--- Insert here your own function for calculating the optimization criterion
   double TesterCritetia=MathAbs(TesterStatistics(STAT_SHARPE_RATIO)*TesterStatistics(STAT_PROFIT));
   TesterCritetia=TesterStatistics(STAT_PROFIT)>0?TesterCritetia:(-TesterCritetia);
//--- Call at each end of testing and pass the optimization criterion as a parameter
   fg.OnTester(TesterCritetia);
//---
   return(TesterCritetia);
  }
//+------------------------------------------------------------------+
//| TesterInit function                                              |
//+------------------------------------------------------------------+
void OnTesterInit()
  {
//--- Prepare the chart to show the balance graphs
   fg.OnTesterInit(3); //The parameter sets the number of balance lines on the chart
  }
//+------------------------------------------------------------------+
//| TesterPass function                                              |
//+------------------------------------------------------------------+
void OnTesterPass()
  {
//--- Process the testing results and show the graphics
   fg.OnTesterPass();
  }
//+------------------------------------------------------------------+
//| TesterDeinit function                                            |
//+------------------------------------------------------------------+
void OnTesterDeinit()
  {
//--- End of optimization
   fg.OnTesterDeinit();
  }
//+------------------------------------------------------------------+
//|  Handling of events on the chart                           |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
   //--- Starts frames after the end of optimization when clicking on the header
   fg.OnChartEvent(id,lparam,dparam,sparam,100); // 100 is a pause between frames in ms
  }
//+------------------------------------------------------------------+

スタンダードデリバリーパックのMoving Averages.mq5というExpert Advisorを使います。コードを貼り付けExpert AdvisorをMoving Averages With Frames.mq5という名前で保存してください。コンパイルし最適化を実行してください。


したがって、トレーダーは視覚的な最適化を実行し、その結果を処理したり、最適化プロセスの間に必要な情報を表示することができます。


もっと欲しいですか?

私たちはトレーダーを助けるためにMetaTrader 5のトレーディングプラットフォームの改良を続けます。コメントを書いて、ストラテジーテスターのビジュアル化 の改善のためのアイデアをシェアしてください。興味深く使い易そうなものは実装できるようにしたいと思います。.


ファイルの使い方

拡張子が.mqhの全てのファイルMQL5\Includeフォルダに入れて下さい。Moving Average_With_Frames.mq5 のExpert Advisorをコンパイルした時にそのフォルダを探すからです。EAファイルはMQL5\Expertsフォルダかそのいずれかのサブフォルダに入れてください。

添付されたMetaTrader 5のストラテジーテスターのExert Advisorを使ってみることでこの記事はより一層興味深いものになるはずです。必ず気に入るはずです。