ObjectCreate
ObjectCreate
在制定图表子窗口中,函数创建指定名称,类型和原坐标物件,在创建期间可以指定到30个坐标。
bool ObjectCreate(
long chart_id, // 图表标识符
string name, // 物件名称
ENUM_OBJECT type, // 物件类型
int sub_window, // 窗口索引
datetime time1, // 第一定位点的时间
double price1, // 第一定位点的价格
...
datetime timeN=0, // 第N个定位点的时间
double priceN=0, //
...
datetime time30=0, // 第30个定位点的时间
double price30=0 // 第30个定位点的价格
);参量
- chart_id
[in] 图表标识符。0代表当前图表。
- name
[in] 物件名称。名称在图表中是唯一的,包括子窗口。
- 类型
[in] 物件类型。值可以是 ENUM_OBJECT 值中的一个。
- sub_window
[in] 图表子窗口数量。0代表主图表窗口,指定子窗口一定存在,否则函数返回错误值。
- time1
[in] 第一定位点的时间坐标。
- price1
[in] 第一定位点的价格坐标。
- timeN=0
[in] N点时间坐标。
- priceN=0
[in] N点的价格坐标。
- time30=0
[in] 第三十定位点的时间坐标。
- price30=0
[in] 第三十定位点的价格坐标。
返回值
如果命令成功添加到指定图表队列那么函数返回true,否则返回false。如果对象已经创建,则会尝试改变它的坐标。
注释
非同步调用通常用于ObjectCreate(),这也是函数仅返回命令添加到图表队列的结果。在这种情况下,true仅表示命令已成功加入队列,但执行结果尚不可知。
若要检查命令执行结果,您可以使用ObjectFind()函数或任何其他请求对象属性的函数,例如ObjectGetXXX。但是,您需要牢记的是这类函数将被加入到图表的队尾,需要等待执行结果(因为同步调用),因此,可能会耗费大量时间。当处理图表上的大量对象时应该考虑这个特性。
对象名称不应超过63个字符。
图表子窗口的数量(如果图表中有附带指标的子窗口)以1开始,图表主窗口总是以0开始检索。
大量定位点(到30)提供更多使用,于此同时限制图表中的30个可能的定位点,调用的大量参量不能超过64。
当物件重命名,两个事件同时形成。这些事件可以在EA交易或者 OnChartEvent() 函数指标中处理:
- 旧名称物件删除事件;
- 新名称物件新建事件。
这里有在创建每个物件类型时必须指定的一定数量的定位点: