MT5EA / 策略 二创编译通过 · EX5 35KB 4 1

黄金亚欧盘突破策略EA(二创)

191727760·1 小时前发布

亚盘区间突破,欧盘开仓,三档移动止损保护利润

原作《黄金亚欧盘突破策略EA》taiyu1983二创本作

相对上一版改了:增加移动止损功能.。当浮盈到达止盈的20%时,将止损移动到止盈的5%;当浮盈到达止盈的50%时,将止损移动到止盈的25%;当浮盈到达止盈的80%时,将止损移动到止盈的60%。

黄金亚欧盘突破策略EA(二创)

效果示意图 · AI 根据源码绘制,仅示意画了哪些元素,细节以实际运行为准

Asian_Breakout_Gold_EA_TrailingStop.mq5预览 35 / 370 行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 基于 XAUOF 社区作品 #29《黄金亚欧盘突破策略EA》(作者 taiyu1983)二次创作

// 本版改动:增加移动止损功能,浮盈达止盈的 20%/50%/80% 时,止损移至止盈的 5%/25%/60%


#property copyright "XAUOF指标工坊"
#property version   "2.00"

#include <Trade\Trade.mqh>

//+------------------------------------------------------------------+

//| 可调参数                                                          |

//+------------------------------------------------------------------+

input int      InpMagicNumber = 888888;           // 魔术号(用于区分不同策略)

input double   InpLotSize = 0.1;                  // 固定手数

input int      InpAsianStartHour = 8;             // 亚盘开始时间(小时,北京时间)

input int      InpAsianEndHour = 14;              // 亚盘结束时间(小时,北京时间)

input int      InpTimezoneOffset = 8;             // 时区偏移(北京时间=8,UTC=0)

input double   InpRiskRewardRatio = 2.0;          // 止盈止损比例(倍数,默认2倍)

input bool     InpUseCloseBreakout = true;        // 使用收盘价确认突破(true=更保守,false=触及即突破)

input int      InpSlippage = 30;                  // 允许滑点(点)

input string   InpTradeComment = "亚欧盘突破";    // 订单备注


//+------------------------------------------------------------------+

//| 全局变量                                                          |

//+------------------------------------------------------------------+

CTrade trade;                    // 交易对象

datetime currentDate = 0;        // 当前日期(用于每日重置区间)

double asianHigh = 0;            // 亚盘最高价

double asianLow = 0;             // 亚盘最低价

bool rangeValid = false;         // 区间是否有效

bool tradedToday = false;        // 今天是否已交易(防止重复开仓)

int trailingStage = 0;           // 移动止损阶段(0=未启动,1=第一档,2=第二档,3=第三档)


//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

已显示前 35 行,共 370 行。完整源码仅对 xauusd.team VIP 开放查看与复制。

开通 VIP 查看完整源码

作品说明

相对原作改动:在 OnTick() 里增加了移动止损逻辑,当持仓浮盈达到止盈目标的 20%、50%、80% 时,分别将止损移动到止盈的 5%、25%、60%,保护利润。用全局变量记录每个持仓的移动止损阶段,避免重复修改。

使用说明

  1. 安装:将文件保存为 .mq5 格式,放入 MT5 的 Experts 目录,编译后挂载到黄金图表。
  2. 参数调整:
  • InpAsianStartHour / InpAsianEndHour:亚盘时段,默认北京时间 8:00-14:00。
  • InpRiskRewardRatio:止盈止损比例,默认 2 倍(止盈=止损×2)。
  • InpUseCloseBreakout:true 用收盘价确认突破(更保守),false 触及即突破。
  1. 移动止损机制:
  • 浮盈达止盈目标的 20% 时,止损自动移至止盈的 5%(锁定小利润)。
  • 浮盈达 50% 时,止损移至止盈的 25%(保护更多利润)。
  • 浮盈达 80% 时,止损移至止盈的 60%(接近止盈,避免回撤)。
  1. 查看日志:移动止损触发时会在「专家」日志里打印当前浮盈百分比和新止损位置。
  2. 注意事项:
  • 每天只交易一次突破信号,新一天自动重置。
  • 移动止损只修改止损位,不修改止盈位。
  • 确保交易品种允许修改持仓止损(有些券商限制)。

