MQL4标准常量详解(三):对象类型与属性

对象类型

对象属性

对象可视性

在MQL4编程中,为了简化程序编写,使代码编辑与阅读更加便捷,系统预定义了一系列标准常量。这些常量类似于宏替换,本质上属于整数类型(int),并按照功能用途进行了分组归类。

对象类型

对象类型常量主要用于ObjectCreate(), ObjectsDeleteAll() 以及 ObjectType() 函数中,LMAX外汇平台用以指定图表上对象的具体形态。以下是可用的常用值:

一个对象可能关联1至3个坐标,具体数量取决于其类型。

常数值描述OBJ_VLINE0垂直线,使用第一坐标的时间部分。OBJ_HLINE1水平线,使用第一坐标的价格部分。OBJ_TREND2趋势线,需要使用两个坐标。OBJ_TRENDBYANGLE3趋势角度线,仅使用一个坐标,线的角度可通过ObjectSet()函数进行设置。OBJ_REGRESSION4回归线,使用前两个坐标的时间部分。OBJ_CHANNEL5通道线,需要三个坐标。OBJ_STDDEVCHANNEL6标准差通道,使用前两个坐标的时间部分。OBJ_GANNLINE7甘氏线,使用两个坐标,但会忽略第二个坐标的价格部分。OBJ_GANNFAN8甘氏扇形线,使用两个坐标,并忽略第二个坐标的价格部分。OBJ_GANNGRID9甘氏网格线,使用两个坐标,且忽略第二个坐标的价格部分。OBJ_FIBO10斐波纳契回撤线,需要两个坐标。OBJ_FIBOTIMES11斐波纳契时间周期线,使用两个坐标。OBJ_FIBOFAN12斐波纳契扇形线,使用两个坐标。OBJ_FIBOARC13斐波纳契弧线,使用两个坐标。OBJ_EXPANSION14斐波纳契扩展线,需要三个坐标。OBJ_FIBOCHANNEL15斐波纳契通道,需要三个坐标。OBJ_RECTANGLE16矩形,使用两个坐标。OBJ_TRIANGLE17三角形,需要三个坐标。OBJ_ELLIPSE18椭圆形,使用两个坐标。OBJ_PITCHFORK19安德鲁分叉线,需要三个坐标。OBJ_CYCLES20周期线,使用两个坐标。OBJ_TEXT21文本,仅使用一个坐标定位。OBJ_ARROW22箭头,使用一个坐标。OBJ_LABEL23文本标签,按像素使用一个坐标。对象属性

对象的值索引在ObjectGet() 和 ObjectSet() 函数中广泛使用,用于读取或修改对象的具体属性。其常用值包括:

常数值类型描述OBJPROP_TIME10datetime设置/获取第一个坐标的时间部分数值。OBJPROP_PRICE11double设置/获取第一个坐标的价格部分数值。OBJPROP_TIME22datetime设置/获取第二个坐标的时间部分数值。OBJPROP_PRICE23double设置/获取第二个坐标的价格部分数值。OBJPROP_TIME34datetime设置/获取第三个坐标的时间部分数值。OBJPROP_PRICE35double设置/获取第三个坐标的价格部分数值。OBJPROP_COLOR6color设置/获取对象颜色的数值。OBJPROP_STYLE7int设置/获取对象的线型样式,可取STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT之一。OBJPROP_WIDTH8int设置/获取对象的线宽数值,范围是1到5。OBJPROP_BACK9bool设置/获取对象作为背景线显示的布尔标志。OBJPROP_RAY10bool设置/获取对象射线属性的布尔标志。OBJPROP_ELLIPSE11bool设置/获取斐波纳契弧线的椭圆标志。OBJPROP_SCALE12double设置/获取对象的缩放属性数值。OBJPROP_ANGLE13double设置/获取对象的角属性数值。OBJPROP_ARROWCODE14int设置/获取箭头代码对象的属性数值。OBJPROP_TIMEFRAMES15int设置/获取图表显示时段属性,其值为一个或多个时段对象显示常数的组合。OBJPROP_DEVIATION16double设置/获取标准差对象的离差属性值。OBJPROP_FONTSIZE100int设置/获取文本对象的字体大小。OBJPROP_CORNER101int设置/获取标签对象的固定角,取值范围为0至3。OBJPROP_XDISTANCE102int设置/获取对象的固定X轴间隔属性值。OBJPROP_YDISTANCE103int设置/获取对象的固定Y轴间隔属性值。OBJPROP_FIBOLEVELS200int设置/获取斐波纳契对象的水平线数量,可在0到32之间调整。OBJPROP_LEVELCOLOR201color设置/获取对象水平线的颜色。OBJPROP_LEVELSTYLE202int设置/获取对象水平线的线型样式,取值为STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT之一。OBJPROP_LEVELWIDTH203int设置/获取对象水平线的宽度,范围是1到5。OBJPROP_FIRSTLEVEL+n210+nint针对斐波纳契对象的水平线,用于获取或设置第n条水平线的属性,n的取值范围为0到31。对象可视性

对象在图表上的显示时间段可以通过ObjectSet()函数配合OBJPROP_TIMEFRAMES属性进行控制。

常数值描述。OBJ_PERIOD_M10x0001对象仅在1分钟图表中显示。OBJ_PERIOD_M50x0002对象仅在5分钟图表中显示。OBJ_PERIOD_M150x0004对象仅在15分钟图表中显示。OBJ_PERIOD_M300x0008对象仅在30分钟图表中显示。OBJ_PERIOD_H10x0010对象仅在1小时图表中显示。OBJ_PERIOD_H40x0020对象仅在4小时图表中显示。OBJ_PERIOD_D10x0040对象仅在日线图表中显示。OBJ_PERIOD_W10x0080对象仅在周线图表中显示。OBJ_PERIOD_MN10x0100对象仅在月线图表中显示。OBJ_ALL_PERIODS0x01FF对象在所有时间周期图表中均显示。NULL0对象在所有时间周期图表中显示。EMPTY-1在所有时间周期图表中均不显示。