皆さんこんにちは!
コタローです!
今回は、プログラミング「MQL」に関しての記事になります!
初心者向けの記事はこちらから
MT4導入方法と使用方法を解説
勉強している方で躓くことが多い「iBarShift関数」に関して解説していきたいと思います!
指定した時間や異なる時間軸を使うオリジナルインジケーターを作成したいときなど、幅広い使い方がある関数ですので理解しておくと非常に便利です!
〇目次
・使い方
・サンプルコード
■iBarShiftとは?
指定した時間を検索し、その時間のバーシフトを返す関数になっています!
少し実践的な例を出すと、5分足の5本前を1分足で取得したい状況とします。
5分足で5本前になると25分前となり、1分足で見ると25本前を取得する必要があります。
上記のような条件を取得するのに便利な関数となっております!(例はとても簡単な例ですが、より複雑になると計算も大変になります)
具体的な式は、
※symbol:通貨ペア、timeframe:時間軸、time:取得したい時間、exact: false or true が入る(初期値はfalse)
最後のexcatに関して、
false:指定した時間のバーが存在しない場合、チャート上に存在するバーの近い時間のバーシフトを返します。
true:指定した時間のバーが存在しない場合、-1を返します。
■使い方
どのような使い方があるのか例を見ていきましょう!
★5分足で10本前の位置を1分足終値で取得したい場合
- int shift = iBarShift(NULL,PERIOD_M1,iTime(NULL,PERIOD_M5,10),false);
- double close = iClose(NULL,PERIOD_M1,shift);
■サンプルコード
もう少し本格的な使い方、実際にどのように使っているのか?
サンプルコードを記載しておきます!
★5分足で15分足のBollinger Bandsを取得する
- int shift = iBarShift(NULL,PERIOD_M15,iTime(NULL,PERIOD_M5,0),false);
- double upper = iBands(NULL,PERIOD_M15,20,2.0,0,PRICE_CLOSE,MODE_UPPER,shift);
- double lower = iBands(NULL,PERIOD_M15,20,2.0,0,PRICE_CLOSE,MODE_LOWER,shift);
これで後は、表示させる構文を組むだけでオリジナルインジケーターを作ることができます!
今回は、「iBarShift関数」について実際のコードを交えて解説していきました!
ここでくじける人もいますが、一つずつ理解すれば簡単ですので頑張っていきましょう!!
最後までご覧いただきありがとうございました!