手机版

EA编程教程大全之图表函数

阅读 :
外_汇_邦 WaiHuiBang.com

 对于当前图表有关的图表物件的一组函数。

ObjectCreate  
ObjectDelete  
ObjectDescription  
ObjectFind  
ObjectGet  
ObjectGetFiboDescription  
ObjectGetShiftByValue  
ObjectGetValueByShift  
ObjectMove  
ObjectName  
ObjectsDeleteAll  
ObjectSet  
ObjectSetFiboDescription  
ObjectSetText  
ObjectsTotal  
ObjectType 

 

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("错误:不能创建文本! 代码 #",GetLastError()); 
    return(0); 
    } 
  ObjectSet("label_object", OBJPROP_XDISTANCE, 200); 
  ObjectSet("label_object", OBJPROP_YDISTANCE, 100); 
 
 
 
 
 
bool ObjectDelete( string name)

删除物件已有的指定名称。 如果函数成功,返回值将是TRUE,否则,它将是 FALSE。

获得详细的错误信息, 查看GetLastError() 函数。

参量:

name  -  被删除的物件名称。  
 
示例:

ObjectDelete("text_object"); 
 
 
 
 
 
string ObjectDescription( string name)

返回物件描述。 对于OBJ_TEXT和OBJ_LABEL类型物件,这些物件文本将返回。

获得详细的错误信息,查看GetLastError() 函数。

参见 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); 
    } 
 
 
 
 
int ObjectFind( string name)

查找指定的物件名称。窗口的索引包含所找到的物件。如果它失败, 返回值将是-1 。获得详细的错误信息, 查看 GetLastError() 函数。子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的索引为零。

参量:

name  -  查找的物件名称。  
 
示例:

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

 

double ObjectGet( string name, int index)

函数返回指定物件的属性。检查错误,查看 GetLastError() 函数。

参见 ObjectSet()函数。

参量:

name  -  物件名称。  
index  -  物件属性索引。它可以是物件属性列举值的任意。  
 
示例:

color oldColor=ObjectGet("hline12", OBJPROP_COLOR); 
 
 
 
 
string ObjectGetFiboDescription( string name, int index)

函数返回对斐波纳契物件的平实描述。相当数量斐波纳契水平取决于物件类型。最大斐波纳契水平是32。

获得详细的错误信息,查看 GetLastError() 函数。

参见 ObjectSetFiboDescription() 函数。

参量:

name  -  斐波纳契物件名称。  
index  -  斐波纳契索引水平(0-31)。  
 
示例:

#include <stdlib.mqh> 
  ... 
  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); 
    } 
 
 
 
 
 
 
int ObjectGetShiftByValue( string name, double value)

函数计算并返回索引柱(移动当前相关的柱)给出的值。 索引柱由第一和第二坐标应用线性方程计算。适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。

参见 ObjectGetValueByShift() 函数。

参量:

name  -  物件名称。  
value  -  价格值。  
 
示例:

  int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34); 
 
 
 
 
 
double ObjectGetValueByShift( string name, int shift)

函数计算并返回指定柱的值(转移当前相关的柱)。索引柱由第一和第二坐标应用线性方程计算。适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。

参见 ObjectGetShiftByValue() 函数。

参量:

name  -  物件名称。  
shift  -  柱索引。  
 
示例:

  double price=ObjectGetValueByShift("MyTrendLine#123", 11); 
 
 
 
 
bool ObjectMove( string name, int point, datetime time1, double price1)

函数在图移动一个物件座标。物件可能根据他们的类型有一个到三个座标。如果函数成功,返回值将是 TRUE,否则,它将是FALSE。获得详细的错误信息, 查看 GetLastError() 函数。物件坐标的开始数字必须是0。

参量:

name  -  物件名称。  
point  -  坐标索引(0-2)。  
time1  -  新时间值。  
price1  -  新值。  
 
示例:

ObjectMove("MyTrend", 1, D'2005.02.25 12:30', 1.2345);

 

string ObjectName( int index)

在物件列表中用它的索引函数返回物件名称。获得详细的错误信息, 查看 GetLastError() 函数。

参量:

index  -  在物件列表中的物件索引。物件索引必须超过或等于0并且小于ObjectsTotal()。  
 
示例:

  int    obj_total=ObjectsTotal(); 
  string name; 
  for(int i=0;i<obj_total;i++) 
    { 
    name=ObjectName(i); 
    Print(i,"物件名称为 " + name); 
    } 
 
 
 
 
 
 
int ObjectsDeleteAll( void window, void type)

在图表的子窗口删除全部类型物件。函数返回删除物件数。获得详细的错误信息, 查看 GetLastError() 函数。

注解: 子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的存在的索引为零。如果窗口索引错误或值为-1,物件 会从现有的图表中删除。

如果类型 值等与-1 或这个参量是错误的,在子窗口的全部指定物件将被删除。

参量:

window  -  选择参量。 物件的索引窗口将被删除。 必须超过或等于 -1 (EMPTY为默认值)并且小于 WindowsTotal()。
type  -  选择参量。被删除的物件类型。它可以是 任意列举值的物件类型或EMPTY常数删除所有物件类型。
 
