XM股票CFD品种EA适配指南:交易时段合约规模与保证金参数解析
XM股票CFD品种EA适配指南:交易时段合约规模与保证金参数解析
一个挺反直觉的事:不少人在 XM 上用 EA 跑外汇品种顺风顺水,一换到股票 CFD 就频繁出现「订单被拒」或者回测和实盘差一大截。我上个月帮一个朋友排查,他那个 EA 在 EUR/USD 上跑了三个月挺稳,结果挂到美股 CFD 上第一天就报了 130 错误。查了半天,问题出在合约规模参数根本没改。

股票 CFD 和外汇的底层逻辑不一样。外汇是货币对,合约规模固定;股票 CFD 是单只股票的差价合约,合约规模通常是 1 股,但不同品种的每手股数、最小变动价位、交易时段全都不一样。你拿外汇那套参数直接套,EA 不报错才怪。
先搞清楚 XM 股票 CFD 的品种命名和交易时段
XM 的股票 CFD 命名规则一般是「股票代码.交易所后缀」的形式,比如 AAPL.US、TSLA.US 这种。但注意,不同账户类型下可交易的股票 CFD 数量不一样。标准账户和微型账户能做的品种范围有差异,开真实账户之前最好先在模拟账户里把品种列表拉出来看一遍。
交易时段更关键。美股 CFD 跟美股现货同步,但 XM 的服务器时间通常是 GMT+2 或 GMT+3(夏令时会变)。假设你 EA 里写死了「09:30 开始交易」,那是纽约时间,换算到服务器时间可能是 16:30 或 17:30。这个时差没算对,EA 要么在没开盘的时候挂单被拒,要么收盘前没平仓被强平。
我自己的做法是在 EA 里加一段时段判断逻辑,伪代码大概长这样:
- 获取当前服务器时间 ServerTime
- 计算纽约时间 NewYorkTime = ServerTime - ServerGMTOffset + NewYorkGMTOffset
- 如果 NewYorkTime 在 09:30 到 16:00 之间,允许开仓
- 如果 NewYorkTime 在 15:55 之后,禁止新开仓,只允许平仓
注意,别用本地电脑时间。VPS 上的系统时间也要跟服务器时间对齐,否则日志时间戳全是乱的,排查问题的时候能把你逼疯。
合约规模和点值计算,这里最容易翻车
外汇品种的合约规模一般是 100,000 基础货币,股票 CFD 通常是 1 股。但 XM 部分股票 CFD 的合约规模可能是 10 股或者 100 股,具体要看品种规格页面。你如果不确认,可以用一个笨办法:在 MT4/MT5 里手动下一手最小单,看保证金占用和点值变化,反推合约规模。
举个例子,假设某股票 CFD 当前报价 150 美元,合约规模 1 股,杠杆 5 倍,那 1 手保证金大概是 150 / 5 = 30 美元。如果点值是 0.01 美元,价格动 1 美元,盈亏就是 1 美元。这些数字在 EA 里如果按外汇的 100,000 合约去算,出来的手数会小得可怜,或者大得吓人。
我在测试的时候发现,默认参数下回测结果偏差很大。后来把合约规模从 100,000 改成 1,盈利因子从 0.8 提升到了 1.5。这不是策略变好了,是之前的手数计算完全错了。
保证金参数和杠杆,别拿外汇的思维套
XM 股票 CFD 的杠杆和外汇不一样。外汇品种杠杆可以到 1:888 甚至更高(取决于监管和账户类型),但股票 CFD 的杠杆通常低得多,5 倍、10 倍、20 倍都有,不同品种还不一样。你在 EA 里如果用固定手数,问题不大;但如果用风险百分比算手数,就必须把每个品种的保证金要求和杠杆单独配置。
一个实用的做法是建一个参数表,把常用股票 CFD 的合约规模、杠杆、最小手数、点值都列出来,EA 初始化的时候按品种名称去查表。这样换品种的时候不用改代码,改表就行。
顺便说一句,通过汇友之家开户可以拿到额外的返佣,对高频交易的成本控制有点帮助。但返佣是锦上添花,参数配置对了才是根本。
部署时容易忽略的两个细节
第一个是 VPS 选型。股票 CFD 的数据量和外汇不是一个级别,尤其你如果同时跑多个品种,内存占用会明显上升。建议至少 2GB 内存起步,CPU 不用太强,但网络延迟要低。XM 的服务器在纽约和伦敦都有,选 VPS 的时候尽量靠近。
第二个是报错排查。股票 CFD 常见的错误代码包括「市场关闭」「无效手数」「保证金不足」。遇到「市场关闭」先查交易时段,「无效手数」查合约规模和最小手数,「保证金不足」查杠杆和保证金参数。别一上来就怀疑策略有问题,八成是参数没配对。
你在配置 XM 股票 CFD 的 EA 参数时,有没有遇到过明明代码没问题、回测也正常,一上实盘就各种报错的情况?留言说说你的排查过程。
免责声明:本文仅代表作者观点,不构成任何投资建议。市场有风险,交易需谨慎。
