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("テキストの描画に失敗しました。");
}
}
注意点
- 座標の指定:
x
とy
の座標は、チャートウィンドウ内でのピクセル単位での位置を指定します。座標の起点はチャートウィンドウの左上隅です。 - アンカー位置:
anchor
パラメータは、テキストのアンカー(基準点)を指定します。ANCHOR_LEFT_UPPER
などの定数を使用して、テキストの配置を制御できます。 - フォントとスタイル:
fontName
、fontSize
、flags
を使用して、テキストのフォント、サイズ、スタイル(太字、斜体など)を設定します。 - 色の指定:
text_color
には、clrRed
などの定義済みの色定数またはRGB値を使用して、テキストの色を指定します。 - 描画の永続性:
TextOut
で描画されたテキストは、チャートの再描画(例えば、新しいティックの到着やチャートのスクロール)によって消去される可能性があります。永続的なテキスト表示が必要な場合は、OnChartEvent
関数内で再描画イベントを処理するか、オブジェクト(OBJ_LABEL
やOBJ_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 | オブジェクトのタイプを取得します。 |
コメント