IndicatorSetInteger()の使い方
MQL4 (MT4)のIndicatorSetInteger()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のAPIのIndicatorSetIntegerの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
IndicatorSetInteger
関数は、MetaTrader 4 (MT4) のMQL4言語で使用され、カスタムインディケーターの整数型プロパティを設定するために使われます。この関数を使用することで、インディケーターの様々な設定をプログラムから動的に変更することが可能になります。
関数の基本形式
IndicatorSetInteger
関数には二つのオーバーロードがあります:
- プロパティIDのみを指定する場合:
bool IndicatorSetInteger(
int prop_id, // プロパティの識別子
int prop_value // 設定する値
);
- プロパティIDと修飾子を指定する場合:
bool IndicatorSetInteger(
int prop_id, // プロパティの識別子
int prop_modifier, // 修飾子
int prop_value // 設定する値
);
使用例
例1:インディケーターの描画スタイルを設定する
インディケーターの描画スタイルを変更する場合、INDICATOR_DIGITS
プロパティを使用して、その精度を設定することができます。
// インディケーターの価格桁数を設定
IndicatorSetInteger(INDICATOR_DIGITS, 2);
例2:インディケーターのバッファ数を設定する
カスタムインディケーターで使用するバッファの数を設定します。これはインディケーターが初期化される際に特に重要です。
// インディケーターで使用するバッファ数を3に設定
IndicatorSetInteger(INDICATOR_DIGITS, 3);
例3:特定のレベルの値を設定する
インディケーターにレベルがある場合(例えば、オシレーターの過買いや過売りレベルなど)、そのレベルの値を設定することができます。
// オシレーターの過買いレベルを70に設定
IndicatorSetInteger(INDICATOR_LEVELVALUE, 0, 70); // ここで、0は最初のレベルを指す修飾子
注意点
- 関数の戻り値:
IndicatorSetInteger
関数は、操作が成功した場合にtrue
を、失敗した場合にfalse
を返します。この戻り値をチェックして、処理の成功を確認してください。 - プロパティIDと修飾子の選択: 使用するプロパティIDや修飾子を正しく選択することが重要です。間違ったIDや修飾子を指定すると、期待した挙動にならないか、エラーが発生する可能性があります。
- 使用タイミング: 通常、
IndicatorSetInteger
関数はインディケーターの初期化時(OnInit
関数内)に使用されます。ただし、特定のイベントが発生した時にプロパティを動的に変更することも可能です。 - パフォーマンスへの影響: 特に計算量の多いインディケーターで、頻繁にプロパティを変更する場合は、パフォーマンス
への影響に注意してください。
これらの点を踏まえ、IndicatorSetInteger
関数を使って、MT4のカスタムインディケーターの挙動を柔軟に制御することができます。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/customind/IndicatorSetInteger
他のカスタムインジケータ関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
HideTestIndicators | テスト中にグラフ上のインディケータを隠すかどうかを設定します。チャート上での表示を制御するのに使用されます。 |
IndicatorSetDouble | インディケータの設定可能なdouble型プロパティ(例: 最小値、最大値)を設定します。これはインディケータの表示範囲やスケールを調整するのに使われます。 |
IndicatorSetInteger | インディケータの設定可能なinteger型プロパティ(例: 描画スタイル、幅)を設定します。インディケータの見た目をカスタマイズするのに役立ちます。 |
IndicatorSetString | インディケータの設定可能なstring型プロパティ(例: 名前)を設定します。インディケータの識別や説明に使用されます。 |
SetIndexBuffer | インディケータ計算結果を格納するバッファを設定します。インディケータのデータを格納する配列を割り当てるのに必要です。 |
IndicatorBuffers | インディケータが使用するバッファの数を設定します。計算に必要なデータ配列の数を定義します。 |
IndicatorCounted | 既に計算されたバーの数を返します。これにより、新たに計算が必要なデータのみを処理できます。 |
IndicatorDigits | インディケータの価格データの表示精度(小数点以下の桁数)を設定します。チャート上での価格表示を制御します。 |
IndicatorShortName | インディケータの短縮名を設定します。チャートのデータウィンドウに表示される名前です。 |
SetIndexArrow | インディケータのバッファに対して表示する矢印記号を設定します。特定の条件を示すマーカーとして利用されます。 |
SetIndexDrawBegin | インディケータが描画を開始するバーの数を設定します。これにより、過去の特定のポイントから描画を開始できます。 |
SetIndexEmptyValue | インディケータのバッファで未定義の値を表すために使用する値を設定します。空のデータポイントを示すのに使用されます。 |
SetIndexLabel | インディケータの各バッファのラベルを設定します。データウィンドウに表示される各バッファの説明テキストです。 |
SetIndexShift | インディケータの描画をずらすバーの数を設定します。インディケータの表示を時間軸に沿って前後に移動させることができます。 |
SetIndexStyle | インディケータの線のスタイル、太さ、色を設定します。インディケータの視覚的表現をカスタマイズするのに使われます。 |
SetLevelStyle | インディケータのレベル線のスタイルと色を設定します。特定の価格レベルや意味のある閾値を示すのに使用されます。 |
SetLevelValue | インディケータのレベル線の値を設定します。これにより、チャート上に表示される水平線の位置を定義できます。 |