MQL4(MT4) TextOutの使い方

MQL4 Reference
スポンサーリンク

TextOut()の使い方

MQL4 (MT4)のTextOut()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。

使用GPTs:EA Creator

MT4 MQL4のTextOutの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。

使い方

TextOut関数は、MetaTrader 4 (MT4) のMQL4言語で、指定された位置にテキストを描画するために使用されます。この関数は、特にカスタムインジケーターやエキスパートアドバイザー(EA)内でチャートに直接テキストを表示したい場合に便利です。

TextOut関数の使用法

bool TextOut(
   long        chart_id,      // チャート識別子
   const string text,         // 描画するテキスト
   int         x,             // X座標(ピクセル単位)
   int         y,             // Y座標(ピクセル単位)
   uint        anchor,        // アンカー位置
   color       text_color,    // テキストの色
   string      font_name,     // フォント名
   int         font_size,     // フォントサイズ
   uint        flags=0,       // フラグ(太字、斜体など)
   int         angle=0        // テキストの角度
);

使用例

以下は、現在のチャートの左上隅に”Hello, World!”というテキストを描画する実装例です。

void OnStart()
{
    long chartID = ChartID(); // 現在のチャートIDを取得
    string text = "Hello, World!";
    int x = 10; // X座標
    int y = 20; // Y座標
    color textColor = clrRed; // テキストの色を赤に設定
    string fontName = "Arial"; // フォント名
    int fontSize = 12; // フォントサイズ

    // TextOut関数を使用してテキストを描画
    if(TextOut(chartID, text, x, y, ANCHOR_LEFT_UPPER, textColor, fontName, fontSize))
    {
        Print("テキストが描画されました: ", text);
    }
    else
    {
        Print("テキストの描画に失敗しました。");
    }
}

注意点

  • 座標の指定: xyの座標は、チャートウィンドウ内でのピクセル単位での位置を指定します。座標の起点はチャートウィンドウの左上隅です。
  • アンカー位置: anchorパラメータは、テキストのアンカー(基準点)を指定します。ANCHOR_LEFT_UPPERなどの定数を使用して、テキストの配置を制御できます。
  • フォントとスタイル: fontNamefontSizeflagsを使用して、テキストのフォント、サイズ、スタイル(太字、斜体など)を設定します。
  • 色の指定: text_colorには、clrRedなどの定義済みの色定数またはRGB値を使用して、テキストの色を指定します。
  • 描画の永続性: TextOutで描画されたテキストは、チャートの再描画(例えば、新しいティックの到着やチャートのスクロール)によって消去される可能性があります。永続的なテキスト表示が必要な場合は、OnChartEvent関数内で再描画イベントを処理するか、オブジェクト(OBJ_LABELOBJ_TEXT)を使用してテキストを表示することを検討してください。

TextOut関数を使用することで、MQL4スクリプトから直接チャートにテキストを描画し、ユーザーに追加情報を提供することが可能になります。

MQL4リファレンス

正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/textout

他のオブジェクト関数の利用方法

以下のそれぞれのリンク先で確認していますので、ご参照ください。

関数名概要
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オブジェクトのタイプを取得します。

関連記事

スポンサーリンク
海外FXキャッシュバック口座開設ならTariTali(タリタリ)

コメント

タイトルとURLをコピーしました