比特币与黄金品种EA适配要点:点值跳动幅度与交易时段配置指南
比特币与黄金品种EA适配要点:点值跳动幅度与交易时段配置指南
很多人觉得,把黄金那套EA逻辑直接套到比特币上,改改品种代码就能跑。我最初也这么想。直到有一次,一个跑得好好的黄金网格策略,换到BTCUSD上,当天晚上就爆了仓。复盘时我才发现,问题出在一个最不起眼的参数上——点值(Tick Value)。黄金一跳是0.01,对应1美元;比特币一跳是0.01,对应多少?取决于你的合约规格。这个差异,足以让仓位计算彻底失真。

点值不是数字游戏,它决定了你的仓位公式
黄金的合约参数相对统一。以XM的GOLD为例,1手是100盎司,最小跳动0.01,每跳价值1美元。也就是说,价格从2000.00走到2000.01,你赚1美元。这个逻辑清晰,仓位公式可以写死。
比特币就乱了。Exness的BTCUSD,1手是1个比特币,最小跳动0.01,每跳价值0.01美元。但有些平台1手是0.1个比特币,点值直接差10倍。我在测试时用了一个固定手数,结果在Exness上风险敞口是XM的3倍多。后来我在EA里加了一段自适应代码:
- 读取MarketInfo(Symbol(), MODE_TICKVALUE)获取每跳价值
- 读取MarketInfo(Symbol(), MODE_TICKSIZE)获取最小跳动
- 用AccountBalance() * RiskPercent / (StopLossPoints * TickValue)反推手数
注意,MODE_TICKVALUE返回的是账户货币计价,换平台后必须重新校准。我习惯在EA初始化时打印这两个值到日志,部署新环境时先看一眼。
波动率差异会吃掉你的止损逻辑
黄金日均波动1%算大行情。比特币日均波动3%是常态,极端时能到10%。同样的止损点数,在黄金上是保护,在比特币上就是送人头。
我做过一组回测对比,同一套突破策略,参数完全一致:
- 黄金:止损300点,止盈600点,胜率58%,盈利因子1.42,最大回撤12%
- 比特币:止损300点,止盈600点,胜率41%,盈利因子0.79,最大回撤34%
问题不在策略逻辑,而在止损距离没有适配ATR。后来我把止损改为动态计算:ATR(14) * 1.5,比特币的止损自动放宽到800-1200点,盈利因子回升到1.35。这里有个坑,比特币的ATR在周末和节假日会骤降,因为流动性差,EA如果照常开仓,容易被假突破扫损。我的做法是加一个时间过滤器,周末只平仓不开仓。
交易时间不重叠,EA要分时段运行
黄金和比特币的交易时间差异,比大多数人想象的大。黄金有明确的现货开盘时间,流动性集中在伦敦和纽约重叠时段。比特币是7x24,但流动性分布极不均匀。
历史数据显示,比特币在亚洲凌晨时段的点差会扩大3-5倍,滑点显著增加。我跑过一个统计,同一EA在UTC 0-6点的成交滑点平均是UTC 14-20点的2.7倍。这意味着,如果你的EA在这两个品种上共用一套执行逻辑,比特币的隐性成本会吃掉大部分利润。
我的处理方式是在EA里加一个流动性评分模块,用当前点差与过去20根K线平均点差的比值作为过滤条件。比值大于2.5时,暂停开新仓。这个模块在黄金上几乎不触发,但在比特币上每天能过滤掉3-5次低质量信号。
品种命名与合约规格的适配清单
跨平台部署时,品种名称和合约参数必须逐一核对。XM的黄金叫GOLD,Exness叫XAUUSDm,比特币在XM叫BTCUSD,Exness叫BTCUSDm。后缀m代表mini账户,合约大小不同。
我整理了一份适配检查清单,每次换平台都跑一遍:
- 确认Symbol()返回值与平台一致,必要时用字符串拼接
- 检查MODE_LOTSIZE、MODE_TICKVALUE、MODE_TICKSIZE三个参数
- 检查MODE_STOPLEVEL,比特币的止损最小距离通常比黄金大
- 检查MODE_FREEZELEVEL,避免挂单被冻结
- 在策略测试器中跑一遍2019-2023年的数据,对比盈利因子变化
有个细节,Exness的BTCUSDm在MT5上的MODE_TICKVALUE返回的是0.01,但实际合约大小是0.01个比特币,所以每跳价值是0.0001美元。这个差异在日志里看得很清楚,但如果不打印出来,你根本想不到。
最核心的建议:永远不要用固定手数跨品种跑EA,每一笔仓位都必须由该品种的实时点值和ATR动态反推。
免责声明:本文仅代表作者观点,不构成任何投资建议。市场有风险,交易需谨慎。
