请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
27
等级:
(1)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

日经225跳空延续专家顾问

日经225跳空延续EA是一款适用于MetaTrader 5的教育型专家顾问。它分析日经225现货交易时段的开盘跳空,并在初始价格区间形成后寻找延续交易机会。该策略可处理看涨和看跌跳空,并利用交易时段VWAP作为额外的确认过滤器。

该程序包含自动仓位管理、点差保护、部分获利了结、盈亏平衡管理以及基于时间的安全平仓功能。它同时支持净额结算和对冲账户。所有重要决策均可显示在图表上,并记录到专家顾问日志中以便分析。


策略概述

每个交易日开始时,该EA会计算有效的现货交易时段时间表。在自动模式下,日本标准时间将转换为Darwinex服务器时间,其中包含服务器夏令时调整。此外,还提供手动服务器时间模式,适用于其他经纪商。

该EA获取上一现金交易时段的收盘价,并将其与当前交易时段的开盘价进行比较。如果开盘缺口的绝对值小于配置的阈值,则不创建交易设置。看涨缺口可触发买入设置,而看跌缺口可触发卖出设置。

交易时段开启后,该EA会基于一分钟K线构建开盘波动区间。它还会利用实际成交量(如有)计算该时段的VWAP,若无实际成交量则以报价量作为备选。如果在入场前,原始开盘缺口的超过一半已被填补,则该交易机会将被取消。

日经225_缺口_延续_工作流

图1. 专家顾问采用的决策流程。

入场条件

对于买入交易,交易时段必须以符合条件的看涨跳空开盘。随后,价格必须突破开盘区间高点,并保持在当前交易时段VWAP之上。止损位设置在开盘区间低点下方,其中包含可选的止损缓冲区和经纪商规定的最小止损距离。

对于卖出交易,交易时段必须以符合条件的看跌跳空开盘。价格必须跌破开盘区间低点并持续位于VWAP下方。止损位设置在开盘区间高点上方。每个交易日仅允许一次策略入场。

  • 看涨缺口:买入——价格突破开盘区间且站上VWAP。
  • 看跌缺口:卖出——价格向下突破开盘区间且跌破VWAP。
  • 在入场前,缺口填补幅度必须小于50%。
  • 价差必须通过两个预设的价差过滤器。
  • 突破必须在入场截止时间前发生。

日经225指数缺口延续交易示例

图2. 看跌缺口延续形态示例,包含卖出入场和离场点。

风险与仓位管理

默认情况下,仓位规模根据账户权益、选定的风险百分比以及入场点与止损点之间的价格距离计算得出。该EA会调用OrderCalcProfit函数,以便将每手预计亏损以账户货币形式表示出来。这对指数差价合约(CFD)非常有用,因为不同经纪商的点值和报价货币可能存在差异。

也可以选择固定手数,而非基于风险的仓位设定。计算出的交易量始终向下取整至经纪商的交易量步长,并检查是否符合最小和最大交易量限制。如果经纪商的最小手数会超过允许的风险限额,则当日的交易设置将被取消。

当价格达到部分目标时,EA将平仓已配置比例的头寸。随后可将止损位移至入场价格。剩余头寸将根据最终的R倍数目标进行管理,或在现金交易时段结束前平仓。

主要输入组

输入组 用途
现货交易时段 交易时段模式、现货交易时段、开盘区间时长、入场截止时间及强制平仓。
买入 - 多头跳空 启用买入交易设置,并定义最小看涨开盘缺口。
卖出 - 看跌跳空 启用卖出交易设置,并设定最低看跌开盘缺口。
常见信号过滤器 成交量来源、最大价差、动态价差止损过滤器以及止损缓冲区。
买入风险 / 卖出风险 独立的权益风险设置,以及针对较小看跌缺口的可选风险降低功能。
成交量与平仓 固定手数、最大手数、部分平仓、R倍目标位及盈亏平衡管理。
执行 魔术数字、滑点、图表状态和诊断日志选项。

代码示例:开盘缺口计算

开盘缺口以前一交易日收盘价的百分比来衡量。结果的正负号决定了EA是评估“买入”分支还是“卖出”分支。

