对象属性
图形对象根据对象类型可以具备多种属性。对象属性的值通过使用图形对象的相应 函数来设置和接收。
技术分析中使用的全部对象绑定时间和价格坐标:趋势线,通道,斐波纳契工具等等。但是有许多辅助对象,意在改善绑定图表始终可见部分的用户界面(主图表窗口或指标子窗口):
对象 |
ID |
X/Y |
宽度/高度 |
日期/价格 |
|||
---|---|---|---|---|---|---|---|
文本 |
― |
― |
是的 |
― |
是的 |
是的 |
|
标签 |
是的 |
是的(只读) |
― |
是的 |
是的 |
是的 |
|
按键 |
是的 |
是的 |
― |
是的 |
― |
― |
|
位图 |
― |
是的(只读) |
是的 |
― |
是的 |
― |
|
位图标签 |
是的 |
是的(只读) |
― |
是的 |
是的 |
― |
|
编辑 |
是的 |
是的 |
― |
是的 |
― |
― |
|
矩形标签 |
是的 |
是的 |
― |
是的 |
― |
― |
以下命名使用在表格中:
- X/Y 相对于图表角落,以像素指定的定位点坐标;
- 宽度/高度 对象有宽度和高度。对于“只读”,只有对象呈现在图表上时才会计算宽度和高度值;
- 日期/价格 使用日期和价格值指定定位点坐标;
- OBJPROP_CORNER 定义了指定定位点坐标相对的图表角落。可以是4个ENUM_BASE_CORNER 枚举值中的一个;
- OBJPROP_ANCHOR 定义了对象本身的定位点,可以是9个 ENUM_ANCHOR_POINT 枚举值中的一个。从这个点到选定的图表角指定像素坐标;
- OBJPROP_ANGLE 定义逆时针对象旋转角度。
定义图形对象属性的函数,以及用于沿着图表创建和移动对象的ObjectCreate() 和 ObjectMove() 操作符实际上是用来向图表发送命令。如果这些函数成功执行,常见的图表事件队列就会包含该命令。当处理图表事件队列时,才会实施图形对象属性的视觉变化。
因此,不要期待调用这些函数后图形对象的即时视觉更新。通常,图表上的图形对象会根据事件变化由程序端自动更新 - 进入新报价,调整图表窗口等。使用ChartRedraw() 函数,强制更新图形对象。
ObjectSetInteger() 和 ObjectGetInteger()函数
标识符 |
描述 |
性质类型 |
---|---|---|
OBJPROP_COLOR |
颜色 |
color |
OBJPROP_STYLE |
类型 |
|
OBJPROP_WIDTH |
路线厚度 |
int |
OBJPROP_BACK |
显示背景上的对象 |
bool |
OBJPROP_ZORDER |
图形对象优先接收点击图表事件(CHARTEVENT_CLICK)。创建对象时默认设置零值;若需要可以提高优先级。当一个接一个地应用对象时,只有级别最高的那个可以收到CHARTEVENT_CLICK 事件。 |
long |
OBJPROP_FILL |
颜色填充对象 ( 为OBJ_RECTANGLE,OBJ_TRIANGLE,OBJ_ELLIPSE,OBJ_CHANNEL, OBJ_STDDEVCHANNEL,OBJ_REGRESSION) |
bool |
OBJPROP_HIDDEN |
禁止在程序端菜单“图表”-“对象”-“对象列表”的对象列表中显示图形对象的名称。真实值允许隐藏列表的对象。默认下,true的设置用于显示日程表事件的对象,交易历史和 MQL5 程序创建的对象。若要看到这种 图形对象 和访问他们的属性,请点击“对象列表”窗口中的“全部”按钮。 |
bool |
OBJPROP_SELECTED |
所选对象 |
bool |
OBJPROP_READONLY |
在编辑对象上编辑文本 |
bool |
OBJPROP_TYPE |
对象类型 |
ENUM_OBJECT r/o |
OBJPROP_TIME |
时间坐标 |
日期时间修饰符=定位点数字 |
OBJPROP_SELECTABLE |
对象可用性 |
bool |
OBJPROP_CREATETIME |
创建对象时间 |
datetime r/o |
OBJPROP_LEVELS |
水平数量 |
int |
OBJPROP_LEVELCOLOR |
线路水平颜色 |
颜色修饰符=水平数字 |
OBJPROP_LEVELSTYLE |
线路水平风格 |
ENUM_LINE_STYLE 修饰符=水平数字 |
OBJPROP_LEVELWIDTH |
线路水平厚度 |
int 修饰符=水平数字 |
OBJPROP_ALIGN |
“编辑”对象中的水平文本对齐 (OBJ_EDIT) |
|
OBJPROP_FONTSIZE |
字体大小 |
int |
OBJPROP_RAY_LEFT |
向左发出射线 |
bool |
OBJPROP_RAY_RIGHT |
向右发出射线 |
bool |
OBJPROP_RAY |
垂直线通过图表的全部窗口 |
bool |
OBJPROP_ELLIPSE |
显示裴波那契弧形对象的全部椭圆形 (OBJ_FIBOARC) |
bool |
OBJPROP_ARROWCODE |
箭头对象代码 |
uchar |
OBJPROP_TIMEFRAMES |
时间表上的对象可见性 |
设置标识 flags |
OBJPROP_ANCHOR |
图解对象的定位点 |
ENUM_ARROW_ANCHOR (用于 OBJ_ARROW), ENUM_ANCHOR_POINT (用于 OBJ_LABEL, OBJ_BITMAP_LABEL, OBJ_TEXT) |
OBJPROP_XDISTANCE |
X轴定位点像素距离 (see note) |
int |
OBJPROP_YDISTANCE |
Y轴定位点像素距离 (see note) |
int |
OBJPROP_DIRECTION |
江恩物件趋势 |
|
OBJPROP_DEGREE |
埃利奥特波动标记水平 |
|
OBJPROP_DRAWLINES |
埃利奥特波动标记排成一行 |
bool |
OBJPROP_STATE |
按钮状态(按压/未按压) |
bool |
OBJPROP_CHART_ID |
“图表”对象的ID(OBJ_CHART)。它允许使用该对象的属性,好像使用图表操作中描述的函数的普通图表,但是有一些例外。 |
long r/o |
OBJPROP_XSIZE |
对象宽度沿着X轴,以像素表示。指定用于 OBJ_LABEL (只读), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL 对象 |
int |
OBJPROP_YSIZE |
对象高度沿着Y轴,以像素表示。指定用于 OBJ_LABEL (只读), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL 对象 |
int |
OBJPROP_XOFFSET |
图形对象“位图标签”和“位图”(OBJ_BITMAP_LABEL 和 OBJ_BITMAP)中的 矩形可见区域 左上角的X坐标。该值由原始图片左上角对应的像素设置。 |
int |
OBJPROP_YOFFSET |
图形对象“位图标签”和“位图”(OBJ_BITMAP_LABEL 和 OBJ_BITMAP)中的 矩形可见区域 左上角的Y坐标。该值由原始图片左上角对应的像素设置。 |
int |
OBJPROP_PERIOD |
图解对象时间表 |
|
OBJPROP_DATE_SCALE |
显示图解对象时间比例 |
bool |
OBJPROP_PRICE_SCALE |
显示图解对象价格比例 |
bool |
OBJPROP_CHART_SCALE |
图解对象测量 |
0-5的整数值 |
OBJPROP_BGCOLOR |
编辑对象背景颜色 OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL |
color |
OBJPROP_CORNER |
图表连接到图解对象 |
|
OBJPROP_BORDER_TYPE |
“矩形标签”对象的边界类型 |
|
OBJPROP_BORDER_COLOR |
OBJ_EDIT 和 OBJ_BUTTON 对象的边界色 |
color |
当使用“图表”对象(OBJ_CHART)的 图表操作 时,会有以下限制:
- 不能使用 ChartClose()关闭;
- 不能使用 ChartSetSymbolPeriod() 函数改变交易品种/周期;
- 以下属性无效 CHART_SCALE, CHART_BRING_TO_TOP, CHART_SHOW_DATE_SCALE 和 CHART_SHOW_PRICE_SCALE (ENUM_CHART_PROPERTY_INTEGER)。
对于OBJ_BITMAP_LABEL 和 OBJ_BITMAP对象,可以通过编程的方式设置特殊的图片展示模式。在该模式下,只有部分原始图片(应用矩形可见区域的图片)可以展示,而其他图片都不会显示。该区域的大小应该使用OBJPROP_XSIZE 和 OBJPROP_YSIZE属性来设置。可见区域只能使用OBJPROP_XOFFSET 和 OBJPROP_YOFFSET属性在原始图片范围内“移动”。
对于固定大小的对象: OBJ_BUTTON,OBJ_RECTANGLE_LABEL,OBJ_EDIT 和 OBJ_CHART,属性OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 设置对象的左上角的位置到相对的图表的四角(OBJPROP_CORNER),这里X和Y坐标将通过像素计算。
ObjectSetDouble() 和 ObjectGetDouble() 函数
标识符 |
描述 |
属性类型 |
---|---|---|
OBJPROP_PRICE |
价格坐标 |
double 修饰符=定位点号 |
OBJPROP_LEVELVALUE |
水平值 |
double 修饰符=水平号 |
OBJPROP_SCALE |
比例(江恩对象和斐波纳契 弧线) |
double |
OBJPROP_ANGLE |
角度。对于程序创建的,无指定角度的对象来说,它的值等同于 EMPTY_VALUE |
double |
OBJPROP_DEVIATION |
标准偏差通道误差 |
double |
ObjectSetString() 和 ObjectGetString() 函数
标识符 |
描述 |
属性类型 |
---|---|---|
OBJPROP_NAME |
物件名称 |
string |
OBJPROP_TEXT |
物件描述(物件中包含的文本) |
string |
OBJPROP_TOOLTIP |
提示信息文本。如果没有设置属性,那么将显示程序端自动生成的提示信息。提示信息可以通过设置"\n" (line feed) 值来禁用 |
string |
OBJPROP_LEVELTEXT |
水平描述 |
string 修饰符=水平号 |
OBJPROP_FONT |
字体 |
string |
OBJPROP_BMPFILE |
文件的位图标签名称 另见 Resources |
string 修饰符: 0-state ON, 1-state OFF |
OBJPROP_SYMBOL |
图表对象的交易品种 |
string |
对于 OBJ_RECTANGLE_LABEL 对象 ("矩形标签") 可以设置三个设计模式中的一种,与ENUM_BORDER_TYPE 以下值相对应。
标识符 |
描述 |
---|---|
BORDER_FLAT |
平面造型 |
BORDER_RAISED |
突出造型 |
BORDER_SUNKEN |
凹陷造型 |
对于 OBJ_EDIT 对象 ("编辑") 和对于 ChartScreenShot() 函数,您可以使用ENUM_ALIGN_MODE枚举值来指定水平对齐类型。
标识符 |
描述 |
---|---|
ALIGN_LEFT |
左对齐 |
ALIGN_CENTER |
集中(仅用于编辑对象) |
ALIGN_RIGHT |
右对齐 |
示例:
#define UP "\x0431"
|