iCustom()の使い方
MQL4 (MT4)のiCustom()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のAPIのiCustomの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
iCustom
関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で使用され、カスタムインディケータの値を計算するために使用されます。この関数は、標準インディケータ以外の、MT4で作成またはインストールされた任意のカスタムインディケータにアクセスすることを可能にします。
関数の基本形式
double iCustom(
string symbol, // シンボル名
int timeframe, // 時間枠
string name, // カスタムインディケータのコンパイル済みプログラムのパス/名前
... // カスタムインディケータの入力パラメータ(必要に応じて)
int mode, // ラインインデックス
int shift // シフト
);
- symbol: 分析したい通貨ペアまたは市場のシンボル。
- timeframe: 使用する時間枠。
- name: カスタムインディケータのファイル名(拡張子
.ex4
または.mq4
は省略可能)。 - …: カスタムインディケータに渡す入力パラメータ。インディケータによって必要なパラメータは異なります。
- mode: 取得したいインディケータのライン(例: 0、1、2…)。
- shift: 指定したバーからのシフト量。
0
は最新のバーを指します。
使用例
カスタムインディケータExampleIndicator
をEURUSDの1時間足で使用し、その第一ライン(mode=0
)の最新バー(shift=0
)の値を取得する例を示します。
double value = iCustom("EURUSD", PERIOD_H1, "ExampleIndicator", /* ここにインディケータのパラメータを挿入 */, 0, 0);
Print("Custom indicator value: ", value);
この例では、カスタムインディケータExampleIndicator
に必要な追加のパラメータがある場合、そのパラメータを"ExampleIndicator"
の後にカンマ区切りで記述します。
注意点
- インディケータの配置: カスタムインディケータがMT4の
Indicators
フォルダ内に正しく配置されていることを確認してください。 - パラメータの正確性: カスタムインディケータに渡すパラメータは、そのインディケータが期待する正確な型と順序である必要があります。誤ったパラメータは、予期せぬ結果を引き起こす可能性があります。
- 性能への影響: 特に複雑な計算を行うカスタムインディケータを使用する場合、
iCustom
関数の呼び出しはMT4のパフォーマンスに影響を与える可能性があります。計算の効率化と最適化に注意してください。 - エラーハンドリング:
iCustom
関数は、計算できない場合やインディケータが正しく動作しない場合に特別なエラーコード(通常はEMPTY_VALUE
)を返す可能性があります。戻り値を使用する前に、このようなエラーコードに対する適切なチェックを行うことが重要です。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/indicators/iCustom
他のテクニカルインディケータ関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
iAC | Accelerator Oscillatorの値を計算します。 |
iAD | Accumulation/Distributionインディケータの値を計算します。 |
iADX | 平均方向移動指数 (Average Directional Movement Index) の値を計算します。 |
iAlligator | ビル・ウィリアムズのアリゲーターインディケータの値を計算します。 |
iAO | Awesome Oscillatorの値を計算します。 |
iATR | 平均真の範囲 (Average True Range) の値を計算します。 |
iBearsPower | ベアパワーインディケータの値を計算します。 |
iBands | ボリンジャーバンドの値を計算します。 |
iBandsOnArray | 配列データに基づいてボリンジャーバンドの値を計算します。 |
iBullsPower | ブルパワーインディケータの値を計算します。 |
iCCI | 商品チャネル指数 (Commodity Channel Index) の値を計算します。 |
iCCIOnArray | 配列データに基づいて商品チャネル指数の値を計算します。 |
iCustom | カスタムインディケータの値を計算します。 |
iDeMarker | DeMarkerインディケータの値を計算します。 |
iEnvelopes | エンベロープインディケータの値を計算します。 |
iEnvelopesOnArray | 配列データに基づいてエンベロープインディケータの値を計算します。 |
iForce | フォースインデックスの値を計算します。 |
iFractals | フラクタルインディケータの値を計算します。 |
iGator | ゲーターオシレータの値を計算します。 |
iIchimoku | 一目均衡表の値を計算します。 |
iBWMFI | 市場係数インディケータ (Market Facilitation Index) の値を計算します。 |
iMomentum | モメンタムインディケータの値を計算します。 |
iMomentumOnArray | 配列データに基づいてモメンタムインディケータの値を計算します。 |
iMFI | 資金流量指数 (Money Flow Index) の値を計算します。 |
iMA | 移動平均の値を計算します。 |
iMAOnArray | 配列データに基づいて移動平均の値を計算します。 |
iOsMA | 移動平均のオシレータ (OsMA) の値を計算します。 |
iMACD | 移動平均収束発散 (MACD) の値を計算します。 |
iOBV | オンバランスボリューム (On Balance Volume) の値を計算します。 |
iSAR | パラボリックSARの値を計算します。 |
iRSI | 相対力指数 (Relative Strength Index) の値を計算します。 |
iRSIOnArray | 配列データに基づいて相対力指数の値を計算します。 |
iRVI | 相対活性指数 (Relative Vigor Index) の値を計算します。 |
iStdDev | 標準偏差インディケータの値を計算します。 |
iStdDevOnArray | 配列データに基づいて標準偏差インディケータの値を計算します。 |
iStochastic | ストキャスティクスオシレータの値を計算します。 |
iWPR | ウィリアムズ%Rインディケータの値を計算します。 |