ローソク足の情報を取得して表示するインジケーター
今回はローソク足の情報を取得して表示するインジケーターを作成していきます。
- 現在の始値
- 1つ前の足の高値
- 1時間足の現在の安値
- ドル円現在の終値
メタエディタ(MetaEditor)を立ち上げる
メタエディタ(MetaEditor)を立ち上げましょう。操作は以下に記載しています。
【MQL】カスタムインジケーターを作成の流れについてわかりやすく説明してみた
今回は名前を「Candle-info」で作成します。
OnStart()関数に記述する
OnStart()関数に記述しましょう。
最初にローソク足それぞれの値を格納する変数を作成します。
double open,high,low,close;//それぞれの変数
そしてそれぞれの変数にローソク足の関数情報を格納します。
ローソク足の関数については以下の記事を参照してください。
【MQL】ローソク足のレートを取得する関数『iOpen・iClose・iHigh・iLow』についてわかりやすく説明してみた
ローソク足のレートを取得する関数 今回は、ローソク足のレートを取得する関数について紹介します。 ローソク足とは、日本で最もよく使われるチャートで、 株式投資やFXなど様々なトレードで用いられています。 ローソク足一本には...
open = iOpen(NULL,0,0);//現在の始値 high = iHigh(NULL,0,1);//一つ前の足の高値 low = iLow(NULL,PERIOD_H1,0);//1時間足の現在の安値 close = iClose("USDJPY",0,0);//ドル円現在の終値
格納した情報をコメントで表示させましょう。
Comment("現在の始値 = ",open, "\n一つ前の足の高値 = ",high, "\n1時間足の現在の安値 = ",low, "\nドル円の現在の終値 = ",close);
これでOnStart()関数の記述は完了です。
double open,high,low,close;//それぞれの変数 open = iOpen(NULL,0,0);//現在の始値 high = iHigh(NULL,0,1);//一つ前の足の高値 low = iLow(NULL,PERIOD_H1,0);//1時間足の現在の安値 close = iClose("USDJPY",0,0);//ドル円現在の終値 Comment("現在の始値 = ",open, "\n一つ前の足の高値 = ",high, "\n1時間足の現在の安値 = ",low, "\nドル円の現在の終値 = ",close);
Copy
OnDeinit()関数の記述する
OnDeinit()関数の記述しましょう。
今回はCommentを活用するので削除する際もCommentを活用します。
これでOnDeinit()関数の記述は完了です。
Comment("");//チャート削除後非表示
Copy
コンパイルする
コンパイルしましょう。以下の画像のようにチャート上に情報が表示されていたら完成です。
ソースコード全体
Candle-infoのソースコード全体は以下に記載しています。
//+------------------------------------------------------------------+ //| Candle-info.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 //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } void OnStart() { double open,high,low,close;//それぞれの変数 open = iOpen(NULL,0,0);//現在の始値 high = iHigh(NULL,0,1);//一つ前の足の高値 low = iLow(NULL,PERIOD_H1,0);//1時間足の現在の安値 close = iClose("USDJPY",0,0);//ドル円現在の終値 //表示 Comment("現在の始値 = ",open, "\n一つ前の足の高値 = ",high, "\n1時間足の現在の安値 = ",low, "\nドル円の現在の終値 = ",close); } void OnDeinit(const int reason) { Comment("");//チャート削除後非表示 } //+------------------------------------------------------------------+ //| 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
Copy
まとめ
ローソク足の情報を表示させることができましたね!!
情報表示させるインジケーターはだいぶ慣れてきたと思います!!
コメント