作者:未知。
Ilan 1.6 Dynamic HT 的算法原理相对简单,它基于价格均值法,逐步增加每笔交易的交易量。
举例来说,如果在第一次开多单后价格下跌并超出某一范围,则将会以更大的交易量开设新的多单。
因此,Ilan Dynamic 的平均入场价格将接近当前市场价格。我们只需等待价格小幅回调,就可以通过设置止盈(TakeProfit)来平掉所有的持仓获利。以下是 MetaTrader 5 策略测试器中 Ilan 1.6 Dynamic 的入场情况截图:

如图所示,价格虽然逆势而行了三次买单,但在小幅回调后,所有三笔持仓均以可观的利润平仓。截图中显示了止盈水平(绿色水平线)和止损水平(红色水平线)。
该专家顾问会根据最近几根K线的高低价范围动态计算均值水平。“动态”一词正是指这一特性。
除了止盈,Ilan 1.6 Dynamic 还支持经典止损、移动止损、定时平仓、CCI 指标平仓以及设定的所有交易权益水平平仓。
测试结果
Ilan 1.6 Dynamic 的测试结果可能会因选择的时间框架、测试周期、交易工具、经纪商及初始条件的不同而有很大差异。
因此,该 EA 需要仔细选择参数和交易市场。然而,即使在较短的历史数据中,使用默认设置也有可能得到一些稳定的结果。以下是专家顾问生成的典型权益和余额图:


