自作インジケータの作り方

記事内に商品プロモーションを含む場合があります
スポンサーリンク

はじめに

ここでは、自分でMT4用のインジケータを作る方法について解説します。

自作でインジケータなんて・・・と思われる方もいらっしゃるかもしれませんが、別にテクニカル的なインジケータではなくてもこんな情報ほしいという時に作ってチャート上に表示させておくと便利です。

インジケータファイルを新規作成する

ではインジケータの作り方を見ていきましょう。

まず、MT4画面で以下赤枠の「メタエディタ」ボタンをクリックしてメタエディタを開きます。

次に、ファイル→「新規作成」をクリックします。

次に、カスタムインディケータを選択し、「次へ」ボタンをクリックします。

「名前:Indicators\CHK_swap」、「著作者:Copyright 2020, mef Software」、「リンク:https://fx-prog.com/」のような感じで自由に入力し、「次へ」ボタンをクリックします。※CHK_swapの所は、インジケータ名称になります

そのまま「次へ」ボタンをクリックします。

そのまま「完了」ボタンをクリックします。

完了ボタンを押すとソースコードが表示されます。これで、インジケータファイルの新規作成は完了です。

ソースを書く

次に、先ほど新規作成したファイルにソースコードを書いていきます。今回は以下のコードをサンプルとして使ってみます。
※スワップタイプを表示するサンプルソースコードです

//+------------------------------------------------------------------+
//|                                                      CHK_swap.mq4 |
//|                                     Copyright 2020, mef Software |
//|                                             https://fx-prog.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, mef Software"
#property link      "https://fx-prog.com/"
#property version   "1.00"
#property indicator_chart_window
  
double prevtime;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  
//---
  
   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[])
  {
//---
   double KekkaLong = 0;
   double KekkaShort = 0;
  
   //新しい足ができた時だけやる
   if(Time[0] != prevtime){
      prevtime = Time[0];
   }else{
      return(0);
   }
  
   //スワップタイプ取得(0:pips, 1:決済通貨, 2:金利, 3:証拠金通貨)
   int swap_type = MarketInfo(Symbol(),MODE_SWAPTYPE);
  
  
   Comment("スワップタイプは",swap_type ,"です。");   
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
スポンサーリンク

コンパイルする

ソースコードのプログラミング(上記ソースコードのコピペ)ができたら、画面上部赤枠の「コンパイル」ボタンをクリックしコンパイルします。コンパイル後、画面下部赤枠のようにエラーになっていない事を確認します。

※エラーだと以下のような感じになるのでプログラムを見直しましょう

以上でコンパイル作業は完了です。

チャート上に反映する

次に、コンパイルしたインジケータをチャート上に反映します。

MT4画面の、「ナビゲータ」からインディケータの下にある「CHK_Swap※自分でつけた名前」を見つけて右クリックし、「チャートに表示」をクリックします。
※「CHK_Swap※自分でつけた名前」が見つからない場合、「ナビゲータ」内の適当なところで右クリック→「更新」をクリックするかMT4を再起動すると出てきます

チャートに表示をクリックすると、以下の画面が表示されるので「OK」ボタンをクリックします。

チャート左上に『スワップタイプは・・・』と出てくれば成功です。

最後に

以上が、MT4で自作インジケータを作って反映する方法になります。

当サイトでも、何か自分欲しいと思った情報があったら自作インジケータとして掲載していくつもりなのでまた覗いてみてください。



※ オススメ記事(EAが使える国内FX業者の一覧)

コメント

  1. マーチン より:

    新値足を利用したマーチンゲール難平EAを考えてます。
    サインとなる使いやすいインディケーターが中々見つかりません。
    転換点が分かるインディケーターを公開できませんか?
    宜しくお願いします。