微信扫一扫 分享朋友圈

已有 51 人浏览分享

开启左侧

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

[复制链接]
51 0
MQL4客户端状态检测相关函数
这组函数可以检测客户端的当前状态,包括运行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本函数返回在客户端和执行数据中转任务的服务器之间主连接状态。如果成功建立到服务器的连接,返回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()返回智能交易、自定义外汇MT4指标和脚本的未初始化原因代码。返回值为 未初始化原因代码 之一。本函数同样可以在函数init()中调用,用于分析上次运行出错原因。
    示例:
      // 这是范例  int deinit()    {     switch(UninitializeReason())       {        case REASON_CHARTCLOSE:        case REASON_REMOVE
    大家在看了小编以上对"MQL4客户端状态检测相关函数"的介绍后应该都清楚了吧,希望对大家做单有所帮助。如果大家还想要下载更多有关"MQL4客户端状态检测相关函数"的相关EA源码,敬请关注汇探网下载。我们会持续更新交易系统,EA源码。
  • 举报 使用道具

    回复
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    精彩推荐
    热门资讯
    网友晒图
    图文推荐
    • 联系我们
    • 邮箱:1912582076#qq.com(请把#改成@)
    • 电话:400-178-8526
    • QQ客服 1912582076
    • 工作时间:周一至周五(早上9点至下午5:30点)
    • 微信公众平台

    • 客服微信号

    QQ|外汇EA|炒外汇论坛|外汇ea|汇探网 |网站地图

    GMT+8, 2026-3-20 06:57 , Processed in 0.283544 second(s), 29 queries .

    Powered by 汇探网 免责申明:本平台仅提供 外汇ea, 外汇指标模板所有产品及展示信息均由第三方发布提供.|投资有风险,交易需谨慎.

    Copyright © 2014-2023, 汇探网-提供 外汇MT4指标,外汇EA下载,外汇交易系统,外汇开户赠金视频教程,外汇软件工具等.版权所有,复制必究.