MQL4客户端状态检测相关函数

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

这组函数可以检测客户端的当前状态,包括运行MQL4程序的环境状态。

  • GetLastError() – 获取最新产生的错误信息
  • IsConnected() – 判断连接状态
  • IsDemo() – 判断是否是模拟账户
  • IsDllsAllowed() – 判断是否允许调用DLL函数
  • IsExpertEnabled() – 判断智能交易是否开启
  • IsLibrariesAllowed() – 判断是否允许调用库函数
  • IsOptimization() – 判断是否在优化模式中运行
  • IsStopped() – 判断智能交易是否中止
  • IsTesting() – 判断是否在测试模式中运行
  • IsTradeAllowed() – 判断是否允许交易
  • IsTradeContextBusy() – 判断交易是否忙
  • IsVisualMode() – 判断是否在可视模式下测试
  • UninitializeReason() – 获取未初始化原因

 

GetLastError() – 获取最新产生的错误信息

int GetLastError()

本函数先返回最新产生的错误信息,然后将保存出错代码的last_error变量值归零,所以,再次调用GetLastError()函数将返回0。

示例:

  int err;  int handle=FileOpen("somefile.dat", FILE_READ|FILE_BIN);  if(handle<1)    {     err=GetLastError();     Print("错误(",err,"): ",ErrorDescription(err));     return(0);    }

IsConnected() – 判断连接状态

bool IsConnected()

本函数返回在客户端和执行数据中转任务的服务器之间主连接状态。如果成功建立到服务器的连接,返回true,否则,返回false。

示例:

  if(!IsConnected())    {     Print("没有连接到服务器!");     return(0);    }  // 需要建立连接才能执行下面的代码  // ...

IsDemo() – 判断是否是模拟账户

bool IsDemo()

如果智能交易在模拟账户里运行,返回true,否则,返回false。

示例:

  if(IsDemo()) Print("在模拟账户运行");  else Print("在真实账户运行");

IsDllsAllowed() – 判断是否允许调用DLL函数

bool IsDllsAllowed()

如果智能交易允许调用DLL函数,返回true,否则,返回false。

参见 IsLibrariesAllowed(), IsTradeAllowed().

示例:

  #import "user32.dll"     int     MessageBoxA(int hWnd, string szText, string szCaption,int nType);  ...  ...  if(IsDllsAllowed()==false)    {     Print("DLL不允许调用。智能交易不能运行。");     return(0);    }  // 智能交易程序调用外部DLL函数    MessageBoxA(0,"an message","Message",MB_OK);

IsExpertEnabled() – 判断智能交易是否开启

bool IsExpertEnabled()

如果智能交易开启,返回true,否则,返回false。

示例:

   while(!IsStopped())    {     ...     if(!IsExpertEnabled()) break;    }

IsLibrariesAllowed() – 判断是否允许调用库函数

bool IsLibrariesAllowed()

如果智能交易允许调用库函数,返回true,否则,返回false。

参见 IsDllsAllowed(), IsTradeAllowed().

示例:

  #import "somelibrary.ex4"     int somefunc();  ...  ...  if(IsLibrariesAllowed()==false)    {     Print("不允许调用数据库");     return(0);    }  // 智能交易调用外部 DLL 函数  somefunc();

IsOptimization() – 判断是否在优化模式中运行

bool IsOptimization()

如果智能交易运行在策略测试器的优化模式,返回true,否则,返回false。

示例:

  if(IsOptimization()) return(0);

IsStopped() – 判断智能交易是否中止

bool IsStopped()

如果程序(一个智能交易程序或一个脚本程序)得到了停止运行的命令,返回true,否则,返回false。在 客户端强制中止执行 之前,程序还能继续运行2.5秒。

示例:

  while(expr!=false)    {     if(IsStopped()==true) return(0);     // 长时间运行循环     // ...    }

IsTesting() – 判断是否在测试模式中运行

bool IsTesting()

如果智能交易运行在测试模式中,返回true,否则,返回false。

示例:

  if(IsTesting()) Print("测试中");

IsTradeAllowed() – 判断是否允许交易

bool IsTradeAllowed()

如果智能交易程序允许交易,而且执行交易的线程没有被占用,返回true,否则,返回false。

参见 IsDllsAllowed(), IsLibrariesAllowed(), IsTradeContextBusy()

示例:

  if(IsTradeAllowed()) Print("允许交易");

IsTradeContextBusy() – 判断交易是否忙

bool IsTradeContextBusy()

如果执行交易的线程被另一个智能交易占用,返回true,否则,返回false。

参见 IsTradeAllowed()

示例:

  if(IsTradeContextBusy()) Print("交易繁忙中,请稍等");

IsVisualMode() – 判断是否在可视模式下测试

bool IsVisualMode()

如果智能交易运行在“可视模式”下进行测试,返回true,否则,返回false。

示例:

  if(IsVisualMode()) Comment("可视模式开启");

UninitializeReason() – 获取未初始化原因

int UninitializeReason()

返回智能交易、自定义指标和脚本的未初始化原因代码。返回值为 未初始化原因代码 之一。本函数同样可以在函数init()中调用,用于分析上次运行出错原因。

示例:

  // 这是范例  int deinit()    {     switch(UninitializeReason())       {        case REASON_CHARTCLOSE:        case REASON_REMOVE:      CleanUp(); break; // 清理和所有资源重分配        case REASON_RECOMPILE:        case REASON_CHARTCHANGE:        case REASON_参量:        case REASON_ACCOUNT:     StoreData(); break;  // 准备重新开始       }     //...    }
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:MQL4客户端状态检测相关函数 - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/49050.html

相关文章

  • MQL4账户信息相关函数

    账户信息相关函数AccountBalance() &#8211; 获取账户余额 AccountCredit() &#8211; 获取账户信用额度 AccountCompany() &#8211; 获取账户所在公司名称 AccountCurrency() &#8211; 获取账户结算货币名称 A...

    MQL4编程学习
  • MT4编程初级手册(7):条件判断语句

    一、if判断语句 if判断语句很常用,使用起来也比较简单。 规则:如果小括号中的条件成立则执行大括号中的语句;如果不成立则跳过大括号,执行后面的语句。 例如: if(condition==1){ a=b+1; } 我们在编写报警指标的...

    MQL4编程学习
  • EA是外汇交易的圣杯吗?

    EA程序化系统虽然相对人而言更有客观性更有执行力,也是阿右能够接受和认可的工具,但是系统优化与执行效率、概率事件与实际序列分布、变量与系统绩效评价是量化策略的三大悖论,将交易获利的希望完全建立在完美的一套E...

    MQL4编程学习
  • 如何将MT4上的交易行为复制到其他账户里面?
    如何将MT4上的交易行为复制到其他账户里面?

    在本文中,我们将介绍如何将某一MT4账户的交易行为拷贝到其他的MT4账户上面,有可能是你自己另外的账户,或者是客户的账户、你朋友的账户、你家人的账户。只要你可以访问这些账户,你就可以将你的账户交易行为拷贝到其他...

    MQL4编程学习
  • 外汇EA简介

    EA 即 Expert Advisors 的英文缩写 中文意思专家顾问,俗称智能交易系统,就是由电脑模拟交易员的下单操作进行机器自动交易的过程。 一>、人工操盘过程 下面我们...

    MQL4编程学习
你可能感兴趣