2015年10月22日木曜日

[MT4プログラム]チャートに動かない文字列を表示する。

MT4ではチャート上に文字列を表示する場合、二つの形式があります。

OBJ_TEXTとOBJ_LABELです。

OBJ_TEXTは時間と価格を基準に出力するテキストです。例えばバーの高値・安値などを表示するのに使用します。


OBJ_LABELはX,Yという座標を指定します。これはチャートをスクロールしても同じ位置に表示し続けます。
何かしらチャートの時間軸などに連動しない情報を出力しておくのに役に立ちます。

今回はチャート上に「あいうおえ」ラベルを表示したいと思います。



基本的にはオブジェクトを作って、指定のXY座標に表示するプロパティを設定する形となります。フォント設定がデフォルトではArialになっていますが、このままですと日本語が化けます。
日本語を表示したい場合「MS ゴシック」などの日本語フォントの設定が必要になります。

ブログランキングにご協力よろしくお願いいたしますm(_ _ )m
にほんブログ村 為替ブログへ
にほんブログ村


ソースコードはこちらから


//------------------------------------------------------------------
//初期化
int OnInit()
{
   string objectName = "SHOW_LABEL_TEST";
  
   //ラベルオブジェクトの作成
   if(!ObjectCreate(0, objectName, OBJ_LABEL, 0, 0, 0))
   {
      return(INIT_FAILED);
   }
   // 座標のアンカー位置
   ObjectSetInteger(0, objectName ,OBJPROP_ANCHOR, ANCHOR_LEFT_LOWER);
   // X位置
   ObjectSetInteger(0, objectName, OBJPROP_XDISTANCE, 5);
   // Y位置
   ObjectSetInteger(0, objectName, OBJPROP_YDISTANCE, 30);
   // 色
   ObjectSetInteger(0, objectName, OBJPROP_COLOR, clrWhite);
   // 読み取り専用
   ObjectSetInteger(0, objectName, OBJPROP_READONLY, true);
   // 選択不可
   ObjectSetInteger(0, objectName, OBJPROP_SELECTABLE, false);
   // フォント名
   ObjectSetString(0, objectName, OBJPROP_FONT, "MS ゴシック");
   // フォントサイズ
   ObjectSetInteger(0, objectName, OBJPROP_FONTSIZE, 10);
   // ラベルテキスト内容
   ObjectSetString(0, objectName, OBJPROP_TEXT, "あいうえお" );     

   return(INIT_SUCCEEDED);
}