ObjectCreate関数(MQL4)|図形を作成

2024年10月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

MetaTrader4(MT4)は、非常に多機能な取引プラットフォームであり、その中でも図形を作成する機能は、トレーダーがチャートをより視覚的に理解するための強力なツールです。この記事では、MT4で図形を作成する方法について、初心者向けにわかりやすく解説します。

ObjectCreate関数|図形作成の基本

MT4で図形を作成するには、ObjectCreate関数を使用します。この関数を使うことで、トレンドラインやフィボナッチライン、四角形、三角形、丸、矢印など、さまざまな図形をチャート上に表示できます。

以下は、ObjectCreate関数の基本的な仕様です。

ObjectCreate関数の仕様
bool ObjectCreate(
    string name,      // 図形名称(重複不可)
    int type,         // 図形種類
    int window,       // ウィンドウ番号(0:メインウィンドウ、1~:サブウィンドウ)
    datetime time1,   // 1点目の位置(時間:X軸)
    double price1,    // 1点目の位置(価格:Y軸)
    datetime time2=0, // 2点目の位置(時間:X軸)
    double price2=0,  // 2点目の位置(価格:Y軸)
    datetime time3=0, // 3点目の位置(時間:X軸)
    double price3=0   // 3点目の位置(価格:Y軸)
);

この関数は、図形の作成に成功すると true を返し、失敗すると false を返します。エラーが発生した場合は、GetLastError 関数を使ってエラー情報を取得できます。

図形作成のポイント
図形を作成する際には、チャート上に描画する位置を指定する必要があります。これは時間(X軸)と価格(Y軸)の組み合わせで指定します。図形の種類によっては、複数の点を指定する必要があります。

例えば、ラベル(OBJ_LABEL)の場合は、絶対座標(ピクセル)を OBJPROP_XDISTANCE および OBJPROP_YDISTANCE を使って指定します。垂直ラインのように、時間(X軸)だけを指定すれば良い場合もあります。

以下は、ObjectCreate 関数を使ってテキストオブジェクトとラベルオブジェクトを作成するサンプルコードです。

サンプルコード
// テキストオブジェクトを作成
if (ObjectCreate(“text_object", OBJ_TEXT, 0, D’2024.07.06 12:30′, 1.0045) == false) {
    Print(“error: can’t create text_object! code #", GetLastError());
}

// ラベルオブジェクトを作成
if (ObjectCreate(“label_object", OBJ_LABEL, 0, 0, 0) == false) {
    Print(“error: can’t create label_object! code #", GetLastError());
}

// ラベルオブジェクトの位置を設定
ObjectSet(“label_object", OBJPROP_XDISTANCE, 200);
ObjectSet(“label_object", OBJPROP_YDISTANCE, 100);

このサンプルコードでは、まず text_object という名前のテキストオブジェクトを作成し、その後 label_object という名前のラベルオブジェクトを作成しています。各オブジェクトの作成に失敗した場合、エラーメッセージがプリントされます。また、label_object の位置を指定するために、OBJPROP_XDISTANCE と OBJPROP_YDISTANCE プロパティを設定しています。

まとめ

MetaTrader4のObjectCreate関数を使えば、チャート上にさまざまな図形を簡単に作成できます。これにより、トレーダーはチャートをより視覚的に理解しやすくなり、取引の精度を向上させることができます。初心者の方も、この記事を参考にぜひ図形作成に挑戦してみてください。

MQL4

Posted by 佐川直弘