示例:

  ObjectsDeleteAll(2, OBJ_HLINE); // 从第二子窗口移除全部水平线。 
  ObjectsDeleteAll(2);            // 从第二子窗口移除全部物件。 
  ObjectsDeleteAll();            //从图表中移除全部物件。 
 
 
 
 
 
bool ObjectSet( string name, int index, double value)

改变指定物件属性的值。如果函数成功, 返回值将是 TRUE。否则, 它将是FALSE. 获得详细的错误信息, 查看 GetLastError() 函数。

参见 ObjectGet() 函数。

参量:

name  -  物件名称。  
index  -  物件索引值。 它可以是列举的任意物件属性值。  
value  -  新的属性值。  
 
示例:

  // moving the first coord to the last bar time 
  ObjectSet("MyTrend", OBJPROP_TIME1, Time[0]); 
  // setting the second fibo level 
  ObjectSet("MyFibo", OBJPROP_FIRSTLEVEL+1, 1.234); 
  // setting object visibility. object will be shown only on 15 minute and 1 hour charts 
  ObjectSet("MyObject", OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15 | OBJ_PERIOD_H1); 
 
 
 
 
 
bool ObjectSetFiboDescription( string name, int index, string text)

函数分配一个新的描述到斐波纳契物件的水平。 相当数量斐波纳契水平取决于物件类型。最大金额斐波纳契水平是32。

获得详细的错误信息,查看 GetLastError() 函数。

参量:

name  -  物件名称。  
index  -  斐波纳契索引水平(0-31)。  
text  -  新的水平描述  
 
示例:

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

 

bool ObjectSetText( string name, string text, int font_size, void font, void text_color)  
改变物件描述。对于OBJ_TEXT 和OBJ_LABEL物件的描述作为图表的文本显示。如果函数成功, 返回的值将是TRUE。 否则, 它是FALSE。获得详细的错误信息, 查看GetLastError() 函数。

只有字体大小,字体名称和文本颜色参量使用为 font_size, font_name和 text_color 物件。为其它类型 物件, 这些参量被忽略。

参见 ObjectDescription() 函数。

参量:

name  -  物件名称。  
text  -  描述物件文本。  
font_size  -  字体大小点数。  
font  -  字体名称。  
text_color  -  文本颜色。  
 
示例:

ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green); 
 
 
 
 
int ObjectsTotal( void type)

在图表中返回指定物件类型总量。

参量:

type  -  选择参量。将计数的物件类型。它可以是物件类型列举的任意值或EMPTY常数计算全部类型物件。

示例:

  int    obj_total=ObjectsTotal(); 
  string name; 
  for(int i=0;i<obj_total;i++) 
    { 
    name=ObjectName(i); 
    Print(i,"对于 #的物件名称",i," is " + name); 
    } 
 
 
 
 
int ObjectType( string name)

函数返回 物件类型值。获得详细的错误信息, 查看 GetLastError() 函数。

参量:

name  -  物件名称。  
 
示例:

if(ObjectType("line_object2")!=OBJ_HLINE) return(0);

外_汇_邦 WaiHuiBang.com
本文标题:EA编程教程大全之图表函数 - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/40672.html

相关文章

  • 外汇智能EA交易示例
    外汇智能EA交易示例

    交易原理:Long (BUY) entry &ndash; MACD指标在零以下, 从下至上并且穿过低端的信号线。 Short (SELL) entry &ndash; MACD 指标在零以上,从上至下并且穿过顶端的信号线赢利上限的执行,追踪止损的执行或当穿过 MA...

    MQL4编程学习
  • 阿里云ECS服务器优惠打折促销活动及阿里云各类产品优惠券、代金券、优惠码
    阿里云ECS服务器优惠打折促销活动及阿里云各类产品优惠券、代金券、优惠码

    阿里云产品代金券限量领取链接:阿里云1888元代金券大礼包 阿里云ECS入门级服务器优惠2折入口:爆款云服务器低至2折,1核1G ECS云服务器低至293元/年 阿里云企业级高性能云服务器优惠购买通道:更高计算网络性能,助力企业上...

    MQL4编程学习
  • MT4编程开发实战系列:画图系列
    MT4编程开发实战系列:画图系列

    这是MT4编程开发实战系列的第一站,我们先来学习一下如何在MT4图表上进行基本的画图操作。 在开始动手之前,首先讲一个很基本也很重要的概念:在MT4系统中,图表的方向是从右到左的,举例说:在一个记录有当前图表每根K线位置的数组中,第一个数值表示的是图表最右边、也就是当前的K线的数值!...

    MQL4编程学习
  • MQL4交易处理函数(二)

    从自定义指标中不能调用OrderSend()、OrderClose()、OrderCloseBy()、OrderDelete()和OrderModify()交易函数。本组交易函数应用于智能交易和脚本中。只有智能交易设置中的“允许实时交易”属性被选中,才能...

    MQL4编程学习
  • EA复盘非常漂亮,一旦挂了实盘就完蛋的原因是什么?

    很多EA复盘非常漂亮,一旦挂了实盘就完蛋了,其最主要的有几点原因:1.复盘时间不够长,或者有选择性。      大家知道外汇行情放大来说是按年来分析行情的,可能某年或某几年是单边,某年或某几年是震荡,但却不会连续十年以上都是单边或都是震荡。...

    MQL4编程学习
你可能感兴趣