ObjectsTotal()の使い方
MQL4 (MT4)のObjectsTotal()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectsTotalの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectsTotal関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語において、チャート上に存在する特定のタイプのオブジェクトの数を取得するために使用されます。この関数には2つのバリエーションがあり、チャートID、サブウィンドウインデックス、オブジェクトタイプを基にオブジェクトの総数を取得することができます。
1. 特定のチャート、サブウィンドウ、オブジェクトタイプのオブジェクト数を取得
int ObjectsTotal(
long chart_id, // チャート識別子
int sub_window=-1, // ウィンドウインデックス
int type=-1 // オブジェクトタイプ
);
chart_id: オブジェクト数を取得したいチャートのIDです。sub_window: オブジェクト数を取得したいサブウィンドウのインデックスです。全てのウィンドウから取得したい場合は-1を指定します。type: 取得したいオブジェクトのタイプです。全てのタイプのオブジェクトを対象とする場合は-1を指定します。
2. 特定のタイプのオブジェクト数を取得
int ObjectsTotal(
int type=EMPTY // オブジェクトタイプ
);
type: 取得したいオブジェクトのタイプです。EMPTYを指定すると、全てのタイプのオブジェクト数が返されます。
使用例1: 特定のチャートの全オブジェクト数を取得
void OnStart()
{
long chartID = ChartID(); // 現在のチャートIDを取得
int totalObjects = ObjectsTotal(chartID, -1, -1);
Print("チャートID ", chartID, " 上のオブジェクト総数: ", totalObjects);
}
使用例2: 全チャートの特定タイプのオブジェクト数を取得
void OnStart()
{
int totalLines = ObjectsTotal(OBJ_TREND); // トレンドラインの総数を取得
Print("チャート上のトレンドライン総数: ", totalLines);
}
注意点
- チャートIDの正確性: チャートIDを指定してオブジェクト数を取得する場合は、正しいチャートIDを使用していることを確認してください。
- サブウィンドウインデックスの理解: サブウィンドウインデックスは、メインチャートが
0で、追加されたインディケータウィンドウが1から始まります。 - オブジェクトタイプの指定: 特定のオブジェクトタイプの数を取得する場合は、正しいオブジェクトタイプを指定してください。タイプが不明な場合は、全タイプのオブジェクト数を取得するために
-1またはEMPTYを使用できます。
これらの関数を使用することで、特定のチャートや条件におけるオブジェクトの総数を効率的に把握し、チャート分析やオブジェクト管理の自動化に役立てることができます。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectstotal
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
| 関数名 | 概要 |
|---|---|
| ObjectCreate | チャート上に新しいオブジェクトを作成します。 |
| ObjectName | 指定されたインデックスにあるオブジェクトの名前を取得します。 |
| ObjectDelete | チャートから指定された名前のオブジェクトを削除します。 |
| ObjectsDeleteAll | 特定のウィンドウ、またはすべてのウィンドウからオブジェクトを削除します。 |
| ObjectFind | 指定された名前のオブジェクトが存在するウィンドウのインデックスを返します。 |
| ObjectGetTimeByValue | 指定された価格に対応する時間をオブジェクトから取得します。 |
| ObjectGetValueByTime | 指定された時間に対応する価格をオブジェクトから取得します。 |
| ObjectMove | 指定されたオブジェクトを新しい位置に移動します。 |
| ObjectsTotal | チャート上のオブジェクトの総数を返します。 |
| ObjectGetDouble | 指定されたオブジェクトのプロパティ値(double型)を取得します。 |
| ObjectGetInteger | 指定されたオブジェクトのプロパティ値(整数型)を取得します。 |
| ObjectGetString | 指定されたオブジェクトのプロパティ値(文字列型)を取得します。 |
| ObjectSetDouble | 指定されたオブジェクトのプロパティ値(double型)を設定します。 |
| ObjectSetInteger | 指定されたオブジェクトのプロパティ値(整数型)を設定します。 |
| ObjectSetString | 指定されたオブジェクトのプロパティ値(文字列型)を設定します。 |
| TextSetFont | テキストオブジェクトのフォント名、サイズ、スタイル、重さを設定します。 |
| TextOut | チャートに直接テキストを描画します。 |
| TextGetSize | 指定されたテキストのサイズを取得します。 |
| ObjectDescription | オブジェクトの説明を取得します。 |
| ObjectGet | オブジェクトのプロパティを取得します。 |
| ObjectGetFiboDescription | フィボナッチオブジェクトのレベル説明を取得します。 |
| ObjectGetShiftByValue | 指定された価格に対応するオブジェクトのシフトを取得します。 |
| ObjectGetValueByShift | 指定されたシフトに対応するオブジェクトの価格を取得します。 |
| ObjectSet | オブジェクトの特定のプロパティを設定します。 |
| ObjectSetFiboDescription | フィボナッチオブジェクトのレベル説明を設定します。 |
| ObjectSetText | オブジェクトにテキストを設定します。 |
| ObjectType | オブジェクトのタイプを取得します。 |



コメント