この関数はオブジェクトを生成します。
オブジェクト生成時に名前・タイプ・チャートサブウインドウ座標を指定します。
関数は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 | - | In | 1番目の時間のアンカーポイント |
price1 | - | In | 1番目の価格のアンカーポイント |
time2 | 0 | In | 2番目の時間のアンカーポイント |
price2 | 0 | In | 2番目の価格のアンカーポイント |
time3 | 0 | In | 3番目の時間のアンカーポイント |
price3 | 0 | In | 3番目の価格のアンカーポイント |
timeN | 0 | In | N番目の時間のアンカーポイント |
priceN | 0 | In | N番目の価格のアンカーポイント |
- 戻り値
オブジェクト作成された場合は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);
}