MT5EA / 策略 二创编译通过 · EX5 38KB 7 3

线性回归通道趋势交易 EA(二创)

qiangpeng0202·1 小时前发布

带固定止损、移动止损和可视化轨道的线性回归通道趋势跟踪系统

原作《线性回归通道趋势交易 EA》qiangpeng0202二创本作

相对上一版改了:增加固定止损和移动止盈止损 要在mt5上面显示轨道

线性回归通道趋势交易 EA(二创)

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

LinearRegressionChannelEA_Enhanced.mq5预览 35 / 428 行
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 社区作品 #87《线性回归通道趋势交易 EA》(作者 qiangpeng0202)二次创作

// 改动:1. 新增固定止损功能  2. 新增移动止损功能  3. 在图表上实时显示回归通道轨道线


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

#include <Trade\Trade.mqh>

// ========== 可调参数 ==========

input int    RegressionPeriod = 100;        // 回归通道计算周期(K 线数量)

input double StdDevMultiplier = 2.0;        // 标准差倍数(上下轨宽度)

input double SlopeThreshold   = 0.3;        // 斜率阈值(绝对值,判断趋势)

input double Lots             = 0.1;        // 固定交易手数

input int    MagicNumber      = 20261029;   // EA 魔术号

input int    Slippage         = 30;         // 滑点(点)


// ---------- 止损设置 ----------

input int    FixedStopLoss    = 500;        // 固定止损点数(0=不启用,基于开仓价)

input int    BreakevenPoints  = 300;        // 盈利多少点后移动到保本(0=不启用)

input int    TrailingStop     = 300;        // 移动止损距离(点,0=不启用)

input int    TrailingStep     = 50;         // 移动止损步长(点,止损移动的最小间隔)


// ---------- 可视化设置 ----------

input bool   ShowChannel      = true;       // 是否在图表显示通道线

input color  UpperBandColor   = clrRed;     // 上轨颜色

input color  MiddleLineColor  = clrYellow;  // 中线(回归线)颜色

input color  LowerBandColor   = clrLime;    // 下轨颜色

input int    LineWidth        = 2;          // 线条宽度


input string OrderComment     = "LR通道EA"; // 订单注释


// ========== 全局变量 ==========

CTrade trade;

// 回归通道数据

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

开通 VIP 查看完整源码

作品说明

相对原作改动:

  1. 新增固定止损:开仓时根据参数设置初始止损(可按固定点数或通道宽度百分比)
  2. 新增移动止损:价格朝有利方向移动时,止损按设定距离跟随,不回退
  3. 图表可视化:在 MT5 图表上实时绘制线性回归通道的三条轨道线(上轨、中线、下轨)

使用说明

  1. 安装:将代码保存为 .mq5 文件,放入 MT5 的 Experts 目录,编译后拖到图表上。
  1. 止损参数调整:
  • FixedStopLoss:开仓时的初始止损点数,例如 500 点;设为 0 则不设固定止损
  • BreakevenPoints:盈利达到此点数后自动将止损移到开仓价(保本)
  • TrailingStop:移动止损距离,止损始终保持在距当前价此点数的位置
  • TrailingStep:止损移动的最小步长,避免频繁修改订单
  1. 轨道显示:
  • ShowChannel 设为 true 时,图表上会实时显示三条线(上轨红色、中线黄色、下轨绿色)
  • 线条颜色和宽度可通过参数自定义
  • EA 卸载时自动清理图表对象
  1. 止损优先级:移动保本 → 移动止损,保本触发后不再被移动止损覆盖。
  1. 平仓逻辑:触及对面轨道(多单到上轨、空单到下轨)直接平仓,不等止损。
  1. 日志监控:所有开仓、平仓、止损调整操作都会打印到「专家」日志,方便回测和实盘监控。
  1. 回测建议:先在策略测试器里用历史数据测试不同参数组合,找到适合当前市场的止损设置。

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

这是什么

这是一个基于线性回归通道的 MT5 自动交易 EA。它用最小二乘法画出价格的回归线和上下轨,在上涨趋势里等价格砸到下轨就做多,下跌趋势里价格冲到上轨就做空,利润目标是触及对面轨道。带固定止损、保本和移动止损三层保护,还能在图表上实时显示通道的三条线。

逻辑原理

通道计算:EA 取最近 100 根(可调)K 线的收盘价,用最小二乘法拟合出一条回归直线(中线),然后计算这些价格与中线的标准差,中线上下各加减 2 倍(可调)标准差,就得到上轨和下轨。

趋势判断:回归线的斜率代表趋势方向。斜率大于 0.3 算上涨趋势,小于 -0.3 算下跌趋势,在这个区间内不交易。

进场信号:

  • 上涨趋势(斜率 > 0.3)且价格触及或跌破下轨 → 做多
  • 下跌趋势(斜率 < -0.3)且价格触及或突破上轨 → 做空
  • 同一方向只持有一单,不会重复开仓

出场逻辑:

  • 多单价格涨到上轨立即平仓
  • 空单价格跌到下轨立即平仓
  • 或者触发止损(固定止损、保本止损、移动止损)

止损管理:开仓时按 FixedStopLoss 参数设置初始止损(例如 500 点);盈利达到 BreakevenPoints(默认 300 点)后自动把止损移到开仓价锁定保本;之后如果价格继续有利,止损按 TrailingStop 距离(默认 300 点)跟随,每次至少移动 TrailingStep(50 点)。

