iCustom()関数は、ユーザーが独自に作成したインジケーター(=カスタムインジケーター)の値を取得するために使用します。
iCustom()関数は、以下のように定義されています。
double iCustom(
string symbol,
int timeframe,
string name,
…,
int mode,
int shift
);
各引数の意味は、以下のとおりです。
- string symbol
カスタムインジケーターの値を計算する通貨ペア名を指定します。
通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
特定の通貨ペアを指定せず、EA等を適用したチャートの通貨ペアのカスタムインジケーターの値を取得したい場合は、「NULL」と記述します。 - int timeframe
以下の表に従って、カスタムインジケーターの値を計算する時間軸を指定します。種 類 定 数 内 容 PERIOD_CURRENT 0 現在の時間足 PERIOD_M1 1 1分足 PERIOD_M5 5 5分足 PERIOD_M15 15 15分足 PERIOD_M30 30 30分足 PERIOD_H1 60 1時間足 PERIOD_H4 240 4時間足 PERIOD_D1 1440 日 足 PERIOD_W1 10080 週 足 PERIOD_MN1 43200 月 足 - string name
カスタムインジケーターの名前を指定します。
インジケーター名は、「”」(=ダブルクォーテーション)で囲んで、「MQL4」→「Indicators」フォルダに格納されている、値を取得したいカスタムインジケーター名のとおりに記述します。 - …
カスタムインジケーターのパラメーターを指定します。
パラメーターは、コンマで区切って、カスタムインジケーターの「パラメーターの入力」ダイアログに記載されている順番どおり(上から下へ)に指定します。なお、パラメーターを指定しない場合には、カスタムインジケーターのデフォルト値(=標準値)が使用されます。 - int mode
ライン番号を指定します。 - int shift
カスタムインジケーターの値を取得したいバーの位置を指定します。
カスタムインジケーターの値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。
具体例
1本前のバーの「Hull Moving Average.mq4」(計算期間と計算に使用する価格データは外部変数としてパラメーター化)の値を取得したい場合は、以下のように記述します。
extern int MA_Period = 20;
extern int Use_Price = 0;
double HMA_1
= iCustom(NULL,0,“Hull Moving Average”,
MA_Period,Use_Price,3);