打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MQL4编程:对象操作函数(一)

查看原文:http://www.125808047.com/?p=667
MQL4对象操作函数(一)

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

ObjectCreate() – 创建对象

1

2

3

4

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开始。图表主窗口总是存在的,且索引为零。

坐标必须成对传递:时间和价格。例如,OBJ_VLINE对象只需要时间,但价格(任意值)也必须同时传递。

参数:

name 对象唯一名称。

type 对象类型。它可以是 对象类型列表 的任意值。

window 要添加对象的窗口索引。窗口索引必须大于或等于0,并且小于 WindowsTotal()。

time1 第一点时间。

price1 第一点价格值。

time2 第二点时间。

price2 第二点价格值。

time3 第三点时间。

price3 第三点价格值。

示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

// 新文本对象

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() – 删除对象

1

bool ObjectDelete(string name)

 

删除指定名称的对象。如果函数成功,返回TRUE,否则,返回FALSE。

参数:

name 要删除对象的名称。

示例:

1

ObjectDelete("text_object");

ObjectDescription() – 获取对象描述

1

string ObjectDescription(string name)

 

返回对象描述。对于OBJ_TEXT和OBJ_LABEL类型对象,这些对象设置的文本将返回。

参见 ObjectSetText() 函数。

参数:

name 对象的名称。

示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//  将图表对象列表写入文件

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=-;i<total;i++)

{

obj_name=ObjectName(i);

FileWrite(handle,"Object "+obj_name+" description= "+ObjectDescription(obj_name));

}

FileClose(handle);

}

ObjectFind() – 查找指定对象

1

int ObjectFind(string name)

 

查找指定名称的对象。函数返回包含找到的对象窗口索引。如果查找失败,返回-1。如果想获取详细的错误信息,请调用GetLastError()函数。

图表子窗口(如果图表子窗口带有指标)编号从1开始。图表主窗口总是存在且索引为零。

参数:

name 要查找的对象名称。

示例:

1

if(ObjectFind("line_object2")!=win_idx) return(0);

ObjectGet() – 获取指定对象的属性值

1

double ObjectGet(string name, int index)

 

函数返回指定对象的属性值。如果想获取详细的错误信息,请调用GetLastError()函数。

参见 ObjectSet() 函数。

参数:

name 要查找的对象名称。

index 对象属性的索引。它可以是 对象属性枚举值 的任意值。

示例:

1

color oldColor=ObjectGet("hline12", OBJPROP_COLOR);

 

ObjectSet() – 修改指定对象属性值

1

bool ObjectSet(string name, int index, double value)

 

修改指定对象的属性值。如果函数成功,返回TRUE,否则,返回FALSE。如果想获取详细的错误信息,请调用 GetLastError() 函数。

参见 ObjectGet() 函数。

参数:

name 要查找的对象名称。

index 对象属性的索引。它可以是 对象属性枚举值 的任意值。

value 给定的新属性值

示例:

1

2

3

4

5

6

// 将第1个坐标移到最后一个柱子的时间

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() – 获取斐波纳契对象描述

1

string ObjectGetFiboDescription(string name, int index)

 

返回斐波纳契对象的水平线说明。斐波纳契水平线的数量取决于对象类型。斐波纳契水平线个数最大为32(0到31)。

如果想获取详细的错误信息,请调用 GetLastError() 函数。

参见 ObjectSetFiboDescription() 函数。

参数:

name 要查找的对象名称。

index 斐波纳契水平线索引(0-31)。

示例:

1

2

3

4

5

6

7

8

9

10

#include

...

string text;

for(int i=0;i<32;i++)

{

text=ObjectGetFiboDescription(MyObjectName,i);

//---- 检查对象是否少于32条水平线

if(GetLastError()!=ERR_NO_ERROR) break;

Print(MyObjectName,"水平线: ",i," description: ",text);

}

ObjectSetFiboDescription() – 设置斐波纳契对象描述

1

bool ObjectSetFiboDescription(string name, int index, string text)

 

本函数为斐波纳契对象的水平线设置一个新的描述。斐波纳契水平线数量最大为32(0到31)。

参数:

name 要查找的对象名称。

index 斐波纳契水平线索引(0-31)。

text 新的水平线描述。

示例:

1

ObjectSetFiboDescription("MyFiboObject",2,"Second line");

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
'面向初学者的 MQL4 语言。自定义指标(第 2 部分)'
MT4复盘工具,方便使用
用脚本理解物件函数
海龟交易系统 MT4 源码
EA(原码)学习用
mt4指标2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服