ObjectCreate

この関数はオブジェクトを生成します。
オブジェクト生成時に名前・タイプ・チャートサブウインドウ座標を指定します。
関数は2種類のバリアントがあります。

ObjectCreate

関数書式

bool  ObjectCreate(
   long          chart_id,      // チャートID
   string        object_name,   // オブジェクト名
   ENUM_OBJECT   object_type,   // オブジェクトタイプ
   int           sub_window,    // ウインドウインデックス
   datetime      time1,         // 1番目の時間のアンカーポイント
   double        price1,        // 1番目の価格のアンカーポイント
   ...
   datetime      timeN  = 0,    // N番目の時間のアンカーポイント
   double        priceN = 0     // N番目の価格のアンカーポイント
   );
bool  ObjectCreate(
   string        object_name,   // オブジェクト名
   ENUM_OBJECT   object_type,   // オブジェクトタイプ
   int           sub_window,    // ウインドウインデックス
   datetime      time1,         // 1番目の時間のアンカーポイント
   double        price1,        // 1番目の価格のアンカーポイント
   datetime      time2,         // 2番目の時間のアンカーポイント
   double        price2,        // 2番目の価格のアンカーポイント
   datetime      time3,         // 3番目の時間のアンカーポイント
   double        price3        // 3番目の価格のアンカーポイント
   );
  • 引数
引数名初期値I/O詳細
chart_id-InチャートID
object_name-Inオブジェクト名。
チャート(サブウインドウを含め)内で固有の名称である必要があります。
object_type-Inオブジェクトタイプ。
ENUM_OBJECT列挙の値を指定します。
sub_window-Inチャートサブウインドウの番号。
0はメインチャートウインドウを意味します。
指定したサブウインドウ番号は存在しているもの(WindowsTotal()関数で返される値未満)に限ります、
存在していないサブウインドウ番号を指定した場合は戻り値にfalseが返されます。
time1-In1番目の時間のアンカーポイント
price1-In1番目の価格のアンカーポイント
time20In2番目の時間のアンカーポイント
price20In2番目の価格のアンカーポイント
time30In3番目の時間のアンカーポイント
price30In3番目の価格のアンカーポイント
timeN0InN番目の時間のアンカーポイント
priceN0InN番目の価格のアンカーポイント
  • 戻り値

オブジェクト作成された場合はtrueを返します。
既に同じ名前のオブジェクトが作成されている場合はfalseを返します。
エラーコードの確認はGetLastError()関数を使用します。

  • その他

l

OBJ_LABELタイプのオブジェクトは座標設定(引数のtime,price)を無視します。
ObjectSet()関数を使用して、OBJPROP_XDISTANCEとOBJPROP_YDISTANCEプロパティで設定する必要があります。

座標は引数のtimeとpriceのペアで渡す必要があります。
例えば、OBJ_VLINEタイプのオブジェクトは時間(time1)だけ必要ですが、
価格(price1)の値も渡す必要があります(この場合価格の値は任意の値で構いません)。

  • サンプルソース
void OnInit(){
    // オブジェクト全削除
    ObjectsDeleteAll();

    // 垂直線オブジェクト(Time[10]の位置に作成)
    ObjectCreate("obj_vline",OBJ_VLINE,0,Time[10],0);

    // Time[10]とClose[10]のピクセル座標取得
    int pixcel_x,pixcel_y;
    ChartTimePriceToXY( 0,0, Time[10],Close[10], pixcel_x,pixcel_y );

    // テキストラベルオブジェクト生成
    ObjectCreate( "obj_label", OBJ_LABEL,0,0,0);               // テキストラベルオブジェクト生成
    ObjectSet(    "obj_label", OBJPROP_XDISTANCE,pixcel_x);    // テキストラベルオブジェクトX軸位置設定
    ObjectSet(    "obj_label", OBJPROP_YDISTANCE,pixcel_y);    // テキストラベルオブジェクトY軸位置設定

    // テキストラベルオブジェクト、テキストタイプ設定
    ObjectSetText("obj_label", "ラベル表示" , 11 , "MS ゴシック" , clrWhite); 
}

Twitterでフォローしよう

おすすめの記事