编程逆袭仔 发表于 2013-8-13 20:27:14

MQL4对象操作函数(二)


[*]ObjectCreate() – 创建对象
[*]ObjectDelete() – 删除对象
[*]ObjectDescription() – 获取对象描述
[*]ObjectFind() – 查找指定对象
[*]ObjectGet() – 获取指定对象的属性值
[*]ObjectSet() – 修改指定对象属性值
[*]ObjectGetFiboDescription() – 获取斐波纳契对象描述
[*]ObjectSetFiboDescription() – 设置斐波纳契对象描述
[*]ObjectGetShiftByValue() – 计算并返回柱体索引
[*]ObjectGetValueByShift() – 计算并返回指定柱体价格值
[*]ObjectMove() – 移动对象
[*]ObjectName() – 获取对象名
[*]ObjectsDeleteAll() – 删除指定对象
[*]ObjectSetText() – 设置对象描述
[*]ObjectsTotal() – 获取指定类型对象总数
[*]ObjectType() – 获取对象类型

ObjectGetShiftByValue() – 计算并返回柱体索引
1
int ObjectGetShiftByValue(string name, double value)




本函数计算并返回已给出价格的柱体(K线)索引(相对于当前柱体的偏移量)。柱体索引由第一坐标和第二坐标应用线性方程计算出来,适用于趋势线和相似的对象。参见 ObjectGetValueByShift() 函数。参数:name - 对象名称。value - 价格值。示例:
1
int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34);




Back to Top
ObjectGetValueByShift() – 计算并返回指定柱体价格值
1
double ObjectGetValueByShift(string name, int shift)




本函数计算并返回指定柱体的价格值(相对于当前柱体的偏移量)。柱子索引由第一坐标和第二坐标应用线性方程计算出来,适用于趋势线和相似的对象。参见 ObjectGetShiftByValue() 函数。参数:name - 对象名称。value - 价格值。示例:
1
double price=ObjectGetValueByShift("MyTrendLine#123", 11);




Back to Top
ObjectMove() – 移动对象
1
bool ObjectMove(string name, int point, datetime time1, double price1)




本函数在图表中可以移动一个对象的坐标。对象可能根据他们的类型有一个到三个坐标。如果函数执行成功,返回TRUE,否则,FALSE。对象坐标从0开始。参数:name - 对象名称。point - 坐标索引(0-2)。time1 - 新的时间值price1 - 新的价格值示例:
1
ObjectMove("MyTrend", 1, D'2005.02.25 12:30', 1.2345);




Back to Top
ObjectName() – 获取对象名
1
string ObjectName(int index)




本函数根据对象列表中对象索引返回其对象名称。参数:index - 对象列表中对象索引。对象索引必须大于等于0,小于 ObjectsTotal() 值。示例:
1
2
3
4
5
6
7
int    obj_total=ObjectsTotal();
string name;
for(int i=0;i<obj_total;i++)
    {
   name=ObjectName(i);
   Print(i,"物件名称为 " + name);
    }




Back to Top
ObjectsDeleteAll() – 删除指定对象
1
int ObjectsDeleteAll(void window, void type)




在指定的图表子窗口中删除指定类型的全部对象。本函数返回已删除的对象个数。注:图表子窗口(如果子窗口图表带有指标)编号从1开始。主窗口总是存在且索引为零。如果窗口索引错误或值为-1,将从全部图表中删除对象。如果type值等于-1或者这个参数丢失,全部对象将从指定的子窗口中删除。参数:window - 可选的参数。要删除的对象所在的窗口索引,必须大于等于-1(EMPTY为默认值)并且小于 WindowsTotal() 值。type - 可选的参数。被删除的对象类型。它可以是 对象类型 的任意枚举值或用EMPTY常量表示删除所有任意类型的全部对象。示例:
1
2
3
ObjectsDeleteAll(2, OBJ_HLINE); // 从第二子窗口删除全部水平线。
ObjectsDeleteAll(2);            // 从第二子窗口删除全部对象。
ObjectsDeleteAll();             //从图表中删除全部对象。




Back to Top
ObjectSetText() – 设置对象描述
1
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 -文本颜色。 示例:
1
ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green);




Back to Top
ObjectsTotal() – 获取指定类型对象总数
1
int ObjectsTotal(void type)




返回图表中指定类型对象总数。参数:type - 可选的参数。要统计的对象类型,它可以是任意 对象类型 枚举值,      或用EMPTY常量表示统计任意类型的全部对象个数。示例:
1
2
3
4
5
6
7
int obj_total=ObjectsTotal();
string name;
for(int i=0;i<obj_total;i++)
{
   name=ObjectName(i);
   Print(i,"对于 #的对象名称",i," is " + name);
}




Back to Top
ObjectType() – 获取对象类型
1
int ObjectType(string name)




本函数返回对象的类型值。参数:name - 对象名称示例:
1
if(ObjectType("line_object2")!=OBJ_HLINE) return(0);





调调调 发表于 2014-11-18 11:24:29


继续,学习了

286333 发表于 2014-11-20 02:33:50

感谢分享

伤心处 发表于 2014-11-22 23:45:21

看看怎么样

ivan99 发表于 2014-12-2 06:01:07

看看什么EA,,,

小东 发表于 2014-12-2 13:30:21

没有使用说明书
页: [1]
查看完整版本: MQL4对象操作函数(二)