MQL4对象操作函数(二)详解
在MT4编程中,对象操作函数是构建图表交互的重要工具。本篇介绍第二部分的函数,这些函数在山海证券ZFX官网的MT4环境中同样适用,能帮助交易者灵活管理图形对象。
ObjectCreate() – 创建对象
ObjectDelete() – 删除对象
ObjectDescription() – 获取对象描述
ObjectFind() – 查找指定对象
ObjectGet() – 获取指定对象的属性值
ObjectSet() – 修改指定对象属性值
ObjectGetFiboDescription() – 获取斐波纳契对象描述
ObjectSetFiboDescription() – 设置斐波纳契对象描述
ObjectGetShiftByValue() – 计算并返回柱体索引
ObjectGetValueByShift() – 计算并返回指定柱体价格值
ObjectMove() – 移动对象
ObjectName() – 获取对象名
ObjectsDeleteAll() – 删除指定对象
ObjectSetText() – 设置对象描述
ObjectsTotal() – 获取指定类型对象总数
ObjectType() – 获取对象类型
下面针对几个常用函数进行详细说明,使开发者能够更清晰地理解其用法。
ObjectGetShiftByValue() – 计算并返回柱体索引
int ObjectGetShiftByValue(string name, double value) 该函数根据给定的价格值计算出对应的柱体索引(相对于当前柱的偏移量)。柱体索引通过第一坐标和第二坐标运用线性方程得出,适用于趋势线等相似对象。
参见 ObjectGetValueByShift() 函数。
参数:
name – 对象名称。value – 价格值。示例:
int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34);
ObjectGetValueByShift() – 计算并返回指定柱体价格值
double ObjectGetValueByShift(string name, int shift) 该函数计算并返回指定柱体的价格(相对于当前柱的偏移量)。柱索引由第一和第二坐标通过线性方程计算得出,适合趋势线等对象。
参见 ObjectGetShiftByValue() 函数。
参数:
name – 对象名称。shift – 柱体索引。示例:
double price=ObjectGetValueByShift("MyTrendLine#123", 11);
ObjectMove() – 移动对象
bool ObjectMove(string name, int point, datetime time1, double price1) 此函数可在图表中移动对象的坐标。对象根据类型不同可拥有1至3个坐标。若执行成功返回TRUE,否则返回FALSE。
对象坐标从0开始计数。
参数:
name – 对象名称。point – 坐标索引(0-2)。time1 – 新时间值。price1 – 新价格值。示例:
ObjectMove("MyTrend", 1, D'2005.02.25 12:30', 1.2345);
ObjectName() – 获取对象名
string ObjectName(int index) 该函数依据对象列表中的索引返回对应对象名称。
参数:
index – 对象列表中的索引,必须大于等于0且小于 ObjectsTotal() 的值。示例:
int obj_total=ObjectsTotal();
string name;
for(int i=0;i
name=ObjectName(i);
Print(i,"物件名称为 " + name);
}
ObjectsDeleteAll() – 删除指定对象
int ObjectsDeleteAll(void window, void type) 在指定图表子窗口中删除特定类型的全部对象,并返回已删除的对象个数。
注:子窗口(若包含指标)编号从1开始。主窗口索引固定为0。若窗口索引错误或为-1,则删除所有图表中的对象。
若type值为-1或该参数缺失,则删除指定子窗口中的所有对象。
参数:
window – 可选参数,对象所在窗口索引,须≥-1(EMPTY默认)且小于WindowsTotal()值。type – 可选参数,要删除的对象类型,可为对象类型枚举或用EMPTY表示全部类型。示例:
ObjectsDeleteAll(2, OBJ_HLINE); // 删除第二子窗口全部水平线
ObjectsDeleteAll(2); // 删除第二子窗口所有对象
ObjectsDeleteAll(); // 删除图表中全部对象
ObjectSetText() – 设置对象描述
bool ObjectSetText(string name, string text, int font_size, void font, void text_color) 修改对象描述。对于OBJ_TEXT和OBJ_LABEL对象,该说明作为图表上的文本行显示。成功返回TRUE,否则返回FALSE。
font_size(字体大小)、font_name(字体名称)和text_color(文本颜色)参数仅用于OBJ_TEXT和OBJ_LABEL对象,其他类型忽略。
参数:
name – 对象名称。text – 描述文本。font_size – 字体大小。font – 字体名称。text_color – 文本颜色。示例:
ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green);
ObjectsTotal() – 获取指定类型对象总数
int ObjectsTotal(void type) 返回图表中指定类型的对象总数。例如,在山海证券ZFX官网的MT4终端中,开发者常利用此函数遍历图形对象。
参数:
type – 可选参数,要统计的对象类型,可为任意对象类型枚举值,或用EMPTY表示全部类型。示例:
int obj_total=ObjectsTotal();
string name;
for(int i=0;i
name=ObjectName(i);
Print(i,"对于 #的对象名称",i," is " + name);
}
ObjectType() – 获取对象类型
int ObjectType(string name) 该函数返回指定对象的类型值。
参数:
name – 对象名称。示例:
if(ObjectType("line_object2")!=OBJ_HLINE) return(0);
上一篇:市场为何对特朗普关税消息脱敏
下一篇:没有了