欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

RAD - 快速应用程序开发库 - MetaTrader 4 库

author emer | 631 人阅读 | 0 人评论 |

该库包含大量函数,可以避免对机制的干扰并让您专注于逻辑,从而加快 MQL4 中的开发速度。例如,要开0.4手的订单,只需调用开放购买(0.4);功能。当然,此类函数有多个参数,其他参数均设置为默认值。如有必要,也可以对其进行填充。

图书馆的特色是RAD_onTick(),RAD_onInit(),RAD_onDeinit()处理程序。它们必须在相应函数中的专家或指标中调用,并且应放置在其开头。它还具有默认值的配置功能,例如,使用以下命令设置幻数RAD_setMagic(...),符号与RAD_setSymbol(...)和滑移RAD_setSlippage(...)。它还包括用于处理字符串、数组和其他数学运算的扩展功能。这RAD_调试启用()被激活以调试应用程序。插入RAD_DEBUG_ASSERT(...)代码部分会将指定的行打印到控制台,插入RAD_DEBUG_SECTION{....}当调试模式处于活动状态并且具有日志记录功能时,将运行括号中的代码(RAD_LogEnabled()) 启用后,它将输出到日志文件。其余众多功能的描述可以在文件本身中找到。

以下是抽象智能交易系统的代码示例:

//+------------------------------------------------------------------+
//|                                                      项目名称 |
//|                                      版权所有 2012,公司名称 |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#财产版权 “版权所有 2016,MetaQuotes Software Corp.”
#财产关联      “https://www.mql5.com”
#财产版本  “1.00”
#财产严格的

#包括输入 整数魔法=2143658709;输入 整数快周期=  14;输入 整数慢周期=  20;输入 双倍的风险=10;输入 整数止损=60;输入 整数止盈=30;//======================================================
整数 初始化时()
  {

   RAD_onInit();//初始化库   RAD_set程序名(“马什卡专家”);//设置专家名称   RAD_setLogName(RAD_ProgramName()+“_logger.log”);//指定用于记录的文件名   RAD_setEquityBreakdown(40);//设置净值允许的回撤水平。每次勾选时检查   RAD_setMagic(魔法);//设置幻数的标准值   RAD_DebugEnable();//启用调试模式   RAD_LogEnable();//开始记录  返回初始化成功);
  }//======================================================
空白 解初始化常量 整数原因)
  {
   RAD_onDeinit();//到目前为止,该事件的处理程序是空的,但让它留在那里以供将来使用  }//======================================================
空白 勾选()
  {
   RAD_onTick();//处理图书馆内部事务                //新的柱到达了  如果(isNewBar())
     {

      双倍的快=伊玛无效的,0, 快周期,0,模式_EMA,PRICE_CLOSE,0);//快速移动平均线      双倍的慢=伊玛无效的,0, 慢周期,0,模式_EMA,PRICE_CLOSE,0);//慢移动平均线      双倍的很多=LotOnRisk(风险);

      RAD_ASSERT(0,“快速地:”+快+“  慢的:”+慢+“  很多:”+很多);

      //开仓条件为买入,否则为卖出      如果(快>慢)
        {
         RAD_ASSERT(1,“打开买入订单”);
        如果(CountOrders(omBuy|omPoolTrades)==0//检查买入订单是否已经打开            OpenBuy(手数、止损、止盈);//打开买入订单           }别的{
         RAD_ASSERT(2,“打开卖出订单”);
        如果(CountOrders(omSell|omPoolTrades)==0//检查卖单是否已经打开            OpenSell(手数、止损、止盈);//开立卖出订单        }

     }

  }//+------------------------------------------------------------------+

当然,这样的 EA 不会带来利润,因为我们都知道这种基于 MA 的策略:)

这只是代码的示例。它表明该库不需要值检查,不需要计算止损位,不需要编写 100 倍嵌套订单检查,所有这些都已在库中为您编写。另一个处理订单的代码示例:

CountOrders(omBuy | omPoolTrades)//返回交易池中具有任意幻数和符号的买入订单数量
CountOrders(omSells | omPoolHistory,123,“欧元兑美元”//返回历史池中幻数等于123且符号等于EURUSD的SELL、SELL_STOP、SELL_LIMIT类型订单的数量
CountOrders(omBuy | omBuyStop | omPoolTrades,123//返回幻数等于 123 且交易池中任意交易品种的 BUY 和 BUY_STOP 订单数量
关闭订单(omBuys)//关闭所有带有任意幻数和符号的 BUY、BUY_STOP、BUY_LIMIT 订单并返回其数量
关闭订单(omAll)//关闭账户上可用的所有类型的所有订单

//检查交易池中的订单是否属于买入或卖出类型、123幻数和EURUSD符号
如果(isOrderFilter(票据, omActive | omPoolTrades,123,“欧元兑美元”))

//检查任意池中的订单是否属于买入类型、123幻数和任意符号
如果(isOrderFilter(门票, omBuy | omPoolAll,123,无效的))

代码看起来很简单,同时功能齐全且用途广泛。

数组的扩展工作。现在您不必重复编写向数组添加元素的代码,现在调用类似以下内容就足够了:

整数一个[];

数组添加(a,12);
数组添加(a,24);
数组添加(a,55);
数组添加(a,75);  //该数组将显示为 [12,24,55,75]

从数组中删除元素也很简单:

数组Del(a,2);//删除数组中的第三个元素,结果是[12, 24,75]

或者像这样:

数组Del(a,1,3);//从位置1开始删除三个元素。结果是[12]

这是使用按值和按链接传输选项的功能模板来实现的

如果需要从网上下载页面,简单调用:

细绳页;整数尺寸;

大小 = 下载页面(“http://www.google.com”, 页,2,5);//下载Google页面,尝试2次失败,延迟5秒

文件也是一样,只是第二个参数是文件名。

数学仪器也得到了扩展。从多个值中搜索最大值不再看起来像一堆嵌套的 MathMax(MathMax(MathMax...)))。它现在具有使用函数模板实现的最多 5 个参数,现在可以调用为:

双倍的最大限度;

最大值 =数学麦克斯12.4,55.432,128电子-4,8003.44);

生成 -34000 到 125000 范围内的随机数如下所示:

双倍的随机的;

随机 = MathRandomDouble(-34000.0,125000.0);//生成从-34000到125000的随机数随机 = MathDiscrete(随机,100.0);//如果需要的话可以添加100的随机数采样

但随后,代码是开放的。查看、添加、提出有关库的结构或其功能的想法以及一般评论。


附件下载

📎 rad_lib.mqh (85.36 KB)

Source: MQL5 #15945

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录