跳至内容

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() 函数指标中处理:

  • 旧名称物件删除事件;
  • 新名称物件新建事件。

这里有在创建每个物件类型时必须指定的一定数量的定位点:

ID描述定位点
OBJ_VLINE垂直线一个定位点。实际上只使用时间坐标。
OBJ_HLINE水平线一个定位点。实际上只使用价格坐标。
OBJ_TREND趋势线两个定位点。
OBJ_TRENDBYANGLE角度趋势线两个定位点。
OBJ_CYCLES循环线两个定位点。
OBJ_ARROWED_LINE箭头线两个定位点。
OBJ_CHANNEL等距通道三个定位点。
OBJ_STDDEVCHANNEL标准偏差通道两个定位点。
OBJ_REGRESSION线性回归通道两个定位点。
OBJ_PITCHFORK安德鲁鱼叉理论三个定位点。
OBJ_GANNLINE江恩线两个定位点。
OBJ_GANNFAN江恩扇形线两个定位点。
OBJ_GANNGRID江恩网格两个定位点。
OBJ_FIBO斐波纳契回调线两个定位点。
OBJ_FIBOTIMES斐波纳契时间周期线两个定位点。
OBJ_FIBOFAN斐波纳契扇形线两个定位点。
OBJ_FIBOARC斐波纳契角度线两个定位点。
OBJ_FIBOCHANNEL斐波纳契通道三个定位点。
OBJ_EXPANSION斐波纳契扩展线三个定位点。
OBJ_ELLIOTWAVE5埃利奥特波动五个定位点。
OBJ_ELLIOTWAVE3埃利奥特修正波三个定位点。
OBJ_RECTANGLE矩形两个定位点。
OBJ_TRIANGLE三角形三个定位点。
OBJ_ELLIPSE椭圆形三个定位点。
OBJ_ARROW_THUMB_UP拇指向上一个定位点。
OBJ_ARROW_THUMB_DOWN拇指向下一个定位点。
OBJ_ARROW_UP箭头向上一个定位点。
OBJ_ARROW_DOWN箭头向下一个定位点。
OBJ_ARROW_STOP停止符号一个定位点。
OBJ_ARROW_CHECK检查符号一个定位点。
OBJ_ARROW_LEFT_PRICE向左价格标签一个定位点。
OBJ_ARROW_RIGHT_PRICE向右价格标签一个定位点。
OBJ_ARROW_BUY买入符号一个定位点。
OBJ_ARROW_SELL卖出符号一个定位点。
OBJ_ARROW箭头一个定位点。
OBJ_TEXT文本一个定位点。
OBJ_LABEL标签使用 OBJPROP_XDISTANCEOBJPROP_YDISTANCE 属性设置位置。
OBJ_BUTTON按钮使用 OBJPROP_XDISTANCE and OBJPROP_YDISTANCE属性设置位置。
OBJ_CHART图表使用 OBJPROP_XDISTANCE and OBJPROP_YDISTANCE属性设置位置。
OBJ_BITMAP位图一个定位点。
OBJ_BITMAP_LABEL位图标签使用 OBJPROP_XDISTANCE and OBJPROP_YDISTANCE 属性设置位置。
OBJ_EDIT编辑使用OBJPROP_XDISTANCE and OBJPROP_YDISTANCE 属性设置位置。
OBJ_EVENT经济日历中对应事件的"事件"物件一个定位点。实际上只使用时间坐标。
OBJ_RECTANGLE_LABEL用于创建和设计自定义图形界面的“矩形标签”对象。使用OBJPROP_XDISTANCE and OBJPROP_YDISTANCE 属性设置位置。