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

阅读 :
欢迎访问 外 汇 邦 WWW.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);

欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:EA编程教程大全之图表函数 - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/40672.html

相关文章

  • MT4编程初级手册(6):市场数据取值

    一、预定义数组(MT4已经预先定义好了的,可直接调用) 开盘价、最高价、最低价、收盘价、成交量等市场历史数据,每根K线实体都各自有一个,所以必须使用数组来调用,MT4有几个预定义数组,预定义的意思就是这些数据都是被准备...

    MQL4编程学习
  • 使用MT4客户端初学者的常见错误

    我的终端显示的时间有误。如何设置时间能够使终端时间与我的电脑时间相同?显示在终端上的时间是最后报价进入客户端的交易服务器时制定的。在客户端内同样是最后可用的服务器时间。在MQL4 程序中,时间可以通过使用T...

    MQL4编程学习
  • 为什么说大部分外汇交易者对趋势型EA都只是“叶公好龙”
    为什么说大部分外汇交易者对趋势型EA都只是“叶公好龙”

    趋势交易是绝大部分投资者都认可的交易方式,并认为是能够有极高盈利比潜力的交易方式。但市面上的趋势交易EA却十分至少,这是为什么呢?一、违反人性交易之中,人性是什么?就是高抛低吸,高空低多。这类型的震荡型交易就是符合...

    MQL4编程学习
  • 外汇EA智能交易软件是什么东西?

    一、外汇EA软件是什么? 答:智能交易系统软件的全称是Expert Advisor,简称EA,是一个全自动的交易工具,智能交易系统软件是用来对交易过程完全自动化,免除交易商连续对市场进行日常烦琐的监护,也免除交易员的盯盘操作。许多...

    MQL4编程学习
  • MT4技术指标学习——Stochastic Oscillator (随机摆动指标)
    MT4技术指标学习——Stochastic Oscillator (随机摆动指标)

    Stochastic Oscillator指标在中国又名KDJ 指标 ,是由 George Lane 首创的,最早用于期货市场。Stochastic Oscillator指标在图表上采用%K和%D两条线,在设计中综合了动量 观念、强弱指标与移动平均线的优点,在计算过程中主要研究高低价位与收市价的关系,反映价格走势的强弱和超买超卖现象。...

    MQL4编程学习
你可能感兴趣