MQL4对象操作函数(一)

阅读 :
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
  • 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开始。图表主窗口总是存在的,且索引为零。

坐标必须成对传递:时间和价格。例如,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=-;i<total;i++)       {        obj_name=ObjectName(i);        FileWrite(handle,"Object "+obj_name+" description= "+ObjectDescription(obj_name));       }     FileClose(handle);    }

ObjectFind() – 查找指定对象

int ObjectFind(string name)

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

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

参数:

name - 要查找的对象名称。

示例:

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

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 - 给定的新属性值

示例:

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

string ObjectGetFiboDescription(string name, int index)

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

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

参见 ObjectSetFiboDescription() 函数。

参数:

name - 要查找的对象名称。index - 斐波纳契水平线索引(0-31)。

示例:

#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() – 设置斐波纳契对象描述

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

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

参数:

name - 要查找的对象名称。index - 斐波纳契水平线索引(0-31)。text - 新的水平线描述。

示例:

ObjectSetFiboDescription("MyFiboObject",2,"Second line");
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:MQL4对象操作函数(一) - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/49035.html

相关文章

  • 思考:大数据时代的EA

    动心思写这篇文章的原因很简单,因为现在是大数据时代。说“大数据”太夸张了,没错,我就做一次标题党好了。 传统的统计都是基于取样方法的,也就是说因为数据量太大了,无法全面分析,而创造的一种方法,大多数情况下,最多抽取...

    MQL4编程学习
  • 布林带指标(保力加通道)计算方法

    布林带(Bollinger Bands,BBands)也称为保力加通道、包宁杰带状或布历加通道,是由约翰·布林格(John Bollinger)在1980年代发明的技术分析工具。...

    MQL4编程学习
  • MT4新编:简单三线交叉EA
    MT4新编:简单三线交叉EA

    MT4编程入门教程目录MT4编程入门1:MT4自定义指标的基本操作MT4编程入门2:指标源码中的常用符号说明MT4编程入门3:自定义变量MT4编程入门4:自定义函数MT4编程入门5:自定义数组MT4编程入门6:市场数据取值MT4编程入门7:判断...

    MQL4编程学习
  • MT4平台简易使用教程
    MT4平台简易使用教程

    一般的外汇操作软件就是MT4,这里给大家提供一份MT4的使用教程。 MT4的优点我在这里就不废话了。这款目前最主流功能超级强大的外汇交易软件,提供各种优于炒股软件的功能。基本的包括,挂单、锁单、自动止损止赢。包括...

    MQL4编程学习
  • 外汇EA编程教程――数据类型

      所有的程序就是对数据进行操作,我们根据不同的需求对数据定义不同的类型,比如数字类型的数据用于操作数组。价格数据使用浮点型类型数据,MQL本身没有货币类型的数据类型。 不同的数据类型有着不同的处理速度,其中...

    MQL4编程学习
你可能感兴趣