警告:Ilan 1.6 Dynamic 的浮动盈亏或权益可能与其余额有很大差异,且在图表中有所反映。如果价格单边移动而没有回调,其权益会下降,最终可能导致保证金追补(Margin Call)和损失你的账户。使用 Ilan 1.6 Dynamic 时,请仅在盘整行情下操作。使用其交易手数时请谨慎!
输入和参数
Ilan 1.6 Dynamic 默认配置已经很优化。大部分参数在此模式下并未被使用,但你可以自定义选项。
请使用以下表格来自定义参数。
| 参数名称 | 值 默认 | 描述 |
|---|---|---|
| 基本参数 | ||
| LotExponent | 1.4 | 开设下一笔持仓时的手数倍数。例如,当 LotExponent = 1.4 且 Lots = 0.1 时,第一笔开仓手数为 0.1,第二笔均值持仓手数为 0.2 (0.1 * 1.4^2),第三笔为 0.3 (0.1 * 1.4^3),第七笔为 1.0 (0.1 * 1.4^7)。此参数应谨慎调整,值范围从 1.0(超保守交易)到 2.0(超激进交易); |
| MaxTrades | 10 | 单方向可开仓的最大持仓数。如果达到持仓上限,将不再开新仓,而是根据合适的退出条件平掉旧仓(取决于设置)。 |
| DynamicPips | true | 如果使用动态价格范围,则为真。 |
| DefaultPips | 120 | 价格通道的默认值(以点为单位)。 |
| Glubina | 24 | Ilan 1.6 Dynamic 计算最近几根K线的高低价范围。该参数指示用于计算的K线数量。 |
| DEL | 3 | 该比例指示用于定义下一个买入或卖出水平的价格范围的部分。 |
| Lots | 0.1 | 第一笔交易的手数大小。 |
| lotdecimal | 1 | 手数计算的小数位数。 0 - 普通手(1.0),1 - 小手(0.1),2 - 微手(0.01) |
| TakeProfit | 100 | 从当前价格起平掉所有持仓的止盈水平(点数)。 |
| slippage | 30 | 最大允许滑点(点数)。 |
| MagicNumber | 2222 | 专家顾问的魔术数字。 |
| 定义市场入场信号的参数 | ||
| RsiPeriod | 14 | RSI 指标周期。 |
| RsiMinimum | 30.0 | 如果 RSI 低于当前水平,则不执行买入交易。 |
| RsiMaximum | 70.0 | 如果 RSI 高于当前水平,则不执行卖出交易。 |
| 经典止损水平的使用与配置 | ||
| UseStopLoss | false | 默认情况下,不使用止损水平,但可以通过将此变量值设置为 true 来启用。 |
| StopLoss | 500.0 | 止损水平(以点为单位,默认值为 5 位报价)。 |
| 权益止损的使用与配置 | ||
| UseEquityStop | false | 如果希望在所有持仓的总亏损达到某一百分比时平掉仓位,则为真。 |
| EquityPercent | 1.0 | 所有开放持仓的利润占当前账户权益的百分比。如果超过此百分比,所有持仓将激活权益止损。 |
| TotalEquityRisk | 20.0 | 最大权益亏损的百分比,EA 将在该情况下平掉所有现有持仓。 |
| 移动止损的使用与配置 | ||
| UseTrailingStop | false | 默认情况下,不使用移动止损,但可以通过将此变量值设置为 true 来启用。 |
| TrailStart | 100.0 | 所有持仓的加权平均利润水平(以点为单位)。一旦超过该水平,将激活移动止损。 |
| TrailStop | 100.0 | 当前价格与止损之间的距离(以点为单位),该距离应被移动。 |
| 基于 CCI 的止损的使用与配置 | ||
| UseCCIStop | false | 默认情况下,不使用 CCI 基于止损,但可以通过将此变量值设置为 true 来启用。 |
| CCIPeriod | 55 | CCI 的周期。 |
| CCILevel | 500 | 如果 CCI 值 > CCILevel(默认 500),则平掉所有空头持仓。如果 CCI 值 < -500(默认),则平掉所有多头持仓。 |
| 基于时间的平仓的使用与配置 | ||
| UseCloseByTime | false | 默认情况下,不使用基于时间的平仓,但可以通过将此变量值设置为 true 来启用。 |
| MaxTradeOpenHours | 48 | 自第一笔持仓开仓以来的小时数,在此之后平掉所有持仓。仅计算交易时间,周末和节假日时间不算。 |
测试模式、最佳交易工具和时间框架。
Ilan 1.6 Dynamic 主要是为了从短期价格波动中获利。其最优时间框架为 15 分钟图(M15)。默认设置适用于 5 位报价。该 EA 支持以下模式的测试:
- 每个点。若使用移动止损并希望准确执行止盈、CCI 止损和权益止损,请在此模式下测试 EA。
- 1 分钟 OHLC。此模式是一个折中,结合了较高的测试速度和信号准确性。
- 仅开盘价。此为最快模式。在此模式下,止盈在K线开盘时触发。CCI 止损和权益止损也以相同方式触发。然而,在许多情况下,这种人工近似会带来比“每个点”模式更好的结果。
Ilan 1.6 Dynamic 的算法在正常模式和随机延迟模式下均成功测试。
推荐交易品种
建议在所有具有较长盘整(无趋势)时期的货币对上使用 Ilan 1.6 Dynamic。适合的货币对包括 EURUSD、USDJPY、GBPUSD、USDCHF、EURCHF 和其他主要货币对。该 EA 的设置已针对 5 位报价进行优化。如果想在 4 位报价的货币对上使用 EA,首先将以下参数缩小十倍:
- DefaultPips - 12;
- TakeProfit - 10;
- slippage - 3;
- StopLoss - 50。
如何编译 EA 并使其工作(重要!)
Ilan 1.6 Dynamic 积极使用订单网格和单独持仓管理。
因此,它需要一个特殊的虚拟化来在 MetaTrader 5 环境中运行,类似于 MetaTrader 4。为此,它使用 HedgeTerminalAPI 库函数的调用,该库提供的环境中运行。阅读文章“在 MetaTrader 5 中使用 HedgeTerminal API 进行双向交易和对冲持仓,第一部分”以了解如何使用该库。如果你想修改 EA 的交易逻辑,请阅读此文章以了解 EA 代码的工作原理。
在开始之前,你需要在计算机上下载HedgeTerminalAPI库。之后,将 EA 使用的所有软件模块复制到你的计算机上(附在此处)。以下是这些模块的详细信息。
- ilan_1.6_dynamic_ht.mq5 - 基本模块。包含 EA 的交易逻辑。名称中的“HT”标签表示该专家顾问需要 HedgeTerminalAPI 库才能运行。此文件应保存到 terminal_data_folde\MQL5\Experts\ 文件夹中,其他所有模块应保存到 terminal_data_folder\MQL5\Include\。
- prototypes.mqh - 与库交互所需的原型文件。
- drawhedgeposition.mqh - 类似于 MetaTrader 4 的方式追踪(绘制)EA 的交易(见第一张截图)。双向持仓是并行开启的,而不是在 MetaTrader 5 中一个接一个地跟随。
- environment.mqh - 专家顾问的交易环境模块。收集 EA 运行所需的所有交易信息。它可以让你了解 EA 开了多少笔持仓,它们的盈亏情况以及其他许多有用的信息。
- testertable.mqh - 在策略测试器中显示专家顾问所有开放持仓的简单表格。如果希望 EA 的持仓实时显示在可视化表中,请使用HedgeTerminal面板。
- indicators.mqh - 指标模块。提供访问指标数据的简单接口。
- tradestate.mqh - 专家顾问的交易状态模块。在 MetaTrader 5 中,可能需要一些时间才能将执行的订单添加到订单历史中,才能进行分析。此模块有助于正确等待订单被添加到历史中。
如何可视化专家顾问的操作并通过手动操作控制其运作?
Ilan 1.6 Dynamic 同时管理多个单向持仓。所有这些持仓在 MetaTrader 5 中显示为一个净头寸。为了方便访问 EA 持仓的管理,以及随时了解其交易状态,你还应该安装演示面板HedgeTerminal。启用后,它将以下方式显示专家顾问的持仓:

欲了解更多详细信息,请阅读文章在 MetaTrader 5 中使用 HedgeTerminal API 进行双向交易和对冲持仓,第一部分。
评论 0