MQL4客户端全局变量

阅读 :
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com

这里的 客户端全局变量 不要与MQL4程序中定义的 全局变量 混淆。

最后访问的 "客户端全局变量" 可以在客户端内保存4个星期,然后将自动删除。对于 "客户端全局变量" 的访问不仅仅是新值的设定,也可以对其进行读取。

在客户端启动的所有MQL4程序可以同时访问 "客户端全局变量"。

  • GlobalVariableCheck() – 检查全局变量是否存在
  • GlobalVariableDel() – 删除全局变量
  • GlobalVariableGet() – 获取全局变量的值
  • GlobalVariableName() – 获取指定索引的全局变量名
  • GlobalVariableSet() – 设置全局变量的值
  • GlobalVariableSetOnCondition() – 根据条件设置全局变量值
  • GlobalVariablesDeleteAll() – 删除全部全局变量
  • GlobalVariablesTotal() – 获取全局变量总数

 

GlobalVariableCheck() – 检查全局变量是否存在

bool GlobalVariableCheck(string name)

如果 "客户端全局变量" 存在,返回TRUE,否则,返回FALSE。

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

参量:

name - 客户端全局变量名称。

示例:

  // 使用前先检查变量  if(!GlobalVariableCheck("g1"))    GlobalVariableSet("g1",1);

GlobalVariableDel() – 删除全局变量

bool GlobalVariableDel(string name)

删除 "客户端全局变量" 。如果执行成功,返回TRUE,否则,返回FALSE。 

参量:

name - 客户端全局变量名称。

示例:

  //  删除名称为 "gvar_1"的客户端全局变量   GlobalVariableDel("gvar_1");

GlobalVariableGet() – 获取全局变量的值

double GlobalVariableGet(string name)

返回现有的 "客户端全局变量" 的值,如果发生错误,返回0。 

参量:

name - 客户端全局变量名称。

示例:

  double v1=GlobalVariableGet("g1");  //---- 检查函数调用结果  if(GetLastError()!=0) return(false);  //---- 继续程序

GlobalVariableName() – 获取指定索引的全局变量名

string GlobalVariableGet(int index)

本函数通过全局变量列表中索引号返回 "客户端全局变量" 的名称。 

参量:

index - 全局变量列表中索引号,该索引号必须大于等于0,或者小于 GlobalVariablesTotal() 返回的值。

示例:

  int    var_total=GlobalVariablesTotal();  string name;  for(int i=0;i<var_total;i++)    {     name=GlobalVariableName(i);     Print(i,": 全局变量名称 - ",name);    }

GlobalVariableSet() – 设置全局变量的值

datetime GlobalVariableSet(string name, double value)

设置 "客户端全局变量" 新的值。如果它不存在,系统将创建个新的全局变量。如果函数成功,其返回值将是最后存取时间,否则,返回值将是0。

参量:

name - 客户端全局变量名称。value - 新的数值 

示例:

  //---- 尝试设定新值  if(GlobalVariableSet("BarsTotal",Bars)==0)    return(false);  //---- 继续程序

GlobalVariableSetOnCondition() – 根据条件设置全局变量值

bool GlobalVariableSetOnCondition(string name, double value, double check_value)

如果 "客户端全局变量" 的当前值等于第三个参数check_value,就设置现有的全局变量的新值。如果全局变量不存在,函数将产生错误ERR_GLOBAL_VARIABLE_NOT_FOUND(4058) 并且返回FALSE;当函数执行成功,返回TRUE,否则,返回FALSE。

如果全局变量的当前值与check_value不同,函数将返回FALSE。

函数为 "客户端全局变量" 提供了强大的访问能力,这就是为什么在一个客户端内同时运行的几个智能交易程序用它作为通信信号进行相互通信的原因。

参量:

name - 客户端全局变量名称。value - 新的数值。check_value - 与当前全局变量的值相比较的值。

示例:

  int init()    {     //---- 创建客户端全局变量     GlobalVariableSet("DATAFILE_SEM",0);     //...    }    int start()    {     //---- 尝试锁住公共资源     while(!IsStopped())       {        //---- 锁住        if(GlobalVariableSetOnCondition("DATAFILE_SEM",1,0)==true)  break;        //---- 可以删除变量吗?        if(GetLastError()==ERR_GLOBAL_VARIABLE_NOT_FOUND) return(0);        //---- 等待        Sleep(500);       }     //---- 资源被锁     // ...做些工作     //----解锁资源     GlobalVariableSet("DATAFILE_SEM",0);    }

GlobalVariablesDeleteAll() – 删除全部全局变量

int GlobalVariablesDeleteAll(void prefix_name)

删除 "客户端全局变量"。如果全局变量名称的前缀没有指定,所有全局变量将被删除,否则,只有那些符合指定前缀开头的变量被删除。函数返回被删除的变量个数。

参量:

prefix_name - 要被删除的全局变量名称前缀。

示例:

  Print(GlobalVariablesDeleteAll("test_")," test_为开头的变量被删除");

GlobalVariablesTotal() – 获取全局变量总数

int GlobalVariablesTotal()

获取 "客户端全局变量" 的总数。

示例:

  Print(GlobalVariablesTotal(),"全局变量检测到");
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:MQL4客户端全局变量 - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/49038.html

相关文章

  • 外汇智能交易MQL4语言教程(三)

    4.2. MetaQuotes 4 语言的指令结构4.2.1. 变量宣告和语句在计算过程中保存临时数据要求使用变量。变量在本程序的开头部分就用保留字、变量、排列和定义进行了叙述。他允许使用这些词语的负数形式,即 “ Variables,...

    MQL4编程学习
  • 外汇EA:简单的订单管理(二)

    //+------------------------------------------------------------------+//| 如果执行达到此点, | //| 说明没有挂单和开仓。 | //+------------------------------------------------------------------+ //---...

    MQL4编程学习
  • 在MT4软件EA测试过程中,如何获得99.9%的数据质量,提高EA测试的准确性
    在MT4软件EA测试过程中,如何获得99.9%的数据质量,提高EA测试的准确性

    很多人都知道在进行EA测试的时候,通过MT4历史数据中心下载的数据质量只有90%,并且只有1分钟的高开低收4个报价,1分钟之内的tick数据时没有的,对EA的测试是不准确的。因此今天给大家介绍一下,如何通过第三方软件获得质量为9...

    MQL4编程学习
  • EA智能交易系统使用介绍(详细)
    EA智能交易系统使用介绍(详细)

    文件放置说明   &curren; 指标的mq4、ex4文件复制至experts目录的indicators子目录下  &curren; EA自动交易的mq4、ex4文件复制至experts目录下  &curren; tpl文件为模板文件,复制至templates目录下  &cur...

    MQL4编程学习
  • 打造风靡全球的自动赚钱机器

    EA智能外汇全自动交易系统,就是将您自己或别人的外汇交易策略用特殊的编程语言(MQL)编写成一个电脑软件程序(Expert Advisor), 让电脑按照您事先设定好的条件自动地为您买卖与交易,当然赢亏结果取决于您的自动交易系...

    MQL4编程学习
你可能感兴趣