【連載】EAの作り方~その③:「i関数」でローソク足の4本値を取得~

(FX)自動売買EA

EAを作るうえで必須!「i関数」!

EA作成の場面で使うことも多くなるであろう、「i関数」というものについて書いていきます。

この「i関数」をうまく使えるようになれば、ローソク足の4本値(始値、終値、高値、安値)を取得することができます。

始値 iOpen( )
終値 iClose( )
高値 iHigh( )
安値 iLow( )

( )の中に、①どの通貨ペアか?②どの時間足か?③何個前の足か?の情報を入力します。

例)始値を取得したい → iOpen(”①通貨ペア”,②時間足,③何個前の足か)

①通貨ペアの指定

ここには、ドル円なら「”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時間足の始値を取得」を実行してみましょう。これを書くと以下の通りになります。

iOpen(“USDJPY”,PERIOD_H1,1)

お得意のComment関数で、取得した値をチャート上に表示して確認してみましょう。

Comment(iOpen(“USDJPY”,PERIOD_H1,1));

このように現在のローソクの1本前の1時間足の始値の値が表示されます。

始値だけでなく、終値、高値、安値の関数についても、関数の使い方は同じです。

ちなみに

ちなみに、通貨ペア(USDJPY)とか時間足をいちいち書くのがめんどくさい場合は、以下のように「0」で指定すれば、スクリプトを実行する対象のチャート情報(通貨ペア、時間足)を自動で判別してくれます。(ドル円の1時間足のチャートで実行すれば、自動で判別してくれる)

iOpen(0,0,1)

iOpen(NULL,PERIOD_CURRENT,1)と書いても同様になります。

こう書いていれば、プログラムが通貨ペアや時間足に縛られることなく、ドル円用に作ったプログラムでも、そのままユーロ円に適用できたりするので、こちらの使い方が現実的です。

他の関数でも、「0」や「NULL」等で指定をフリーにする使い方はあるので、覚えておきましょう。

コメント

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