オブジェクトが接続されているチャートのコーナー

グラフィックオブジェクトの系列があり、グラフィックオブジェクトの為に、それに対してピクセルで座標を表示するチャートの隅を指定することができます。これは次のオブジェクトタイプです。(括弧内にオブジェクトタイプの識別子が書かれています)

  • Label (OBJ_LABEL); テキストラベル
  • Button (OBJ_BUTTON); ボタン
  • Bitmap Label (OBJ_BITMAP_LABEL); グラフィックラベル
  • Edit (OBJ_EDIT); 入力欄
  • Rectangle Label (OBJ_RECTANGLE_LABEL). 長方形ラベル

オブジェクト

インディケータ

X/Y

Width/Height

Date/Price

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

Text

OBJ_TEXT

はい

はい

はい

Label

OBJ_LABEL

はい

はい(読み取り専用)

はい

はい

はい

Button

OBJ_BUTTON

はい

はい

はい

Bitmap

OBJ_BITMAP

はい(読み取り専用)

はい

はい

Bitmap Label

OBJ_BITMAP_LABEL

はい

はい(読み取り専用)

はい

はい

Edit

OBJ_EDIT

はい

はい

はい

Rectangle Label

OBJ_RECTANGLE_LABEL

はい

はい

はい

表には次の名称を使用しています。

  • X/Y—チャートの隅の1つに対してピクセル単位でアンカーポイントが指定されます。
  • Width/Height—オブジェクトの幅と高さ。『読み取り専用』が指定されている場合、チャート上にオブジェクトが描画された後にのみ、幅と高さの値が計算されることを意味しています。
  • Date/Price—アンカーポイントが日付と価格のペアで指定されます。
  • OBJPROP_CORNER—チャートの隅を指定し、それに対してアンカーポイントが指定されます。ENUM_BASE_CORNERリストの4つの値のうちの1つになる場合があります。
  • OBJPROP_ANCHOR—オブジェクトでのアンカーポイントの位置を指定します。ENUM_ANCHOR_POINTリストの9つの値のうちの1つになる場合があります。このポイントから選択したチャートの隅まで、ピクセル単位で座標が表示されます。
  • OBJPROP_ANGLE—反時計回りにオブジェクトの回転角度を指定します。

X とY 座標がピクセル単位で測定されるチャートのコーナーを指定するには ObjectSetInteger(chartID, name, OBJPROP_CORNERchart_corner) を使用します。

  • chartID - チャート識別子
  • name –  グラフィックオブジェクトの名称
  • OBJPROP_CORNER – 0 座標の隅を指定するプロパティ識別子
  • chart_corner – 希望するチャートのコーナーで ENUM_BASE_CORNER 列挙体の値のいずれか

ENUM_BASE_CORNER

ID

説明

CORNER_LEFT_UPPER

座標の中心がチャートの右上隅。

CORNER_LEFT_LOWER

座標の中心がチャートの左下隅。

CORNER_RIGHT_LOWER

座標の中心がチャートの右下隅。

CORNER_RIGHT_UPPER

座標の中心がチャートの右上隅。

例:

void CreateLabel(long   chart_id,
                string name,
                int    chart_corner,
                int    anchor_point,
                string text_label,
                int    x_ord,
                int    y_ord)
 {
//---
  if(ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0))
    {
    ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner);
    ObjectSetInteger(chart_id,name,OBJPROP_ANCHOR,anchor_point);
    ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
    ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
    ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
    }
  else
    Print("オブジェクトOBJ_LABELの作成に失敗しました",name,", エラーコード = ", GetLastError());
 }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
//---
  int height=(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
  int width=(int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
  string arrows[4]={"LEFT_UPPER","RIGHT_UPPER","RIGHT_LOWER","LEFT_LOWER"};
  CreateLabel(0,arrows[0],CORNER_LEFT_UPPER,ANCHOR_LEFT_UPPER,arrows[0],50,50);
  CreateLabel(0,arrows[1],CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,arrows[1],50,50);
  CreateLabel(0,arrows[2],CORNER_RIGHT_LOWER,ANCHOR_RIGHT_LOWER,arrows[2],50,50);
  CreateLabel(0,arrows[3],CORNER_LEFT_LOWER,ANCHOR_LEFT_LOWER,arrows[3],50,50);
 }