待您完成交易信号、跟踪及资金管理对象的创建和初始化后2023年5月17日当您创筑主动化往还体例时,有需要编写解析商场处境、天生往还信号的算法,以及追踪您的敞口仓位、资金治理与危险治理体例的算法。
模块代码编写完毕后,最难的合头便是把各个个别组合起来,并对往还机械人源代码实践调试。模块交互的架构是这里当之无愧的主角:如其修建不良,则大大都的年华城市花正在查找和矫正过失方面;并且,如您退换任何模块的算法,城市变成全盘源代码的重写。
正在 MQL5 中,使用面向对象方式会显明利便主动化往还体例的编写和测试。
MetaQuotes Software Corp.曾经开拓出了实践往还战略的类。现正在,通过正在 MetaEditor 中直接拣选需要的往还信号(此刻为 20 个)、追踪(4) 和资金治理(5) 模块,咱们能够主动天生“EA 往还”代码。通过上述模块的组合,您就能够获得繁众品种的即用型往还体例变体。
您还能够搭配上述任何模块的竣工来操纵我方的类。自行创筑,或是通过职责任事订购。
本文中咱们要查究的,是使用MQL5 引导主动天生“EA 往还”源代码。并且无需任何编程!
筑仓平静仓的算法是由往还信号模块确定的。往还信号模块蕴涵筑仓/平仓/反向仓位的条例。
要增加一个往还信号模块,则按 Add (增加)按钮。
有两种参数创筑形式。您能够用鼠标左键双击参数图标的体例,正在两种形式间切换。倘使参数有高亮图标
,那么它可用作“EA 往还”的输入变量。并且,此类参数还可用于战略测试标准中的 EA 优化。倘使参数呈灰色图标
下一步是拣选跟踪敞口仓位的算法(跟踪止损)。操纵跟踪让您或许兑现赚得的利润。
这种跟踪类型有两个参数:StopLevel 与 ProfitLevel (按逗号后面 2 位和 4 位报价的点数),将用于跟踪敞口仓位:
正在最终一步中,您须要拣选将正在您的“EA 往还”中操纵的资金与危险治理体例。
此算法的方针正在于确定往还操作的往还量(手数),以及危险治理。倘使耗损值跨越首肯限度(譬喻资产净值的 10%),则资金与危险治理模块会强行合上不盈余的仓位。
CExpert类(其用于“EA 往还”中的实例)的代码位于 Expert.mqh 文献中。
字符串 Expert_Title 参数会指定“EA 往还”的名称,Expert_MagicNumber 会指定其 ID (该值会被用于往还苦求参数中),而 Expert_EveryTick 参数则用于创立 EA 的处事形式。如将 Expert_EveryTick 创立为 true,则每当有用往还种类展现新的代价转化时,“EA 往还”都能够挪用途理标准函数(查抄有无往还条款、实施往还操作、跟踪敞口仓位)。
继“EA 往还”通例参数之后到来的是选定往还信号算法的输入参数(本例中是用于CSignalMA类的参数)。
CMoneyFixedLot类还会实践危险治理算法:倘使 Inp_Money_FixLot_Percent 参数中指定了一个耗损(举动此刻资产净值一个给定的百分比),则CMoneyFixedLot类会发起“EA 往还”强作为不盈余仓位平仓,并且也会云云实施。
要创立“EA 往还”的参数,您必须要创筑对应类的实例,并指定对待 ExtExpert 类中创筑对象的援用。
咱们来看看“EA 往还”初始化的OnInit函数。咱们正在此告竣 ExtExpert 类的初始化和属性装备。
ExtExpert 对象使用Init方式初始化。咱们正在这里设定了往还种类、年华外、每次代价转化挪用方式的标记、“EA 往还”的 ID,并且还告竣了类的个人对象的创筑和初始化(正在此阶段,CExpertSignal、CExpertMoney和CExpertTrailing类被用作信号、跟踪与资金治理对象)。
倘使 ExtExpert 对象未能胜利初始化,则“EA 往还”正在返回代码 -1 的同时被中止。
倘使 ExtExpert 对象未能胜利初始化,“EA 往还”会被中止且返回代码(从 -2 到 -3),是何代码则取决于过失正在哪个步伐产生。
凭据参数正在 MQL5 引导中被指定的体例,天生相应的代码。//--- 创立信号参数 filter0.PeriodMA(85); //--- 参数由MQL5 引导创立固定 //--- (灰色图标 - 固定值等于 85) filter0.SlowPeriod(Signal_MA_Shift); //--- 参数凭据输入变量创立 //--- (蓝色图标 - EA往还的输入参数)倘使参数固定、且其值与缺省值没有区别,则其不会被写入天生的代码。这种状况下,就会采用参数的缺省值(已于相应类中指定)。
倘使跟踪对象未能胜利初始化,“EA 往还”会被中止且返回代码(从 -4 到 -5),是何代码则取决于过失正在哪个步伐产生。
倘使资金对象未能胜利初始化,“EA 往还”会被中止且返回代码(从 -6 到 -7),是何代码则取决于过失正在哪个步伐产生。
待您告竣往还信号、跟踪及资金治理对象的创筑和初始化后,ExtExpert 的 ValidationSettings() 方式就会被挪用。以后,又会挪用 ExtExpert 对象的 InitIndicators() 方式。它会初始化信号、跟踪及资金对象中操纵的目标。
举动结果的“EA 往还”会凭据选定的往还信号、跟踪敞口仓位以及资金与危险治理的算法举办往还。
您能够看看,我方新创筑的往还体例,若何使用来自MetaTrader 5客户端的战略测试标准处事。图 11 所示为默认创立下凭据史书数据获得的测试结果 (EURUSD, H1, 2010.01.01-2011.06.01) :
能够正在 MetaTrader 5 战略测试标准中举办优化之后寻得一组最佳的 EA 往还标准参数。
使用往还战略类为您往还理念的创筑和测试供给了极大的方便。现正在,“EA 往还”的全盘源代码,都能够使用MQL5 引导、基于即用型“圭臬库”模块或您我方的模块,直接正在 MetaEditor 中构制。
倘使您不念或不行编写我方的往还信号模块,您任何岁月都能够从职责任事以及通过订购全盘往还机械人或所需的模块来获取。此方式还能竣工以下其他好处:
FXCG 相关资讯