AI 解读根据源码逐行分析写成,供参考,以实际运行为准

这是什么

这是一个基于亚盘区间突破的MT5自动交易EA,专为黄金等波动品种设计。逻辑是亚盘(默认北京时间8:00-14:00)记录价格区间的最高最低点,欧盘时段一旦价格突破区间上沿做多、突破下沿做空,每天只交易一次。相比原作,这个版本增加了三档移动止损机制:当持仓浮盈达到止盈目标的20%、50%、80%时,自动把止损移动到止盈的5%、25%、60%,锁定利润、避免盈利回吐。

逻辑原理

区间记录:亚盘时段每根K线更新最高价和最低价,形成当天的突破区间。

突破信号:欧盘开始后,如果参数InpUseCloseBreakout=true,用收盘价确认突破(前一根K线收盘在区间内、当前K线收盘在区间外);如果false,只要价格触及区间边界就算突破,更激进但假信号也多。

开仓:突破上沿做多,止损设在亚盘低点,止盈=(区间高度×止盈止损比例);突破下沿做空,止损设在亚盘高点,止盈算法相同。固定手数开仓,每天只交易一次。

移动止损:持仓后实时监控浮盈进度(当前盈利距离÷止盈距离)。达到20%时,止损移至止盈的5%(锁定小利润);达到50%时移至25%(保护更多利润);达到80%时移至60%(接近止盈,避免大幅回撤)。用全局变量trailingStage记录当前阶段(0-3),避免重复修改订单。

参数说明

  • InpMagicNumber(888888):魔术号,用来区分不同EA的订单,不要和其他EA冲突。
  • InpLotSize(0.1):固定开仓手数。根据账户资金和风险承受能力调整,资金小就0.01起步。
  • InpAsianStartHour(8)/ InpAsianEndHour(14):亚盘时段的起止小时,默认北京时间8:00-14:00。如果你的券商服务器时间不是UTC+8,需配合InpTimezoneOffset调整。
  • InpTimezoneOffset(8):时区偏移,北京时间填8,UTC填0。EA会把服务器时间转换到本地时区判断是否在亚盘。
  • InpRiskRewardRatio(2.0):止盈止损比例,默认2倍(止盈距离=止损距离×2)。提高这个值可以追求更大盈亏比,但止盈更远、到达概率更低。
  • InpUseCloseBreakout(true):true表示用收盘价确认突破,更保守、假信号少;false表示价格触及就算突破,更激进、可能提前入场也可能被假突破打止损。
  • InpSlippage(30):允许的滑点范围(点),下单时价格波动在这个范围内算成交。
  • InpTradeComment("亚欧盘突破"):订单备注,方便在历史订单里识别。

怎么用

  1. 把代码保存为.mq5文件,放到MT5的MQL5/Experts文件夹,在MetaEditor里编译。
  2. 打开黄金(XAUUSD)图表,从导航器拖拽EA到图上,或右键图表选"交易"→"Expert Advisor"。
  3. 在弹出的参数窗口调整亚盘时段、手数、止盈止损比例。如果你的券商服务器时间不是北京时间,记得改InpTimezoneOffset。
  4. 勾选"允许自动交易"(工具栏上的绿色按钮),EA开始运行。
  5. 图表左上角会显示当前状态:亚盘区间、今日是否已交易、持仓浮盈进度、移动止损阶段。
  6. EA每天只交易一次,新一天0点会自动重置区间和交易标志。持仓平仓后不会再次开仓,直到第二天。

