时间:2026-04-21 09:33:30
ObjectCreate() – 创建图表对象
ObjectDelete() – 删除指定对象
ObjectDescription() – 获取对象描述信息
ObjectFind() – 查找图表中的指定对象
ObjectGet() – 获取对象的属性数值
ObjectSet() – 修改对象属性值
ObjectGetFiboDescription() – 获取斐波那契对象描述
ObjectSetFiboDescription() – 设置斐波那契对象描述
ObjectGetShiftByValue() – 计算并返回对应的柱体索引
ObjectGetValueByShift() – 计算并返回指定柱体的价格数值
ObjectMove() – 移动图表对象位置
ObjectName() – 获取对象名称
ObjectsDeleteAll() – 删除全部指定对象
ObjectSetText() – 设置对象的文本描述
ObjectsTotal() – 获取指定类型的对象总数
ObjectType() – 获取对象的类型标识
ObjectCreate() – 创建对象
bool ObjectCreate(string name, int type, int window, datetime time1, double price1, void time2, void price2, void time3, void price3) 此函数用于在指定的图表窗口中,根据给定的名称、类型和初始坐标创建对象。不同对象类型所需的坐标数量在1到3个之间。若函数执行成功,则返回TRUE,否则返回FALSE。如需了解具体错误详情,可调用GetLastError()函数。
对于OBJ_LABEL类型的对象,其坐标参数可忽略,应使用 ObjectSet() 函数来设定OBJPROP_XDISTANCE和OBJPROP_YDISTANCE属性。
请注意,图表子窗口(若其中加载了技术指标)的编号从1开始。图表主窗口始终存在,其索引值为0。
坐标参数必须以成对的方式传递:时间与价格。例如,OBJ_VLINE对象虽然仅需时间参数,但价格参数(可为任意值)也必须一同传递。
参数说明:
name - 对象的唯一名称。type - 对象类型,可从对象类型列表中选取。window - 要添加对象的窗口索引,该值需大于等于0且小于WindowsTotal()。time1 - 第一个点的时间。price1 - 第一个点的价格值。time2 - 第二个点的时间。price2 - 第二个点的价格值。time3 - 第三个点的时间。price3 - 第三个点的价格值。
示例代码:
// 创建新的文本对象 if(!ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045)) { Print("错误: 无法创建文本对象! 错误代码 #",GetLastError()); return(0); } // 创建新的标签对象 if(!ObjectCreate("label_object", OBJ_LABEL, 0, 0, 0)) { Print("错误: 无法创建label_object! 错误代码 #",GetLastError()); return(0); } ObjectSet("label_object", OBJPROP_XDISTANCE, 200); ObjectSet("label_object", OBJPROP_YDISTANCE, 100);
ObjectDelete() – 删除对象
bool ObjectDelete(string name) 此函数用于删除指定名称的对象。操作成功返回TRUE,失败则返回FALSE。
参数说明:
name - 要删除对象的名称。
示例:
ObjectDelete("text_object");
ObjectDescription() – 获取对象描述
string ObjectDescription(string name) 此函数返回指定对象的描述信息。对于OBJ_TEXT和OBJ_LABEL类型的对象,将返回为其设置的文本内容。
相关函数可参考 ObjectSetText()。
参数说明:
name - 对象的名称。
示例:
// 将图表对象列表信息写入文件
int handle, total;
string obj_name,fname;
// 定义文件名称
fname="objlist_"+Symbol();
handle=FileOpen(fname,FILE_CSV|FILE_WRITE);
if(handle!=false)
{
total=ObjectsTotal();
for(int i=0;i ObjectGet() – 获取指定对象的属性值 double ObjectGet(string name, int index) 此函数返回指定对象的属性数值。如需错误详情,请调用GetLastError()函数。 相关函数可参考 ObjectSet()。 参数说明: name - 对象的名称。index - 对象属性的索引,可从对象属性枚举值中选取。 示例: color oldColor=ObjectGet("hline12", OBJPROP_COLOR); ObjectSet() – 修改指定对象属性值 bool ObjectSet(string name, int index, double value) 此函数用于修改指定对象的属性值。操作成功返回TRUE,失败返回FALSE。调用GetLastError()可获取错误信息。 相关函数可参考 ObjectGet()。 参数说明: name - 对象的名称。index - 对象属性的索引,可从对象属性枚举值中选取。value - 要设定的新属性值。 示例: // 将第一个坐标移动到最新柱的时间
ObjectSet("MyTrend", OBJPROP_TIME1, Time[0]);
// 设置第二个斐波那契水平线数值
ObjectSet("MyFibo", OBJPROP_FIRSTLEVEL+1, 1.234);
// 设置对象可视范围,使其在15分钟和1小时图表上显示
ObjectSet("MyObject", OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15 | OBJ_PERIOD_H1); ObjectGetFiboDescription() – 获取斐波那契对象描述 string ObjectGetFiboDescription(string name, int index) 此函数返回斐波那契对象特定水平线的描述文本。水平线数量取决于对象类型,最多可达32条(索引0至31)。 调用GetLastError()函数可获取详细错误信息。 相关函数可参考 ObjectSetFiboDescription()。 参数说明: name - 对象的名称。index - 斐波那契水平线的索引(0-31)。 示例: #include ObjectSetFiboDescription() – 设置斐波那契对象描述 bool ObjectSetFiboDescription(string name, int index, string text) 此函数用于为斐波那契对象的指定水平线设置新的描述文本。水平线数量最多为32条(索引0至31)。 参数说明: name - 对象的名称。index - 斐波那契水平线的索引(0-31)。text - 新的水平线描述文本。 示例: ObjectSetFiboDescription("MyFiboObject",2,"第二条线"); 掌握这些MQL4对象操作函数,对于在MetaTrader 4平台上进行自动化交易脚本开发至关重要。开发者可以通过系统学习来构建更复杂的图表分析工具。如需了解更多专业的交易平台知识与资源,可以参考兴业外汇官网提供的相关技术文档和社区支持。
Copyright © 2012-2026 兴业外汇 版权所有 网站地图