【ForexTesterでFX過去検証】9.カスタムインジケータを使う

当記事では、FX過去検証ソフト「Forex Tester」の使い方や過去検証方法を解説いたします。
今回は、オリジナルのインジケータを使えるようにする方法を紹介します。

※当記事には、アフィリエイトリンクが含まれております。

カスタムインジケータとは?

オリジナルのインジケータを使える機能

フォレックステスターには、多数のインジケータがあらかじめ搭載されています。そのため、一般的なインジケータであれば標準搭載のものだけで十分対応できます。

標準搭載のインジケータについて詳しく知りたい方は、以下の記事を参考にしてください。

しかし、特定の戦略やニーズに応じて標準搭載されていないインジケータを使用したい場合には、カスタムインジケータが役立ちます。

具体的には、インジケータを追加する時に、「カスタム」のカテゴリを選んだ時に出てくるのがカスタムインジケータです。ここに新たにインジケータを加えることができます

カスタムインジケータとは?

カスタムインジケータの入手手段は?

カスタムインジケータを入手する方法は、大きく2つあります。

インジケータを自作する

インジケータを自作する方法です。

ハードルは高いものの、最も柔軟で経済的な手段です。プログラミング知識が必要ですが、自分のトレード戦略に完全に合わせたインジケータを作成できます。

具体的な自作方法については後述します。

外部から入手する

ネット上から他者が作成したインジケータを入手する方法です。

無料:ネット上で無料公開されているものもあります。動作保証がない点に注意が必要です。
有料:有料のものは、動作確認済みの記載がある場合が多く、信頼性が高いです。信頼できる提供元から購入することで安心して利用できます。

おすすめインジケータは後述します。

インジケータを自作する方法は?

インジケータを自作するのは一見ハードルが高いように思えますが、プログラムが書ける方であれば、一度挑戦してみる価値があります。

この記事では、自作インジケータに必要な環境や、それを活用できる証券会社の紹介に加え、実際の作成手順から取り込み方法までをわかりやすく解説します。

自作に必要な環境

フォレックステスターのインジケータはMQL4という言語で作成できます。
そしてMQL4はMetaTrader4のメタエディタで書くことができます。

MetaTrader4(MT4)

MetaTrader4(MT4)は、金融市場、特に外国為替(FX)の取引で広く利用されているトレーディングプラットフォームです。このプラットフォームは、トレーダーがリアルタイムで価格チャートを分析し、取引を実行し、さらにカスタムツールを使用して取引戦略を自動化できるよう設計されています。

簡単に言えば、MT4はFX取引専用のソフトウェアです。ただし、単に価格チャートを表示して取引を行うだけであれば、一般的なチャートソフトと大きな違いはありません。パソコンやスマートフォンにインストールすれば、リアルタイムの価格を確認したり、チャートを用いて未来の値動きを予測したり、ワンクリックで取引を実行することができます。

MT4の最大の特徴は、MQL4というプログラミング言語を使って、自動売買プログラムやカスタムインジケーターを作成できる点です。

利用するには、対応している証券会社に口座を開く必要があります。対応さえしていれば、利用は無料です。

なお、最新バージョンであるMetaTrader5(MT5)ではMQL5という別のプログラミング言語が採用されています。そのため、フォレックステスターで使用するカスタムインジケーターはMT4に対応している必要がある点にご注意ください。

MQL4

MQL4(MetaQuotes Language 4)は、MetaTrader4用に設計されたプログラミング言語です。この言語を使えば、トレーダーは取引の自動化を目的としたエキスパートアドバイザー(EA)、カスタムインジケーター、スクリプト、ライブラリなどを作成することができます。

エキスパートアドバイザーとは、自動売買を行うロボットのことです。フォレックステスターでも「ストラテジー」という機能を使ってテストできますが、インジケーターに比べて難易度が高いため、詳しい紹介は別の機会に行う予定です。

なお、MQLの最新バージョンはMQL5ですが、MQL4とは互換性のない別仕様となっています。そのため、フォレックステスターで利用する場合は、MQL4であることを覚えておいてください。

MT4を使える証券会社

MT4を使うには、対応している証券会社に口座を開く必要があります。以下に、対応している証券会社を紹介いたします。どれも無料ですぐに開設可能ですので、気軽に申し込んでみてください。当然MT4の利用も無料です。

