描画テキストを表示 TextOut 関数

関数

オブジェクト関数

TextOut 関数

 この関数は、取引チャート上に直接テキストを出力します。

 カスタム配列 (バッファ) にテキストを表示し、その操作の結果を返します。配列は、グラフィックリソースを作成するように設計されています。

データ型と構成・戻り値

bool TextOut(①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨);

 戻り値は、処理が成功した場合は true、それ以外は falseが返されます。

引数 [9]

 TextOut関数は 9個の引数で構成されます。


引数名データ型単位初期値説明
textconst string表示するテキスト。バッファに書き込まれます。テキストは一行で表示されます。
xint表示するテキストのX座標のアンカーポイント。
yint表示するテキストのY座標のアンカーポイント。
anchoruint表示するテキストの位置。水平方向と垂直方向の2つのフラグを組み合わせて設定します。
&data[]uintテキストを書き込むバッファ。バッファはグラフィックリソースの作成に使用されます。
widthuintpixelバッファの幅。
heightuintpixelバッファの高さ。
coloruintテキストの
color_formatenumカラーフォーマット。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);
}

インジケータ用コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果 

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