Ilan 1.6 Dynamic HT:MetaTrader 5 的交易专家

Mike 2015.03.26 21:43 30 0 0
附件

作者:未知。

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(超激进交易);
MaxTrades10 单方向可开仓的最大持仓数。如果达到持仓上限,将不再开新仓,而是根据合适的退出条件平掉旧仓(取决于设置)。 
DynamicPips true 如果使用动态价格范围,则为真。
DefaultPips 120 价格通道的默认值(以点为单位)。
Glubina24  Ilan 1.6 Dynamic 计算最近几根K线的高低价范围。该参数指示用于计算的K线数量。
DEL 该比例指示用于定义下一个买入或卖出水平的价格范围的部分。
Lots 0.1  第一笔交易的手数大小。
lotdecimal  手数计算的小数位数。  0 - 普通手(1.0),1 - 小手(0.1),2 - 微手(0.01)
TakeProfit100  从当前价格起平掉所有持仓的止盈水平(点数)。
slippage30 最大允许滑点(点数)。
MagicNumber 2222  专家顾问的魔术数字。
定义市场入场信号的参数 
RsiPeriod14 RSI 指标周期。
RsiMinimum30.0 如果 RSI 低于当前水平,则不执行买入交易。
RsiMaximum 70.0 如果 RSI 高于当前水平,则不执行卖出交易。
经典止损水平的使用与配置
UseStopLossfalse 默认情况下,不使用止损水平,但可以通过将此变量值设置为 true 来启用。
StopLoss500.0 止损水平(以点为单位,默认值为 5 位报价)。
权益止损的使用与配置
UseEquityStopfalse 如果希望在所有持仓的总亏损达到某一百分比时平掉仓位,则为真。
EquityPercent1.0 所有开放持仓的利润占当前账户权益的百分比。如果超过此百分比,所有持仓将激活权益止损。
TotalEquityRisk20.0 最大权益亏损的百分比,EA 将在该情况下平掉所有现有持仓。
移动止损的使用与配置
UseTrailingStopfalse 默认情况下,不使用移动止损,但可以通过将此变量值设置为 true 来启用。
TrailStart100.0 所有持仓的加权平均利润水平(以点为单位)。一旦超过该水平,将激活移动止损。
TrailStop100.0 当前价格与止损之间的距离(以点为单位),该距离应被移动。
基于 CCI 的止损的使用与配置
UseCCIStopfalse 默认情况下,不使用 CCI 基于止损,但可以通过将此变量值设置为 true 来启用。
CCIPeriod55 CCI 的周期。
CCILevel500 如果 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