証券会社名説明
ゴールデンウェイ・ジャパン(FXTF MT4)「FXTF MT4(標準コース)」という種類の口座を開くことでMT4を利用できます。
無料口座開設時に「FXTF MT4(標準コース)も一緒に申し込む」にチェックを入れてください。
JFX株式会社MT4が標準で使えるだけでなく、TradingViewも使用できます。
取引すればするだけキャッシュバックキャンペーン等、プレゼントキャンペーンも豊富です。

自作インジケータの作成から取り込みまでの流れ

MetaTrader4でインジケータを作成し、取り込むまでの流れを解説します。

途中でエラーさえ起きなければ、非常に簡単です。

メタエディタの起動

MT4を起動したら、ツールからメタエディターを起動してください。
※MT4の利用方法は各証券会社の公式サイトをご確認ください。

メタエディタの起動

すると、下記のようなエディタが立ち上がります。

メタエディタ

このエディターにMQL4を記述していきます。

新規ファイル作成

「新規作成」を押してください。

すると次のような作成する種類を聞かれるので「カスタムインディケータ」を選んでください。

新規作成:種類選択画面

次にプロパティの設定です。

プロパティ設定
項目説明
名前インジケータの名前です。
インジケータを選択する場合に表示されるものなのでわかりやすいものにしましょう。
著作者作成者の名前です。プログラムの先頭にコメント行で記載されます。
フォレックステスターに読み込む際にも表示されますので、好みで設定ください。
リンク上記同様です。好みで設定ください。
パラメータインジケータに設定したい値(調整したいパラメータ)を設定します。
後から追加もできますが、最初から設定したい場合に追加します。
(画像はサンプルでma_periodを追加してますが特に意味はありません)

次にプログラムの動作トリガーの設定です。

動作トリガー設定

ここは、インジケータによりますが、基本はそのまま次へでOKです。

次に、インジケータをどこに表示させるかの設定です。

描画プロパティ設定

メインチャートと同じ場所に記載するならそのまま完了してください。
別画面に表示したい場合は、サブウィンドウに表示にチェックしてください。

完了すると次のようなプログラムが生成されます。

初期テンプレート

ここまで入力した内容で、初期テンプレートが作成されました。

これにMQLを追記していきます。

MQL4を記述

ここでは、サンプルとして、下記のコードを入力し、保存してください。

//+------------------------------------------------------------------+
//|                                                      test_ma.mq4 |
//|                                       Copyright 2024, hanbe Ltd. |
//|                                          https://traders-rx.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, hanbe Ltd."
#property link      "https://traders-rx.com/"
#property version   "1.00"
#property strict

#property indicator_chart_window // インジケータをチャートウィンドウに表示
#property indicator_buffers 2    // バッファの数
#property indicator_color1 Blue  // 短期移動平均線の色
#property indicator_color2 Red   // 長期移動平均線の色

//--- input parameters
// バッファ定義
double ShortSMA[];
double LongSMA[];

// 入力パラメータ
input int ShortPeriod = 20; // 短期移動平均の期間
input int LongPeriod = 50;  // 長期移動平均の期間

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   // インジケータのバッファ設定
   SetIndexBuffer(0, ShortSMA);
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexLabel(0, "Short SMA");

   SetIndexBuffer(1, LongSMA);
   SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexLabel(1, "Long SMA");
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   // 必要なバー数を満たしているか確認
   if (rates_total < MathMax(ShortPeriod, LongPeriod))
      return(0);

   // 計算開始位置
   int start = prev_calculated;
   if (start > 0) start--;

   // 各移動平均線の値を計算
   for(int i = start; i < rates_total; i++)
     {
      ShortSMA[i] = iMA(NULL, 0, ShortPeriod, 0, MODE_SMA, PRICE_CLOSE, i);
      LongSMA[i] = iMA(NULL, 0, LongPeriod, 0, MODE_SMA, PRICE_CLOSE, i);
     }
     
   return(rates_total);
  }
//+------------------------------------------------------------------+

保存すると、左側の「Indicators」に追加されています。

コンパイル

インジケータとして使える状態にするには、コンパイルが必要です。

画面上部のコンパイルボタンを押してください。

問題なければ画面下部にエラー0が表示されます。

MT4でインジケータの表示確認

フォレックステスターで表示する前にMT4でインジケータの表示をしてみましょう。

MT4を開くと、左側のインディケータに作成したインジケータが表示されているはずです。

MT4のインジケータ画面

これを右クリックで「チャートに表示」かドラッグ&ドロップでチャートに持っていくと、チャートの設定画面が表示されます。(ここのバージョン情報に新規ファイル作成で設定した情報が表示される)

