请观看如何免费下载自动交易
请在Telegram上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
EA

Ilan 1.6 Dynamic HT - MetaTrader 5EA

发布者:
Vasiliy Sokolov
显示:
3999
等级:
(67)
已发布:
2016.12.22 11:34
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

真实作者:

未知。

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 的净值可能与其余额有较大差额, 这已反映在图表上。如果价格移动未能回滚, 其净值跌落且 此策略最终可导致追加保证金并耗尽您的本金。使用 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  如果使用动态价格范围, 则为 true。
DefaultPips  120  价格通道的省缺级别 (以点数为单位)。
Glubina 24   Ilan 1.6 Dynamic 计算最后几根柱线之间的最高价和最低价的价格区间。此参数表示进行这种计算时使用多少根柱线。
DEL  此比率指示在定义下一个买入或卖出级别时使用价格范围的哪一部分。 
Lots  0.1   首笔交易手数。 
lotdecimal   计算手数时的小数位数。  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 交易的仓位:

更多详情, 请阅读文章 在 MetaTrader 5 使用 HedgeTerminal API 进行双向交易和仓位对冲, 第一部分

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/12220

保证金计算 保证金计算

用于在 MetaТrader5 中计算开仓所需保证金的库。

YZ_Summer_Time YZ_Summer_Time

检查日期是否属于冬季或夏季时间段。代码是为新闻调试开发的。

TrendSignal 专业版 TrendSignal 专业版

最终版本的 TrendSignal 指标。它不会重绘, 也适用于模板。

RJT 火柴棍 RJT 火柴棍

指标基于火柴棍倾斜来帮助判断趋势的结束和开始。