参数说明

  • RegressionPeriod(100):计算回归通道用多少根 K 线。周期越长通道越平滑但滞后越大,周期越短反应越快但噪音越多。M15 以下建议 50-80,H1 以上可以用 100-200。
  • StdDevMultiplier(2.0):上下轨距离中线几倍标准差。2.0 是经典设置,调小通道变窄信号更多但假信号也多,调大通道变宽信号少但可靠性高。
  • SlopeThreshold(0.3):斜率绝对值要超过这个数才算有趋势。数值越大对趋势要求越严格,适合波动大的品种;越小越容易触发,适合平稳品种。
  • Lots(0.1):每单固定手数。代码里没有资金管理,需要根据账户余额和风险承受力手动设置。
  • MagicNumber(20261029):EA 的身份标识,同一图表跑多个 EA 时用来区分订单。
  • Slippage(30):允许的最大滑点(点),快市时可能会超过这个值导致开仓失败。
  • FixedStopLoss(500):开仓时设置的初始止损点数。设为 0 则不启用固定止损(不推荐)。
  • BreakevenPoints(300):盈利达到这个点数后把止损移到开仓价。设为 0 则不启用保本功能。
  • TrailingStop(300):移动止损距离,止损始终保持在距当前价这个点数的位置。设为 0 则不启用移动止损。
  • TrailingStep(50):止损移动的最小步长,避免频繁修改订单被券商拒绝。
  • ShowChannel(true):是否在图表上画出通道的三条线,方便观察信号。
  • UpperBandColor / MiddleLineColor / LowerBandColor:上轨、中线、下轨的颜色,默认红 / 黄 / 绿。
  • LineWidth(2):通道线条粗细。
  • OrderComment("LR通道EA"):订单备注,出现在交易历史里。

怎么用

  1. 把代码保存为 .mq5 文件,放到 MT5 数据文件夹的 MQL5\Experts 目录
  2. 在 MetaEditor 里编译(F7),没有错误就能用
  3. 拖到图表上,弹出参数面板,调整止损和通道参数
  4. 勾选「允许自动交易」,EA 开始运行
  5. 如果 ShowChannel 开着,图表上会出现三条线:红色上轨、黄色中线、绿色下轨
  6. EA 会在「专家」日志里打印所有开仓、平仓、止损调整的记录
  7. 回测时在策略测试器里加载 EA,选好品种和时间段,测试不同参数组合

适用场景

适合:

  • 有明确趋势的品种,比如 XAUUSD 在趋势行情里、主要货币对在非农数据后
  • H1 及以上周期,有足够的 K 线数量和波动空间
  • 回归周期设置合理(50-200 根)的情况下,能过滤掉短期噪音
  • 波动足够大的品种,能让价格在轨道间来回运动

不适合:

  • 窄幅震荡市,价格在通道里频繁来回,斜率达不到阈值或者刚开仓就反向止损
  • M1、M5 等小周期,回归通道滞后太严重,信号已经走完一波
  • 跳空频繁的品种(比如股指开盘),可能直接跳过轨道或止损位
  • 点差很大或者滑点严重的小品种,吃掉大部分利润空间

风险提示

  1. 回归通道有滞后:需要 100 根 K 线才能算出通道,趋势转折初期通道方向还是旧的,可能做反。
  2. 震荡市频繁亏损:斜率在阈值边缘波动时,可能刚开仓趋势就消失,或者价格在轨道间反复横跳触发止损。
  3. 固定手数无资金管理:代码里没有根据账户权益或风险百分比计算手数,需要手动设置,连续亏损时仓位占比会越来越大。
  4. 触及对面轨道就平仓:多单涨到上轨、空单跌到下轨立即出场,如果趋势很强可能过早离场错过主升 / 主跌段。
  5. 同方向只持一单:不会加仓,趋势中只能吃到第一波从下轨到上轨的利润。
  6. 标准差倍数固定:不同品种波动率差异很大,2.0 倍可能对黄金太窄对欧元太宽,需要分品种测试。
  7. 没有时间过滤:不分亚盘欧盘美盘,重大新闻时段也会交易,容易被大波动扫止损。

常见问题

这个 EA 会重绘吗?
不会。回归通道是用历史 K 线算出来的,已经走完的 K 线不会变,通道位置也不会变。但新 K 线出现时整个通道会重新计算,所以实时运行时通道会动态调整。
固定止损、保本和移动止损会冲突吗?
不会。逻辑是:开仓时设固定止损 → 盈利达到保本点数后止损移到开仓价 → 之后启用移动止损跟随价格。保本触发后移动止损不会把止损往回拉。
可以用在 XAUUSD 以外的品种吗?
可以。代码没有限制品种,但不同品种的点值、波动率、点差差异很大,需要重新测试 RegressionPeriod、StdDevMultiplier、SlopeThreshold 和止损参数。
参数默认值适合什么周期?
默认的 100 周期 + 2 倍标准差 + 0.3 斜率适合 H1 及以上周期。M15 以下建议把周期改到 50-80,斜率阈值降到 0.1-0.2,止损也要按比例缩小。
为什么回测时 EA 不开仓?
检查三点:K 线数量是否超过 RegressionPeriod(至少 100 根)、斜率是否达到阈值(打开日志看斜率数值)、价格是否真的触及了轨道(开启 ShowChannel 看通道位置)。

Linear Regression Channel Trend EA for MT5

An automated MT5 EA that trades based on linear regression channel breakouts. It buys when price touches the lower band in an uptrend and sells when touching the upper band in a downtrend. Features fixed stop-loss, breakeven protection, trailing stop, and real-time channel visualization on charts.

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

评论

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

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