この関数は、指定されたチャートの指定されたチャートサブウィンドウに、指定された名前、タイプ、および初期座標を持つオブジェクトを作成します。この関数には2つのバリアントがあります。
bool ObjectCreate( |
この関数は、指定されたチャートサブウィンドウで、指定された名前、タイプ、および初期座標を持つオブジェクトを作成します。
bool ObjectCreate( |
パラメーター
chart_id
[in]チャート識別子。
object_name
[入力]オブジェクトの名前。名前は、サブウィンドウを含むチャート内で一意である必要があります。
object_type
[in]オブジェクトタイプ。値は、ENUM_OBJECT列挙の値のいずれかです。
sub_window
[in]チャートサブウィンドウの番号。0はメインチャートウィンドウを意味します。指定されたサブウィンドウが存在する必要があります(ウィンドウインデックスは0以上、WindowsTotal()未満である必要があります)。
time1
[in]最初のアンカーポイントの時間座標。
価格1
[in]最初のアンカーポイントの価格座標。
time2 = 0
[入力] 2番目のアンカーポイントの時間座標。
price2 = 0
[入力] 2番目のアンカーポイントの価格座標。
time3 = 0
[入力] 3番目のアンカーポイントの時間座標。
price3 = 0
[入力] 3番目のアンカーポイントの価格座標。
HOUR = 0
[in] N番目のアンカーポイントの時間座標。
PRICE = 0
[in] N番目のアンカーポイントの価格座標。
戻り値
関数が現在のチャートで使用される場合、チャートは直接アクセスされ(MQL4の通常の動作)、trueの戻り値はオブジェクトの作成が成功したことを意味します。そうでない場合はfalseが返されます。この場合、エラーの詳細についてはGetLastError()を呼び出す必要があります。
異なるサイズでオブジェクトを作成するには、非同期関数呼び出しを使用し、ObjectCreate()はチャートキューに追加するコマンドの結果のみを返します。この場合、trueは、オブジェクト作成コマンドが正常にキューに登録され、コマンドの実行結果が不明であることを意味します。コマンドの実行結果を確認するには、ObjectFind関数、またはObjectGetXXXなどのオブジェクトプロパティを要求するその他の関数を使用できます。ただし、そのような関数はそのチャートのキューの最後に追加され、(同期呼び出しにより)実行結果を待機するため、時間がかかることに注意してください。
注意
オブジェクト名は63文字を超えてはなりません。現在のコードページに属さない文字は許可されません(UnicodeからANSIに変換できない文字は「?」に置き換えられます)。異なるコードページを持つユーザーにプログラムを配布する場合は、オブジェクト名にラテン文字を使用することを強くお勧めします。
OBJ_LABELタイプのオブジェクトは座標を無視します。ObjectSet()関数を使用して、OBJPROP_XDISTANCEおよびOBJPROP_YDISTANCEプロパティを設定します。チャートのサブウィンドウ(チャートにインジケータのあるサブウィンドウがある場合)は1から始まります。チャートのメインウィンドウは常に存在し、インデックスは0です。座標は、時間と価格のペアで渡す必要があります。たとえば、OBJ_VLINEオブジェクトに必要なのは時間だけですが、価格(任意の値)も渡す必要があります。
例:
//+——————————————————————+ |