MQL関数リファレンス

MQL4MQL5 テクニカル指標

iCustom()

できること
カスタムインジケーターの値を取得する
対応
MQL4・MQL5

iCustom() とは

Indicators フォルダにあるカスタムインジケーター(自作・配布・市販のもの)の値を取得する関数です。インジケーターのパラメーターを順番どおりに渡し、取得したいバッファの番号を指定します。

iCustom() の書式と引数

MQL4 の場合MT4

double iCustom(
   string symbol,
   int timeframe,
   string name,
   ...,
   int mode,
   int shift
)
引数型省略時説明
symbolstring必須銘柄名。チャートの銘柄なら _Symbol(NULL も可)。
timeframeint必須時間足。0 または PERIOD_CURRENT でチャートの時間足。
namestring必須インジケーターのファイル名(拡張子なし)。Indicators フォルダの中のサブフォルダにあるときは "フォルダ名\ファイル名"。
modeint必須取得するバッファの番号(0 から)。
shiftint必須値を取得するバーの位置。0 が現在(未確定)のバー、1 がひとつ前の確定したバー。

戻り値(MQL4)

指定したバッファの値。値がないバーでは EMPTY_VALUE(2147483647)が返ることがあります。

MQL5 の場合MT5

int iCustom(
   string symbol,
   ENUM_TIMEFRAMES period,
   string name,
   ...
)
引数型省略時説明
symbolstring必須銘柄名。チャートの銘柄なら _Symbol(NULL も可)。
periodENUM_TIMEFRAMES必須時間足。PERIOD_CURRENT でチャートの時間足。
namestring必須インジケーターのファイル名(拡張子なし)。Indicators フォルダの中のサブフォルダにあるときは "フォルダ名\ファイル名"。

戻り値(MQL5)

インジケーターのハンドル。失敗したら INVALID_HANDLE。値は CopyBuffer(ハンドル, バッファ番号, …) で読みます。

iCustom() の使い方(コード例)

MQL4

// "MyArrow" インジケーター(パラメーター:期間=14)の0番バッファ(買いサイン)を確定足で読む
double buy = iCustom(_Symbol, 0, "MyArrow", 14, 0, 1);
if(buy != 0 && buy != EMPTY_VALUE)
   Print("買いサイン 価格=", buy);

MQL5

int hCustom = INVALID_HANDLE;

int OnInit()
{
   // "MyArrow" インジケーター(パラメーター:期間=14)
   hCustom = iCustom(_Symbol, PERIOD_CURRENT, "MyArrow", 14);
   if(hCustom == INVALID_HANDLE)
   {
      Print("インジケーターを読み込めません error=", GetLastError());
      return INIT_FAILED;
   }
   return INIT_SUCCEEDED;
}

void OnTick()
{
   double buy[];
   if(CopyBuffer(hCustom, 0, 1, 1, buy) < 1) return;   // 0番バッファ・確定足
   if(buy[0] != 0 && buy[0] != EMPTY_VALUE)
      Print("買いサイン 価格=", buy[0]);
}

OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。

iCustom() の注意点

  • 「...」の部分には、インジケーターのパラメーター(input 変数)を上から順番に、型を合わせて渡します。省略すると既定値が使われますが、途中だけを省略することはできません。
  • 矢印のサイン系インジケーターは、サインのないバーで 0 か EMPTY_VALUE を返します。「値が 0 でも EMPTY_VALUE でもない」ことを条件にします。
  • バッファ番号は、データウィンドウの表示順や、インジケーターのソースの SetIndexBuffer() の番号で確認します。
  • ファイル名が違う、コンパイルされていない(.ex4 / .ex5 がない)と読み込めません。

MQL4 と MQL5 の違い

MQL4 は iCustom(…, パラメーター, バッファ番号, shift) で値を直接取得します。MQL5 は iCustom(…, パラメーター) でハンドルを作り、CopyBuffer() でバッファ番号と位置を指定して読みます。

iCustom() でよく出るエラー

関連する関数

テクニカル指標の関数一覧

← MQL関数リファレンスで、ほかの関数を探す

サイバーシグナルインジケーターと8大特典プレゼント

MT4/MT5自動売買EAサイバーラッシュ無料プレゼント

MT4/MT5自動売買EAサイバードラゴン無料プレゼント

グルグルトレイン(グルトレ)EAを無料プレゼント

ライントレードEAサイバートレナビを無料プレゼント

ゴトー日の東京仲値が狙える自動売買EA

LINE友だち追加

注目記事ランキング

  1. 1

    【サクソバンクチャート】月曜日の早朝から動く為替レート

  2. 2

    【MT4/MT5対応】チャート上に手書きできる描画インジケーターの無料配布

  3. 3

    【サンデーダウ・サンデードル円】土日に動く中東レートの表示方法と見方を解説

  4. 4

    【先着50名】グルトレEAを無料プレゼントしています!

  5. 5

    保護中: 【勝率UP!】曜日や日・月別為替相場の動きでFXを見極める

  6. 6

    【MT4/MT5対応】「sign_alert」シグナルアラートやメール送信するインジケーターの無料配布

  7. 7

    無料メールマガジン「マナブ式FX」|毎朝6時、今日の為替相場予想が届く

  8. 8

    【原油・金】WTIとゴールドの商品レート一覧と見やすいチャート

  9. 9

    VQインジケーターとは?MT4/MT5版を無料配布【設定例つき】

  10. 10

    【バイナリーオプション攻略法】全勝!+497,363円の利益が出た手法とは?

TOP
CLOSE