黄金变色通道非多即空EA
跟随变色通道箭头自动反手,固定0.01手、无止损止盈,始终保持非多即空持仓。
MT5 真机运行截图 · 服务器把编译好的 EX5 挂到黄金 H1 图表上截的,你装上去看到的就是这个样子
挂到 MT5 上运行时终端报了错
编译通过了,但真挂到图表上时终端记录了下面的错误。指标一报错就会被终端停掉,图上可能只剩半截线甚至一片空白—— 这就是「装上去和预期不一样」的原因。把报错连同代码丢给 AI 工作台,让它改好重新发布,截图会自动更新。
cannot load custom indicator 'XAUUSD_ColorChannel_Trend' (XAUUSD.n) [4802] 加载指标失败,请确认指标已编译:XAUUSD_ColorChannel_Trend
#property copyright "XAUOF 指标工坊"
#property version "1.00"
#property strict
#include <Trade\Trade.mqh>
//-------------------- 可调参数 --------------------
input string InpIndicatorName = "XAUUSD_ColorChannel_Trend"; // 配套指标文件名(不含.mq5),须已编译放在Indicators目录
input int InpFastPeriod = 14; // 通道中轨(快均线)周期,须与指标一致,推荐14
input ENUM_MA_METHOD InpFastMethod = MODE_EMA; // 快均线算法,须与指标一致
input int InpSlowPeriod = 60; // 慢均线周期,须与指标一致,推荐60
input ENUM_MA_METHOD InpSlowMethod = MODE_SMA; // 慢均线算法,须与指标一致
input int InpAtrPeriod = 14; // ATR周期,须与指标一致,推荐14
input double InpAtrMult = 1.2; // ATR倍数(通道半宽),须与指标一致,推荐1.2
input int InpArrowGap = 30; // 箭头偏移(点),仅用于与指标参数对齐,不影响交易
input double InpLots = 0.01; // 固定下单手数,本EA要求0.01手
input ulong InpMagic = 20261007; // 魔术号,用于识别本EA的持仓
input bool InpAlwaysHold = true; // 非多即空开关:true=空仓时按通道颜色自动进场,保持始终持仓
CTrade trade; // 交易对象
int hInd = INVALID_HANDLE; // 配套指标的句柄
datetime lastBarTime = 0; // 上一根已处理K线的时间,用于"只在收盘时行动"
int OnInit()
{
// 加载配套指标(参数顺序必须与指标input声明顺序一致)
hInd = iCustom(_Symbol, PERIOD_CURRENT, InpIndicatorName,
InpFastPeriod, InpFastMethod, InpSlowPeriod, InpSlowMethod,
InpAtrPeriod, InpAtrMult, InpArrowGap);
if(hInd == INVALID_HANDLE)
{
Print("加载指标失败,请确认指标已编译:", InpIndicatorName);
return INIT_FAILED;
}
trade.SetExpertMagicNumber(InpMagic);
已显示前 35 行,共 137 行。完整源码仅对 xauusd.team VIP 开放查看与复制。
开通 VIP 查看完整源码作品说明
思路:EA 通过 iCustom 加载上一节的变色通道指标,直接读取其缓冲区——5号=买箭头、6号=卖箭头、2号=通道红绿颜色索引。每根K线收盘确认一次:出现买箭头就平空开多,出现卖箭头就平多开空;无信号且空仓时按通道当前颜色进场,保证"非多即空"始终持仓。固定0.01手、市价单、不设止损止盈,用 CTrade 执行。
使用说明
- 安装:先确保
XAUUSD_ColorChannel_Trend.mq5已编译并放在 MQL5/Indicators 目录;再把本EA放入 MQL5/Experts 编译,拖到 XAUUSD 图表(建议与截图一致的 M1/M5),勾选"允许算法交易"。 - 参数调节:
InpFastPeriod/InpSlowPeriod/InpAtrPeriod/InpAtrMult必须与图表上指标的参数完全一致,否则EA读到的信号和图上箭头对不上;InpLots固定0.01;InpAlwaysHold=true保证空仓时也按通道红绿自动进场,实现"非多即空",改 false 则只在箭头出现时才持仓。 - 信号逻辑:每根K线收盘判定一次——红上箭头=平空开多,绿下箭头=平多开空;无箭头的K线维持原持仓不动;持仓方向始终与通道颜色一致。
- 注意事项:①本EA不设止损止盈、不限制持仓时间,波动剧烈时浮亏可能较大,仅适合小仓位或模拟盘验证;②反手=先平后开,若平仓失败本根K线会放弃开仓,避免裸奔;③请确保账户为净持仓模式(对冲模式下本EA只认自己魔术号的净方向);④指标参数修改后需同时修改EA输入参数或重新拖挂EA。
AI 解读根据源码逐行分析写成,供参考,以实际运行为准
这是什么
这是一个运行在MT5上的自动化交易程序(EA),专门配合「XAUUSD_ColorChannel_Trend」变色通道指标使用。它的核心逻辑很简单:跟着通道的箭头信号做反手,并且始终保持持仓状态——要么做多,要么做空,绝不空仓。
逻辑原理
EA通过iCustom函数加载配套的变色通道指标,每根K线收盘时读取一次数据。它主要看三个东西:5号缓冲区的买箭头、6号缓冲区的卖箭头、2号缓冲区的通道颜色索引。
当刚收盘的K线上出现买箭头时,如果当前持有空单,就先平空再开多;出现卖箭头时,先平多再开空。这就是所谓的「反手」。反手动作是先平仓后开仓,如果平仓失败,这根K线就会放弃开仓,防止账户处于无保护状态。
如果没有出现箭头,但参数里开启了「非多即空」开关,EA会去读通道颜色:颜色索引小于等于0.5视为红色(代表多头方向),大于0.5视为绿色(代表空头方向)。只要当前持仓方向和通道颜色不一致,它就会立刻反手。
仓位方面,固定使用0.01手市价单进场,代码里没有写任何止损和止盈逻辑,也不限制持仓时间。所有订单都带有专属魔术号,只管理自己的单子。
参数说明
- InpIndicatorName("XAUUSD_ColorChannel_Trend"):配套指标的文件名,不含.mq5后缀。必须确保该指标已编译并放在Indicators目录。
- InpFastPeriod(14):通道中轨快均线的周期,必须与图表上指标的参数完全一致。
- InpFastMethod(MODE_EMA):快均线的计算算法,须与指标一致。
- InpSlowPeriod(60):慢均线周期,须与指标一致。
- InpSlowMethod(MODE_SMA):慢均线计算算法,须与指标一致。
- InpAtrPeriod(14):ATR周期,用于计算通道宽度,须与指标一致。
- InpAtrMult(1.2):ATR倍数,决定通道半宽,须与指标一致。
- InpArrowGap(30):箭头偏移点数,仅用于和指标参数对齐,不影响实际交易逻辑。
- InpLots(0.01):固定下单手数。代码里有最小和最大手数保护,但默认就是0.01。
- InpMagic(20261007):魔术号,用来识别本EA开的仓位。
- InpAlwaysHold(true):非多即空开关。设为true时空仓也会按通道颜色自动进场;设为false则只在出现箭头时才交易。
怎么用
首先把配套的变色通道指标编译好,放进MT5的MQL5/Indicators目录。然后把本EA放进MQL5/Experts目录并编译。打开XAUUSD图表(建议用M1或M5周期),把EA拖上去,勾选「允许算法交易」。
最关键的一步:EA面板里的均线周期、算法、ATR参数,必须和你图表上挂的那个指标的参数一模一样,否则EA读到的信号和图上画的箭头会对不上。信号不需要你手动盯,K线收盘后EA会自动判定和执行。
适用场景
从设计初衷和默认参数来看,它适合XAUUSD(黄金)的M1或M5小周期,在通道指标能明确区分红绿颜色的单边趋势行情里表现较好。因为始终持仓且没有止损,它不适合震荡剧烈、通道频繁变色的行情。0.01手的固定仓位意味着它更适合小资金测试或模拟盘验证策略逻辑。
风险提示
这个EA最大的风险在于无止损无止盈。黄金波动大,一旦遇到反向单边行情,浮亏会持续扩大,直到下一个反向箭头出现才会反手。其次,它是基于K线收盘确认信号的,盘中价格刺穿通道不会触发交易,存在滞后性。另外,如果修改了图表上指标的参数,必须同步修改EA的参数或者重新拖挂EA,否则信号会错乱。最后,代码是按净持仓模式设计的,如果在对冲模式下运行,它只认自己魔术号的净方向,可能产生预期外的行为。
常见问题
- 这个EA会重绘吗?
- EA只在每根K线收盘后才读取指标缓冲区的数据进行判断,不会在K线未走完时反复改变交易动作。但配套指标本身是否重绘取决于指标的源码。
- 可以用在XAUUSD以外的品种吗?
- 代码里没有限制交易品种,使用的是_Symbol变量。但默认参数是针对黄金小周期设置的,用在其他品种需要自行测试和调整参数。
- MT4能用吗?
- 不能。这是MQL5编写的程序,使用了CTrade类和MT5特有的缓冲区读取方式,只能在MetaTrader 5上运行。
- 为什么一定要把指标参数填得和EA一样?
- 因为EA是通过iCustom函数在后台独立计算指标的。如果两边参数不同,EA算出来的箭头位置和你在图表上看到的箭头位置就不一样,会导致乱下单。
- 可以设置止损止盈吗?
- 当前源码中没有编写止损止盈逻辑,开仓时传入的SL和TP都是0。如果需要,必须自行修改源码添加相关功能。
Color Channel Reversal EA for MT5
This MT5 Expert Advisor follows a custom color channel indicator to trade XAUUSD. It reverses positions on arrow signals and maintains a constant long or short exposure using fixed 0.01 lots without stop loss or take profit.
A short source preview is shown above for visitors; full source, copy and compiled EX5 files are available to VIP members.
评论
还没有人评论,来抢个沙发。