适用场景

  • 品种:主要为黄金(XAUUSD)设计,也可用于原油、外汇主要货币对等日内波动明显、有亚欧盘时段特征的品种。波动太小的品种(如EURUSD近期)区间可能太窄,止损容易被扫。
  • 周期:建议挂M5或M15图表,太小的周期(M1)噪音多、假突破频繁,太大的周期(H1)可能错过入场时机。
  • 行情:适合趋势日或突破行情,亚盘窄幅震荡、欧盘单边拉升的日子表现好。不适合全天宽幅震荡、假突破频繁的行情。
  • 时段:欧盘开盘(北京时间下午3-4点)是主要交易窗口,如果这个时段没有明确方向,当天可能不会开仓。

风险提示

  1. 假突破风险:价格短暂突破区间后回调,可能触发止损。参数InpUseCloseBreakout=true可以减少假信号,但也会错过部分真突破。
  2. 区间太窄:如果亚盘波动极小(区间不到10点),突破后的止损空间很小,容易被正常波动扫掉。代码里没有过滤最小区间,可以自己加判断。
  3. 移动止损被打:三档移动止损会逐步收紧,保护利润的同时也可能在正常回调时提前止损出场。如果行情走得很顺,可能止盈不到就被移动止损带走;这是权衡,不是缺陷。
  4. 滑点和点差:黄金的点差和滑点在重要数据时段(非农、美联储决议)会放大,实际成交价可能偏离预期。参数里设了30点滑点容忍,极端行情可能还不够。
  5. 每日一次限制:EA每天只交易一次,如果第一次突破是假信号打了止损,当天不会再开仓。这是为了控制风险,但也意味着会错过当天的第二次机会。
  6. 券商限制:部分券商不允许EA运行时修改持仓止损,或者限制最小止损距离。移动止损修改失败时,EA会在日志里打印错误代码,注意查看。
  7. 历史表现不代表未来:任何策略都有失效周期,黄金的亚欧盘特征可能因市场结构变化而减弱。建议先在模拟盘跑一段时间,观察胜率和盈亏比。

常见问题

这个EA会重绘或者未来函数吗
不会。亚盘区间是实时记录的历史最高最低价,突破信号基于已收盘或当前K线的价格,不涉及未来数据。移动止损也是根据当前持仓状态实时计算,不会改变历史逻辑。
可以用在XAUUSD以外的品种吗
可以,但效果取决于品种是否有明显的亚欧盘时段特征。原油、主要外汇货币对(GBPUSD、USDJPY)可以尝试,但参数可能需要调整。股指期货和加密货币的时段特征不同,不建议直接套用。
MT4能用吗
不能,这是MQL5代码,只能在MT5平台运行。MT4和MT5的语法、交易函数、持仓模型都不同,代码无法直接移植。如果只有MT4,需要找对应的MT4版本或者自己用MQL4重写。
参数默认值适合什么周期和账户
默认参数(0.1手、亚盘8-14点、止盈止损比2倍)是按标准账户、M5或M15周期、黄金品种校准的。如果是美分账户或资金较小,手数改成0.01;如果你的券商服务器时间不是北京时间,必须调整时区偏移,否则时段判断会出错。
移动止损的三档比例可以改吗
代码里是硬编码的(20%触发→5%止损、50%→25%、80%→60%),想改的话需要修改`OnTick()`函数里移动止损部分的数值。比如想更激进锁利润,可以改成10%触发、或者把止损移得更靠近开仓价。改完记得重新编译。

Asian-European Session Breakout EA with Trailing Stop for MT5

An MT5 EA that trades breakouts from the Asian session range during European hours. Features three-stage trailing stop (5%, 25%, 60% of TP) triggered at 20%, 50%, and 80% profit milestones. Supports fixed lot sizing and customizable session times.

A short source preview is shown above for visitors; full source, copy and compiled EX5 files are available to VIP members.

评论

后可以留言,比如反馈用着怎么样、想加什么功能。

还没有人评论,来抢个沙发。