チャート設定画面

期間や色の設定をして、OKを押すと、チャートに表示されます。

新規インジケーターをインストール

チャート上を右クリックして、「新規インジケーターをインストール」を選び、表示されたダイアログに、作成されたmq4ファイルを指定してください。

作成されたファイルの場所は、メタエディタの「ファイル」ー「データフォルダを開く」でわかります。

すると、下記のようなダイアログが開くので、チェックを入れて変換を押してください。

これは、ソースコードがフォレックステスター側のサーバに送られますがいいですね?という確認です。

変換処理に少し時間がかかりますが、完了すると下記のダイアログが表示されます。

基本的にMT4で表示できれば表示できる可能性が高いですが、MT4で表示できていても、ここでエラーとなる場合もあります。(エラーダイアログがでても、インジケータは表示される、というパターンもある)すべてのプログラムがそのまま使えるわけではないことに注意してください。

インジケータの表示を確認

正しくインストールされれば、カスタムインジケータに追加されています。

カスタムインジケータに追加

以上が、自作インジケータの作成からインストールまでの流れです。

カスタムインジケータの紹介

インジケータの自作はハードルが高い、という場合は、他の人が作成したインジケータを取り込むことも可能です。

無料で公開してくれている人もいますし、有料のものを購入する事もできます。無料のものは動作確認が取れていないものも多く、フォレックステスターのバージョンが上がると動かなくなる可能性もありますので注意してください。

カスタムインジケータのインストール方法

チャート上を右クリックして、「新規インジケーターをインストール」を選び、表示されたダイアログに、入手したmq4ファイルまたはdllファイルを指定してください。

すると、下記のようなダイアログが開くので、チェックを入れて変換を押してください。

これは、ソースコードがフォレックステスター側のサーバに送られますがいいですね?という確認です。

変換処理に少し時間がかかりますが、完了すると下記のダイアログが表示されます。

正しくインストールされれば、カスタムインジケータに追加されています。

カスタムインジケータに追加

インストール時にエラーとなった場合は、作者の方へご連絡ください。

無償の場合は対応が厳しい可能性が高いですが、有料の場合はサポートが受けられると思います。

おすすめカスタムインジケータ

フォレックステスターで表示できるカスタムインジケータの紹介です。

動作保証されているものだけを紹介したいので、有料のもののみとなりますが、高いものではないので、説明ページを見て興味があるものがあれば導入してみてはいかがでしょうか?

詳細はリンク先をご確認ください。すべてForex Tester 2~6まで対応されているものですが、動作に不明点がある場合は作者の方へご連絡ください。

インジケータ名概要
マルチタイムフレーム 移動平均線 インジケーターマルチタイムフレーム対応の移動平均線(Moving Average)です。
異なる時間足(5分足~月足、時間足を追加可能)の移動平均線を正確に表示します。
移動平均線リボン インジケーター2本の移動平均線の間を塗りつぶす「MA ribbon」を表示します。
時間帯別 サポレジ インジケーター最大4種類のサポレジラインを異なるタイムフレームで表示可能です。
平均ボラティリティ 値幅 pips テキスト表示 インジケーター日足に基づく値幅情報をピプス(pips)で表示します。
MTF スイングハイ・スイングロー インジケーターマルチタイムフレーム対応のスイングハイ・スイングロー(Swing High Swing Low)をForexTesterで表示するインジケータです。
平均足 多種類版 インジケーター「3タイプの平均足スムーズド」「標準の平均足」を「3種類の表示方法」で表示するインジケーターです。
CCI & MA BollingerBands インジケーター CCI (Commodity Channel Index)の結果に対して、移動平均、ボリンジャーバンドを計算し表示するインジケーターです。
時差調整 フィボナッチ インジケーターフィボナッチピボットに時差調整、週足~年足の表示を追加し、高速化したインジケーターです。

まとめ

カスタムインジケータは、フォレックステスターで標準搭載されていないインジケータを使用したい場合に非常に役立ちます。主な手段としては以下の2つがあります。

  1. 自作する
    自作はハードルが高いものの、最も柔軟で経済的な選択肢です。ただし、プログラミングの知識が求められるため、時間と労力を要します。
  2. 他者が作成したインジケータを入手する
    自作が難しい場合には、他者が公開しているMT4用インジケータを取り込む方法がおすすめです。この方法は手軽で、特に初心者に向いています。

この記事で紹介しているインジケータは有料ですが、動作確認済みのため、安心して使用できますよ。