Ilan Dynamic 1.6 HT 的基本算法很简单。它基于价格平均, 每笔交易的交易量逐级递增。 例如, 如果第一笔多单开仓后价格下跌并超过一定范围的点数, 则一笔更大交易量的多单将会开仓。 因此, Ilan Dynamic 的平均进场价格与当前市场价格保持接近。因此, 它只需等待一个小小的价格回滚即可盈利, 并通过止盈将所有持仓平仓。Ilan 1.6 Dynamic 的整体入场执行场景与 MetaTrader 5 策略测试器的屏幕截图相对应:如您所见, 在三个价位逆势买入, 但经过一个小回滚之后, 所有三笔持仓被平仓, 且有可观的利润。截图还显示了止盈价位 (绿色水平线) 和止损价位 (红色水平线)。智能交易系统根据最后几根柱线范围内的最高价和最低价之间的价格区间, 动态计算平均价位。"Dynamic (动态)" 意如其名道出了这个事实。除了止盈, Ilan 1.6 Dynamic 允许使用经典的止损, 尾随停止, 按时间离场, 通过 CCI 指标离场, 以及依照所有交易的指定净值级别离场。测试结果Ilan 1.6 Dynamic 的测试结果会根据选择的时间范围, 测试周期, 金融工具, 经纪商和初始条件表现出很大的不同。因此, EA 需要谨慎地选择进行交易的行情和参数。尽管如此, 使用默认设置, 在较短的历史区间内也可得到一些连贯的结果。此处是由智能交易系统生成的典型净值和余额图表:
输入和参数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 如果使用动态价格范围, 则为 true。 DefaultPips 120 价格通道的省缺级别 (以点数为单位)。 Glubina 24 Ilan 1.6 Dynamic 计算最后几根柱线之间的最高价和最低价的价格区间。此参数表示进行这种计算时使用多少根柱线。 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 如果您希望全部持仓的总亏损与最大盈利的比值达到确定的百分比就平仓, 则设为 True。 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。此模式是为折中方案, 兼顾高速测试和信号精度。仅开盘价。这是最快速的模式。由于虚拟化, 只在此模式下的柱线开盘时触发止盈。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 4 那样 在 MetaTrader 5 环境里工作。为此, 它使用并调用 HedgeTerminalAPI 库函数, 环境中的操作已在库中提供。参阅文章 "在 MetaTrader 5 使用 HedgeTerminal API 进行双向交易和仓位对冲, 第一部分" 来了解如何使用该库。如果您想修改 EA 的交易逻辑, 阅读这篇文章来理解 EA 的代码如何工作。在您开始之前, 需要在您的电脑上下载 HedgeTerminalAPI 库。之后, 在您的电脑上拷贝智能交易系统要用到的软件模块 (附加于后)。以下是这些模块的详细信息。ilan_1.6_dynamic_ht.mq5 - 基本模块。它包括 EA 的交易逻辑。名字中的标签 "HT" 指出智能交易系统需要 HedgeTerminalAPI 库来操作。仅有一个文应保存到文件夹 终端_数据_文件夹\MQL5\Experts\, 所有其它模块应保存到 终端_数据_文件夹\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 中, 也许需要花费一点时间才能将已执行的订单添加到历史记录中, 从中可以对其进行分析。此模块有助于正确等待将订单添加到历史记录。如何直观 EA 交易的操作, 以及通过手动操作控制其操作?Ilan 1.6 Dynamic 同一时间管理多个单向仓位。所有这些仓位在 MetaTrader 5 中显示为一个净余仓位。为了能够便捷地访问 EA 的仓位管理, 以及在每个时间点拥有其交易状态, 您还应安装 HedgeTerminal 演示面板。启动后, 它将按照以下方式显示 EA 交易的仓位:
|