ObjectCreate 関数
この関数は、指定したチャートウィンドウに、指定した名前、描画タイプ、初期座標(X軸,Y軸)の情報を持つオブジェクト(チャート上に描画する線や図形、文字)を作成します。
データ型と構成・戻り値
この関数には、2つの型があります。
EAは EAを設定したチャート上で動かすので、通常はチャートID無の型で良いです。
bool ObjectCreate(①, ②, ③, ④, ⑤, ⑥, …); //チャートID有の型
bool ObjectCreate(②, ③, ④, ⑤, ⑥, …); //チャートID無の型
戻り値は、オブジェクトが作成できた場合 true、それ以外は falseが返されます。
発生するエラーについては、GetLastError関数で取得することが出来ます。
引数 [5~64]
ObjectCreate 関数は 5個以上64個以下の引数で構成されます。最低 5個の引数が必要です。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | chart_id | long | - | - | チャートIDを設定。現在のチャートIDは「0」を指定するか、ChartID関数を使うことで取得できます。 |
② | object_name | string | - | - | オブジェクト名を設定。63文字以内で他のオブジェクト名と重複しない半角英数文字を使用してください。 |
③ | object_type | ENUM | - | - | オブジェクトタイプを設定。 ENUM_OBJECT 列挙値から指定します。 |
④ | sub_window | int | - | - | チャートウィンドウの番号。0はチャートメインウィンドウでチャートサブウィンドウは 1から始まります。 |
⑤ | time1 | datetime | - | - | 1番目のアンカーポイントの時間座標(X軸位置)。 |
⑥ | price1 | double | - | - | 1番目のアンカーポイントの価格座標(Y軸位置)。 |
… | timeN | datetime | - | - | 以後⑤⑥をN番目として設定した引数分繰り返します。 N番目のアンカーポイントの時間座標。 |
… | priceN | double | - | - | N番目のアンカーポイントの価格座標。 |
使用例
ObjectCreate 関数によるオブジェクトの描画
オブジェクトを描画するチャートにインジケータのモメンタムを表示させてサブウィンドウを一つ作っておきます。モメンタムのインジケータをサブウィンドウに表示させる方法はこちらを参考にしてください。
このチャートメインウィンドウに①垂直線と②水平線、チャートサブウィンドウに③垂直線を描画させます。
以下のコードの ObjectCreate関数では、チャートID無しの型を使っています。
コード
// ObjectCreate関数によるオブジェクトの作成
#property strict
void OnInit() {
ObjectsDeleteAll(); // オブジェクト全削除
ObjectCreate("obj1", OBJ_VLINE, 0, Time[10], 0); // ①垂直線(メインウィンドウ)
ObjectCreate("obj2", OBJ_HLINE, 0, 0, Ask); // ②水平線(メインウィンドウ)
ObjectCreate("obj3", OBJ_VLINE, 1, Time[5], 0); // ③垂直線(サブウィンドウ)
}
void OnDeinit(const int reason) {
ObjectsDeleteAll();
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
線の色や線幅などのスタイルは ObjectSet関数から設定が出来ます。