1,000人限定!!企画に参加してEAをGetする公式ラインに登録して
プレゼントをもらう

【MQL】前日の高値・安値を表示するインジケーター【初級編】

MQL インジケーター作成 前日の高値・安値を表示するMT4インジケーター作成

前日の高値・安値を表示するインジケーター

前日の高値・安値を表示するインジケーターを作成していきたいと思います。

メタエディタ(MetaEditor)を立ち上げる

メタエディタ(MetaEditor)を立ち上げましょう。操作は以下に記載しています。

【MQL】カスタムインジケーターを作成の流れについてわかりやすく説明してみた

今回は名前を「HL-line」で作成します。

グローバル変数を記述する

グローバル変数を記述しましょう。

  • 前日の高値を格納する変数:Yhigh
  • 前日の安値を格納する変数:Ylow

の2つ用意しましょう。

double Yhigh;//前日高値の変数
double Ylow;//前日安値の変数

これでグローバル変数の記述は完了です。

double Yhigh;//前日高値の変数
double Ylow;//前日安値の変数
Copy

OnDeinit()関数の記述する

OnDeinit()関数の記述しましょう。

OnDeinit()関数を記述することでインジケーターを削除すると表示が消えます。

今回は高値のYhighlineと安値のYlowlineの2本のラインを削除するように記述します。

ObjectDelete("Yhighline");//Yhighlineを削除
ObjectDelete("Ylowline");//Ylowlineを削除

これでOnDeinit()関数の記述は完了です。

ObjectDelete("Yhighline");//Yhighlineを削除
ObjectDelete("Ylowline");//Ylowlineを削除
Copy

OnCalculate()関数を記述する

OnCalculate()関数を記述します。

Yhighには前日の高値の関数を格納します。Ylowには前日の安値の関数を格納します。

Yhigh = iHigh(NULL, PERIOD_D1,1);
Ylow = iLow(NULL, PERIOD_D1,1);

Period()とは時間足のことで、W1は週足という意味で、週足以上の足を表示しないようにします。

if (Period() < PERIOD_W1)

ObjectDeleteでは過去の必要ではなくなった水平ラインを削除して初期化しています。

ObjectDelete("Yhighline"); //前日高値ラインの初期化

ObjectCreateではラインの情報を記載します。オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格という順番です。

ObjectCreate("Yhighline",OBJ_HLINE, 0, Time[0], Yhigh); //ObjectCreate(オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格);

ObjectSetで色や線の種類を記載します。

ObjectSet("Yhighline", OBJPROP_STYLE, STYLE_SOLID); //ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
ObjectSet("Yhighline", OBJPROP_COLOR, clrWhite);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);

高値と同様に安値も同じように記述します。

//前日安値ラインの描写
ObjectDelete("Ylowline");//前日安値ラインの初期化
ObjectCreate("Ylowline",OBJ_HLINE, 0, Time[0], Ylow);//ObjectCreate(オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格);
ObjectSet("Ylowline", OBJPROP_STYLE, STYLE_SOLID);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
ObjectSet("Ylowline", OBJPROP_COLOR, clrWhite);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);

これでOnCalculate()関数の記述は完了です。

    Yhigh = iHigh(NULL, PERIOD_D1,1);//前日高値
    Ylow = iLow(NULL, PERIOD_D1,1);//前日安値
    
    if (Period() < PERIOD_W1)//週足か月足の場合は描写しない
    {  
       //前日高値ラインの描写
       ObjectDelete("Yhighline"); //前日高値ラインの初期化
       ObjectCreate("Yhighline",OBJ_HLINE, 0, Time[0], Yhigh); //ObjectCreate(オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格);
       ObjectSet("Yhighline", OBJPROP_STYLE, STYLE_SOLID); //ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
       ObjectSet("Yhighline", OBJPROP_COLOR, clrWhite);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
       
       //前日安値ラインの描写
       ObjectDelete("Ylowline");//前日安値ラインの初期化
       ObjectCreate("Ylowline",OBJ_HLINE, 0, Time[0], Ylow);//ObjectCreate(オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格);
       ObjectSet("Ylowline", OBJPROP_STYLE, STYLE_SOLID);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
       ObjectSet("Ylowline", OBJPROP_COLOR, clrWhite);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
    }   
Copy

コンパイル

コンパイルしましょう。以下の画像のように白いラインが2本表示されていたら完成です。

MQL 前日の高値・安値インジケーター 作成

ソースコード全体

HL-lineのソースコード全体は以下に記載してあります。

//+------------------------------------------------------------------+
//|                                                      HL-line.mq4 |
//|                     Copyright 2020, FX-EA System Project Creator |
//|                        https://creator.fx-ea-system-project.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, FX-EA System Project Creator"
#property link      "https://creator.fx-ea-system-project.com/"
#property version   "1.00"
#property strict
#property indicator_chart_window

double Yhigh;//前日高値の変数
double Ylow;//前日安値の変数
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
{
  ObjectDelete("Yhighline");//Yhighlineを削除
  ObjectDelete("Ylowline");//Ylowlineを削除
}
//+------------------------------------------------------------------+
//| 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[])
  {
// ---
    Yhigh = iHigh(NULL, PERIOD_D1,1);//前日高値
    Ylow = iLow(NULL, PERIOD_D1,1);//前日安値
    
    if (Period() < PERIOD_W1)//週足か月足の場合は描写しない
    {  
       //前日高値ラインの描写
       ObjectDelete("Yhighline"); //前日高値ラインの初期化
       ObjectCreate("Yhighline",OBJ_HLINE, 0, Time[0], Yhigh); //ObjectCreate(オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格);
       ObjectSet("Yhighline", OBJPROP_STYLE, STYLE_SOLID); //ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
       ObjectSet("Yhighline", OBJPROP_COLOR, clrWhite);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
       
       //前日安値ラインの描写
       ObjectDelete("Ylowline");//前日安値ラインの初期化
       ObjectCreate("Ylowline",OBJ_HLINE, 0, Time[0], Ylow);//ObjectCreate(オブジェクト名,オブジェクトタイプ, ウィンドウ, 時間, 価格);
       ObjectSet("Ylowline", OBJPROP_STYLE, STYLE_SOLID);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
       ObjectSet("Ylowline", OBJPROP_COLOR, clrWhite);//ObjectSet(オブジェクト名,オブジェクトプロパティインデックス, プロパティ値);
    }   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


Copy

まとめ

今回は、前日の高値・安値を表示するインジケーターを紹介しました。

1,000人限定でFXの自動売買のEAを無料で配布中!!

FX-EA System Projectでは、

【1,000人限定で無料でFXの自動売買のEAを配布中】

です!!

・毎日チャートを見てるのに全く稼げなかった

・コンサルや塾に入ったけど全く稼げなかった

・裁量トレードは難しくて挫折した

・ツールやシステムを購入したが全く稼げなかった

・時間がなくて裁量トレードを行える時間がない

・自動で楽に稼ぎたい

という風に思っている方はこの企画はおすすめです。

フォワードテスト・バックテストを

しっかり行ったパフォーマンスの良いEAを提供中です!!

また、どんどん新しいEAも随時無料配布します!!

人数限定なので早いものがちです!!

もしFX-EA System Projectに興味があれば

是非参加してください。

MT4インジケーター作成 初級編
\記事が役に立ったらシェアしてね/
FX-EA System Projectをフォローする
FX-EA System Project Creator

コメント

タイトルとURLをコピーしました