EAを作るうえで必須!「i関数」!
EA作成の場面で使うことも多くなるであろう、「i関数」というものについて書いていきます。
この「i関数」をうまく使えるようになれば、ローソク足の4本値(始値、終値、高値、安値)を取得することができます。
始値 | iOpen( ) |
終値 | iClose( ) |
高値 | iHigh( ) |
安値 | iLow( ) |
( )の中に、①どの通貨ペアか?②どの時間足か?③何個前の足か?の情報を入力します。
①通貨ペアの指定
ここには、ドル円なら「”USDJPY”」、ユーロドルなら「”EURUSD”」と書きます。
注意点としては、証券会社によって、通貨ペアの後に記号とか英字が付いてる場合があります。
- XMゼロ口座だったら「”USDJPY.”」←「ドット」が付いてる・・・(見えにくい)
- ワンダーランドだったら「”USDJPY.wl3”」などです。
正しく入力しないと注文エラーになるので、注意しましょう。
証券会社ごとの通貨ペアの正しい表記を確認したい場合は、MT4の初期画面に左側に表示される「気配値ウインドウ」で確認できます。
②時間足の指定
ここには、「1時間足の値を教えて!」の場合、「PERIOD_H1」と書きます。
以下の時間足のみ指定可能で、他のマイナーな時間足(2時間足とか)は指定できないようです。
- PERIOD_M1(1分足)
- PERIOD_M5(5分足)
- PERIOD_M1515分足)
- PERIOD_M30(30分足)
- PERIOD_H1(1時間足)
- PERIOD_H4(4時間足)
- PERIOD_D1(日足)
- PERIOD_W1(週足)
- PERIOD_MN1(月足)
③何個前の足か?の指定
ここに、「何個前の足か?」を書きます。結構単純です。
- 現在の足であれば、「0」
- 1個前の足なら「1」
- 10個前の足であれば「10」と書きます。
スクリプトで実行してみよう
それでは、スクリプトで「USDJPYで現在より1個前の1時間足の始値を取得」を実行してみましょう。これを書くと以下の通りになります。
お得意のComment関数で、取得した値をチャート上に表示して確認してみましょう。
Comment(iOpen(“USDJPY”,PERIOD_H1,1));
このように現在のローソクの1本前の1時間足の始値の値が表示されます。
始値だけでなく、終値、高値、安値の関数についても、関数の使い方は同じです。
ちなみに
ちなみに、通貨ペア(USDJPY)とか時間足をいちいち書くのがめんどくさい場合は、以下のように「0」で指定すれば、スクリプトを実行する対象のチャート情報(通貨ペア、時間足)を自動で判別してくれます。(ドル円の1時間足のチャートで実行すれば、自動で判別してくれる)
iOpen(NULL,PERIOD_CURRENT,1)と書いても同様になります。
こう書いていれば、プログラムが通貨ペアや時間足に縛られることなく、ドル円用に作ったプログラムでも、そのままユーロ円に適用できたりするので、こちらの使い方が現実的です。
他の関数でも、「0」や「NULL」等で指定をフリーにする使い方はあるので、覚えておきましょう。
コメント