【初心者向け】iBarShiftについて解説

  • LINEで送る

皆さんこんにちは!
コタローです!

今回は、プログラミング「MQL」に関しての記事になります!

初心者向けの記事はこちらから
MT4導入方法と使用方法を解説

MT4でインディケータを作成する方法(MQL4)

勉強している方で躓くことが多い「iBarShift関数」に関して解説していきたいと思います!

指定した時間や異なる時間軸を使うオリジナルインジケーターを作成したいときなど、幅広い使い方がある関数ですので理解しておくと非常に便利です!

〇目次

・iBarShiftとは?
・使い方
・サンプルコード

■iBarShiftとは?

指定した時間を検索し、その時間のバーシフトを返す関数になっています!
少し実践的な例を出すと、5分足の5本前を1分足で取得したい状況とします。
5分足で5本前になると25分前となり、1分足で見ると25本前を取得する必要があります。
上記のような条件を取得するのに便利な関数となっております!(例はとても簡単な例ですが、より複雑になると計算も大変になります)

具体的な式は、

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
※symbol:通貨ペア、timeframe:時間軸、time:取得したい時間、exact: false or true が入る(初期値はfalse)

最後のexcatに関して、
false:指定した時間のバーが存在しない場合、チャート上に存在するバーの近い時間のバーシフトを返します。
true:指定した時間のバーが存在しない場合、-1を返します。

■使い方

どのような使い方があるのか例を見ていきましょう!
★5分足で10本前の位置を1分足終値で取得したい場合

  1. int shift = iBarShift(NULL,PERIOD_M1,iTime(NULL,PERIOD_M5,10),false);
  2. double close = iClose(NULL,PERIOD_M1,shift);

■サンプルコード

もう少し本格的な使い方、実際にどのように使っているのか?
サンプルコードを記載しておきます!

★5分足で15分足のBollinger Bandsを取得する

  1. int shift = iBarShift(NULL,PERIOD_M15,iTime(NULL,PERIOD_M5,0),false);
  2.       
  3. double upper = iBands(NULL,PERIOD_M15,20,2.0,0,PRICE_CLOSE,MODE_UPPER,shift);
  4. double lower = iBands(NULL,PERIOD_M15,20,2.0,0,PRICE_CLOSE,MODE_LOWER,shift);

これで後は、表示させる構文を組むだけでオリジナルインジケーターを作ることができます!

今回は、「iBarShift関数」について実際のコードを交えて解説していきました!
ここでくじける人もいますが、一つずつ理解すれば簡単ですので頑張っていきましょう!!

最後までご覧いただきありがとうございました!

  • LINEで送る

SNSでもご購読できます。

友だち追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください