MT5指标编译通过 · EX5 37KB 自动发布 7 0

全能风控大师EA

大一88·6 小时前发布

多维度账户风控系统,自动执行平仓、停开、追踪止损,并配有图表交互面板。

全能风控大师EA

MT5 真机运行截图 · 服务器把编译好的 EX5 挂到黄金 H1 图表上截的,你装上去看到的就是这个样子

RiskMasterPro.mq5预览 35 / 350 行
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
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\OrderInfo.mqh>

//--- 1. 通知与邮件
input group "=== 1. 通知与邮件 ==="
input bool   EnableMail         = false;    // 发送邮件开关
input double MailNetHigh        = 0;        // 净值≥此值发邮件(0不触发)
input double MailNetLow         = 0;        // 净值≤此值发邮件(0不触发)
input int    MailFreqMin        = 60;       // 邮件发送频率(分钟)

//--- 2. 账户净值风控
input group "=== 2. 账户净值风控 ==="
input bool   EnableNetRisk      = true;     // 净值风控开关
input double NetHighStopTrade   = 0;        // 净值≥此值停止开仓(0不触发)
input double NetLowCloseAll     = 0;        // 净值≤此值清仓并停止开仓(0不触发)

//--- 3. 盈亏风控
input group "=== 3. 盈亏风控 ==="
input bool   EnablePLRisk       = true;     // 盈亏风控开关
input double MaxFloatProfit     = 0;       // 总浮盈≥此值平仓(0不触发)
input double MaxFloatLoss       = 0;       // 总浮亏≥此值平仓(0不触发)
input double DailyLossLimit     = 0;       // 今日亏损≥此值平仓停开(0不触发)

//--- 4. 单数风控
input group "=== 4. 单数风控 ==="
input bool   EnableCountRisk    = true;     // 单数风控开关
input int    MaxBuyCount        = 0;        // Buy单数上限(0不限制)
input int    MaxSellCount       = 0;        // Sell单数上限(0不限制)

//--- 5. 止损止盈追踪
input group "=== 5. 止损止盈追踪 ==="
input bool   EnableSLTP         = true;     // 止损追踪开关

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

开通 VIP 查看完整源码
MT5 运行截图 · 完整视图带价格轴和时间轴的整张图表(约 150 根 H1 K 线),上面的封面是它最近 80 根 K 线的放大视图
全能风控大师EA 在 MT5 上的真实截图

作品说明

这是一个综合性风控EA,需求涵盖了净值监控、盈亏限制、单数控制、止损追踪、新闻规避等50余项规则。由于MQL5限制,EA无法直接关闭其他图表窗口(会引发安全机制),因此“停止EA”将实现为“强制平掉所有持仓并拒绝新仓留存”,从而达到风控保护目的。同时,我会在图表上绘制一个交互面板,提供手动一键平仓和恢复交易功能。

使用说明

  1. 安装方法:将代码保存为 RiskMasterPro.mq5,放入 MQL5/Experts 文件夹,在 MetaEditor 中编译,然后拖拽到 MT5 图表上。
  2. 参数配置:在 EA 属性的“输入参数”窗口中,根据需要开启对应的风控开关(如净值风控、盈亏风控),并设置阈值。0 表示不触发该规则。
  3. 图表面板:EA 运行后会在图表左上角生成一个黑底面板,实时显示当前净值、浮盈和交易状态。
  4. 一键平仓:点击面板上的“一键平仓”红色按钮,会立即平掉账户内所有持仓。
  5. 恢复交易:当风控触发“停止开仓”后,面板状态会变红并自动平掉后续新仓。待风险解除后,点击“恢复交易”按钮即可恢复正常监控状态。
  6. 新闻风控:需在参数中输入精确到分钟的时间字符串(如 2024.01.15 20:30),EA 会在该时间前后指定的秒数内强制平仓并停止开仓。
  7. 邮件通知:使用前需在 MT5 终端的“工具-选项-邮件”中配置 SMTP 服务器,开启开关后即可在净值触及阈值时收到推送。
  8. 多图表运行:此 EA 会监控整个账户的持仓情况。如果需要独立控制某个图表的持仓,请通过修改代码中的 PositionGetString(POSITION_SYMBOL) 过滤条件实现。

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

这是什么

全能风控大师是一个 MT5 账户级风险管理系统。它监控账户净值、浮盈浮亏、持仓单数和时间事件,当触发任何一项风控规则时,自动执行平仓、停止开仓或止损追踪。同时在图表左上角绘制实时面板,显示账户状态和浮盈,支持手动一键平仓和恢复交易。

逻辑原理

风控判断逻辑

EA 每个 tick 检查六大类风控规则,按优先级执行:

  1. 邮件通知:若净值≥MailNetHigh 或≤MailNetLow,发送邮件,频率由 MailFreqMin 控制(默认60分钟)。
  1. 账户净值风控:
  • 若净值≥NetHighStopTrade,停止开仓(g_canTrade=false)但不平仓
  • 若净值≤NetLowCloseAll,立即平掉所有持仓并停止开仓
  1. 盈亏风控:
  • 总浮盈≥MaxFloatProfit,平掉所有持仓
  • 总浮亏≥MaxFloatLoss,平掉所有持仓并停止开仓
  • 今日亏损(当日开始余额 - 当前余额)≥DailyLossLimit,平掉所有持仓并停止开仓
  1. 单数风控:当前 Buy 单数>MaxBuyCount 或 Sell 单数>MaxSellCount 时,从新往旧平掉多余仓位。
  1. 止损追踪与保本:
  • BreakEvenPoints:浮盈点数≥此值,自动将止损移至开仓价(保本)
  • TrailingStopPoints:当价格更有利时,止损跟踪移动(Buy 时止损=当前 Bid-追踪点数,Sell 时止损=当前 Ask+追踪点数)
  1. 新闻风控:输入新闻发布时间后,在该时间前 NewsBeforeSec 秒(默认60秒)到发布后 NewsAfterSec 秒(默认60秒)内,停止开仓并平掉新开仓位。

停止交易状态

当 g_canTrade=false 时,CheckRules() 会在每个 tick 强制平掉所有持仓,形成"停止开仓且持续清仓"的状态,直到点击面板"恢复交易"按钮。

图表面板

面板显示:状态(允许交易/已停止开仓,绿/红)、当前净值、总浮盈(正数绿,负数红)。两个按钮:"一键平仓"(立即平所有仓)和"恢复交易"(解除停止状态)。

参数说明

1. 通知与邮件

  • EnableMail(false):是否发送邮件通知
  • MailNetHigh(0):净值≥此值发邮件,0 表示不触发
  • MailNetLow(0):净值≤此值发邮件,0 表示不触发
  • MailFreqMin(60):两次邮件间隔(分钟),防止轰炸

2. 账户净值风控

  • EnableNetRisk(true):开关
  • NetHighStopTrade(0):净值≥此值停止开仓(0 不触发),继续持有现仓
  • NetLowCloseAll(0):净值≤此值平掉所有仓并停止开仓(0 不触发)

3. 盈亏风控

  • EnablePLRisk(true):开关
  • MaxFloatProfit(0):总浮盈≥此值平仓(0 不触发)
  • MaxFloatLoss(0):总浮亏≥此值平仓并停止(0 不触发)
  • DailyLossLimit(0):当日亏损≥此值平仓并停止(0 不触发)

4. 单数风控

  • EnableCountRisk(true):开关
  • MaxBuyCount(0):同时持有的 Buy 单数上限(0 不限制)
  • MaxSellCount(0):同时持有的 Sell 单数上限(0 不限制)

5. 止损追踪

  • EnableSLTP(true):开关
  • BreakEvenPoints(0):浮盈≥此点数移止损至保本(0 不触发)
  • TrailingStopPoints(0):追踪止损距离(点数),0 不触发

6. 新闻与时间风控

  • EnableNewsRisk(false):开关
  • NewsTime1/2/3(""):新闻时间,格式 "YYYY.MM.DD HH:MI",例如 "2024.01.15 20:30"
  • NewsBeforeSec(60):新闻前多少秒停止开仓
  • NewsAfterSec(60):新闻后多少秒仍停止开仓

怎么用

  1. 安装:代码保存为 RiskMasterPro.mq5,放入 MT5 的 Experts 文件夹,编译后拖拽到图表。
  1. 参数配置:右键图表→EA 属性→输入参数,根据需求打开各项开关并设置阈值。0 表示该规则不触发。
  1. 运行:EA 运行后会在图表左上角显示黑色面板,实时显示状态、净值、浮盈。
  1. 手动操作:点击"一键平仓"立即平掉账户所有仓位;点击"恢复交易"解除停止状态(仅当风控触发停止后需要)。
  1. 新闻风控:需提前在参数中输入具体发布时间,EA 会在前后指定秒数内自动停止。
  1. 邮件通知:先在 MT5 工具→选项→邮件中配置 SMTP 服务器,然后启用 EnableMail 并设置阈值。

适用场景

适合:任何品种、任何周期。这是账户级风控,不依赖具体品种或周期。特别适合多头寸交易、网格交易、日内剥头皮等持仓较多或风险较高的策略。

不适合:无。如果不需要某项功能,只需将开关关闭或参数置 0 即可。

风险提示

  1. 滑点与成交延迟:一键平仓和风控止损触发时,实际平仓价可能与触发价存在滑点,特别是高波动期间。
  1. 重绘风险:面板按钮点击状态在重新加载时可能重置,建议定期核实账户状态。
  1. 新闻时间精度:新闻时间需精确到分钟。如果时间输入错误或服务器时间与本地不同步,可能无法准确规避。
  1. 邮件配置失败:未正确配置 SMTP 时邮件发送会失败,但不影响其他风控功能。
  1. 单数风控的平仓顺序:超出限制时从旧往新平仓(PositionsTotal 倒序),可能不符合预期风险管理策略。
  1. 追踪止损的浮点精度:浮点运算可能导致止损价格精度丢失,特别是在低点差品种上。
  1. 多图表风险:此 EA 监控的是整个账户,若多个图表挂载此 EA,会相互干扰。建议仅在一个图表挂载。

常见问题

这个 EA 会重绘吗?
面板是静态对象,不会随价格变化重绘。但图表事件响应和按钮状态在 EA 重新初始化时可能重置,建议定期确认账户状态正确。
可以只用风控而不用其他功能吗?
可以。将不需要的功能开关关闭(如 EnableNetRisk=false)或参数置 0(如 MailNetHigh=0),该功能就不会触发。
新闻时间怎么输入?
格式必须为 "YYYY.MM.DD HH:MI",例如 "2024.01.15 20:30"。时间需精确到分钟,不支持秒。
能用在非黄金品种上吗?
可以。EA 使用账户级数据(净值、余额、浮盈),对品种无限制。风控规则对所有品种平等适用。
平仓时为什么没有按我期望的顺序?
单数风控超限时从旧往新平仓;一键平仓和其他风控都是遍历所有持仓逐个平掉。成交顺序还受成交速度影响,无法保证绝对顺序。

Risk Master Pro EA for MT5 – Multi-dimensional Account Protection with One-Click Close-All

A comprehensive risk management system that monitors account equity, profit/loss limits, position counts, and tracks trailing stops automatically. Features an interactive chart panel displaying real-time account status and one-click position closure for immediate risk control.

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

评论

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

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