g_gap_percent=(g_session_open_px/g_previous_close-1.0)*100.0; double minimum_gap=(g_gap_percent>0.0 ? InpMinimumBuyGapPercent : InpMinimumSellGapPercent); if(MathAbs(g_gap_percent)<minimum_gap) { g_cancelled=true; return(false); }

代码示例:突破和 VWAP 确认

该方向性入场过滤器要求价格突破开盘区间的相应一侧,同时仍位于VWAP的正确一侧。

// BUY confirmation if(!(tick.bid>g_range_high && tick.bid>g_vwap)) return; // SELL confirmation if(!(tick.ask<g_range_low && tick.ask<g_vwap)) return;

代码示例:基于风险的交易量

将设定的资金风险额除以每手预计亏损额。随后将结果按该交易品种的成交量步长进行标准化处理,并受可选的最大手数设置限制。

double risk_money=AccountInfoDouble(ACCOUNT_EQUITY)*risk_percent/100.0; if(OrderCalcProfit(order_type,_Symbol,1.0,entry,stop,calculated_profit)) loss_per_lot=MathAbs(calculated_profit); g_last_raw_volume=risk_money/loss_per_lot; if(InpMaxLots>0.0) g_last_raw_volume=MathMin(g_last_raw_volume,InpMaxLots); return(NormalizeVolumeDown(g_last_raw_volume));

安装与使用

  1. 将 MQ5 文件复制到 MQL5\Experts 目录中。
  2. 在 MetaEditor 中打开该文件,运行 Styler 并进行编译。
  3. 将该EA附加到代表日经225指数的经纪商符号上。
  4. 使用 M5 时间周期作为提供的默认设置。
  5. 确认该交易代码的合约规格和现金交易时段。
  6. 选择自动 JST 转换或手动配置服务器时间。
  7. 检查风险、交易量、点差和平仓参数。
  8. 启用算法交易,并在策略测试器中测试设置。

经纪商及测试注意事项

各经纪商之间的日经225指数代码名称、报价精度、点值、最小交易量和交易时段各不相同。默认的自动时段转换功能是针对Darwinex服务器时间表设计的。其他经纪商的用户在运行测试前,应核实手动时段设置。

当同一符号上已存在其他头寸时,该EA将阻止新开仓。它将关键的头寸管理数据存储在交易终端的全局变量中,以便在重新连接或终端重启后,能够恢复部分平仓和盈亏平衡点管理。

回测结果易受数据质量、点差假设、合约规格及交易时段定义的影响。回测结果并不保证未来的表现。本源代码仅供教育和研究之用,每位用户均有责任根据自身交易条件对其进行验证。

作者

由 Francesc Jordi Mallol Nolden 开发。该源代码作为 MetaTrader 5 基于交易时段的开盘缺口策略的完整教学示例发布。

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/75301

Draw On Liquidity + Kill Zone Draw On Liquidity + Kill Zone

“流动性提取”(DOL)指标会自动在图表上标出这些关键水平,并通过交易时段的“杀区”突出显示高概率的交易窗口。凭借全面的自定义选项,该指标提供简洁、专业且信息量丰富的显示效果,从而助力您做出更明智的交易决策。

BlueMoon BlueMoon

BlueMoon EA 是一款 MT5 专家顾问,它将 EMA 包络线入场策略与自适应组合管理、渐进式仓位调整、点差过滤、回撤保护以及针对对冲账户的自动交易恢复功能相结合。

Asian Session Breakout / BhanuCodeLab Asian Session Breakout / BhanuCodeLab

“亚洲时段突破”指标用于识别亚洲交易时段内形成的价位区间,并监测该时段结束后价格的走势。 亚洲高点和亚洲低点将一直有效直至经纪商交易日结束。这使得该区间在欧洲和美国交易时段内成为有用的日内支撑位和阻力位区域。 一个紧凑的仪表盘会显示当前区间值、配置的交易时段、突破状态、突破确认方法以及确认时间周期。 该指标不会开仓或管理交易。它为自主交易或EA开发提供市场结构和突破信息。

Session-Based Liquidity Breakout Session-Based Liquidity Breakout

基于交易时段的流动性突破与斐波那契回撤策略(常用于外汇或加密货币交易)。 该策略通过规避“订单块”或“公允价值缺口”等复杂的“聪明钱”概念(SMC),转而依托亚洲时段的流动性、时机(开盘时段)和斐波那契水平,从而简化交易流程。