TextOut 関数
この関数は、取引チャート上に直接テキストを出力します。
カスタム配列 (バッファ) にテキストを表示し、その操作の結果を返します。配列は、グラフィックリソースを作成するように設計されています。
データ型と構成・戻り値
bool TextOut(①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
引数 [9]
TextOut関数は 9個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | text | const string | - | - | 表示するテキスト。バッファに書き込まれます。テキストは一行で表示されます。 |
② | x | int | - | - | 表示するテキストのX座標のアンカーポイント。 |
③ | y | int | - | - | 表示するテキストのY座標のアンカーポイント。 |
④ | anchor | uint | - | - | 表示するテキストの位置。水平方向と垂直方向の2つのフラグを組み合わせて設定します。 |
⑤ | &data[] | uint | - | - | テキストを書き込むバッファ。バッファはグラフィックリソースの作成に使用されます。 |
⑥ | width | uint | pixel | - | バッファの幅。 |
⑦ | height | uint | pixel | - | バッファの高さ。 |
⑧ | color | uint | - | - | テキストの色。 |
⑨ | color_format | enum | - | - | カラーフォーマット。ENUM_COLOR_FORMAT 列挙値から選択。 |
引数④の水平方向と垂直方向のフラグ。
水平方向のフラグ
フラグ名 | 説明 |
---|---|
TA_LEFT | 境界ボックスの左側をアンカーポイントに設定。 |
TA_CENTER | 境界ボックスの中心をアンカーポイントに設定。 |
TA_RIGHT | 境界ボックスの右側をアンカーポイントに設定。 |
垂直方向のフラグ
フラグ名 | 説明 |
---|---|
TA_TOP | 境界ボックスの上側をアンカーポイントに設定。 |
TA_VCENTER | 境界ボックスの中心をアンカーポイントに設定。 |
TA_BOTTOM | 境界ボックスの下側をアンカーポイントに設定。 |
使用例
TextOut関数によるテキストの表示
TextOut関数を使って、取引チャート上に設定したテキストを出力します。
次のコードはインジケータ用のコードです。インジケータ用コードの作成方法についてはこちらを参考にしてください。
コード
// TextOut関数によるテキストの表示
#property strict
#property indicator_chart_window // メインウィンドウに表示
#define IMG_WIDTH 150 // 描画 幅 pixel
#define IMG_HEIGHT 150 // 描画 高さpixel
uint ExtImg[IMG_WIDTH * IMG_HEIGHT]; // 描画 配列(バッファ)
int i=0;
void OnInit() {
ObjectsDeleteAll();
ArrayFill(ExtImg, 0, IMG_WIDTH * IMG_HEIGHT, 0);
ObjectCreate(0, "TEST", OBJ_BITMAP_LABEL, 0, 0, 0);
ObjectSetString(0, "TEST", OBJPROP_BMPFILE, "::IMG");
}
void OnDeinit(const int reason) { //終了処理
ObjectsDeleteAll(); // オブジェクトテキストをEA削除時消すための処理
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
ArrayFill(ExtImg, 0, IMG_WIDTH * IMG_HEIGHT ,0);
TextSetFont("MS Pゴシック", 20, FONT_UNDERLINE|FW_EXTRABOLD, 450);
string text = "Tick数" + (string)i++;
TextOut(text, 30, 100, TA_LEFT|TA_TOP, ExtImg, IMG_WIDTH, IMG_HEIGHT, clrWhite, COLOR_FORMAT_XRGB_NOALPHA);
ResourceCreate("::IMG", ExtImg, IMG_WIDTH, IMG_HEIGHT, 0, 0, IMG_WIDTH, COLOR_FORMAT_XRGB_NOALPHA);
ChartRedraw();
return(rates_total);
}
インジケータ用コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)