Tickmill VIP账户EA适配要点:佣金结构下的策略成本核算与参数调优
Tickmill VIP账户EA适配要点:佣金结构下的策略成本核算与参数调优
很多人挑账户的时候只盯点差,觉得点差越低越划算。这个判断在普通账户上勉强成立,放到Tickmill VIP这种返佣型账户上就完全跑偏了——VIP的点差确实压得很低,但每手要额外收一笔佣金,而佣金是按手数固定扣的,跟你做多做空、盈亏多少毫无关系。换句话说,点差是浮动的成本,佣金是刚性的成本,两者的性质根本不同。我见过一个做黄金剥头皮的EA,在普通账户上跑得挺稳,换到VIP账户后连续三个月净值曲线一路往下,客户以为是策略失效,其实只是每手多出来的那几美元佣金把薄利吃干净了。

先把成本结构拆开看
Tickmill VIP的收费逻辑是「低点差 + 固定佣金」。以主流货币对为例,历史公开信息显示其点差通常比标准账户低一档,但每标准手往返要收一笔佣金,具体数额随账户币种和品种略有差异,欧元账户和美元账户的换算方式也不一样。这里有个容易被忽略的点:佣金是按「往返手数」计的,也就是开仓加平仓算一个完整回合,而不是单边。有些朋友算成本时只按开仓手数乘佣金,结果回测里成本低估了将近一半。
更麻烦的是黄金和指数CFD。这类品种在Tickmill的合约规模跟外汇不一样,1手黄金是100盎司,佣金按手数走,但点差波动比外汇剧烈得多。如果你的EA在黄金上做高频进出,佣金占比会迅速攀升。我在测试时就吃过这个亏,默认参数下回测盈利因子只有0.8,把佣金参数补进去、调整了最小持仓时间之后,盈利因子才回到1.5附近。
把佣金翻译成EA能读懂的参数
MT4/MT5的回测器默认不读经纪商的真实佣金,你得手动喂给它。最直接的做法是在策略逻辑里加一个成本常量,或者用自定义函数在每次信号触发时扣减。下面这段是我常用的写法,放在OnTick里判断信号之前:
- 定义 double commissionPerLot = 7.0; // 每标准手往返佣金,按账户币种填
- 在计算预期盈利时,用 (TP - Entry) * ContractSize - commissionPerLot 得到净利
- 如果净利小于等于零,直接跳过这次开仓信号
- 回测时把该常量设成跟Tickmill VIP实际一致的值,不要用默认的0
注意,佣金数值要按你的账户类型和品种分别设置。外汇、黄金、指数的佣金标准不一样,写死一个全局常量会在多品种EA上出问题。我的做法是用一个结构体数组,按Symbol分组存储佣金和点差参考值,初始化时读取。
回测里的成本陷阱比你想的深
MT5的策略测试器有个「延迟」选项,很多人直接选「随机延迟」就完事。但佣金是确定性的扣减,延迟是概率性的滑点,两者混在一起会掩盖佣金的影响。我建议先关掉延迟,把佣金参数填准,跑一遍纯成本测试,看清楚每笔交易的净利分布,再打开延迟看滑点叠加后的效果。
历史数据显示,高频策略在佣金占比超过单笔预期盈利15%的时候,长期正期望就很难维持。这不是理论推导,是我拿三年Tick数据反复跑出来的经验值。你可以用这个阈值反推:如果EA平均每笔目标盈利是20个点,那佣金换算成点值后不应该超过3个点,否则就得考虑降低交易频率或者换品种。
品种命名和合约参数别搞混
Tickmill的品种命名跟XM、Exness有差异。XM常用「GOLD」或「XAUUSD」加后缀区分账户类型,Exness在美分账户上会有「m」后缀,而Tickmill的VIP账户品种名相对干净,但不同服务器之间后缀可能不同。EA里如果用Symbol()硬编码,换服务器就会失效。稳妥的做法是用SymbolInfoString配合品种前缀匹配,或者用Market Watch里实际存在的名称做动态查找。
合约规模也要注意。Tickmill的指数CFD合约乘数跟外汇差很多,1手不一定等于10万基础货币。如果你的EA在计算手数时用固定公式,指数品种上会严重超仓。我一般会在初始化时读取SYMBOL_TRADE_CONTRACT_SIZE,用它做手数归一化,而不是写死100000。
部署时的一个实操顺序
先确认账户类型和佣金标准,把参数写进EA的输入变量;然后在MT5里用「自定义」佣金模式跑一遍历史回测,重点看盈利因子和最大回撤;接着挂到Tickmill的模拟VIP账户跑两周,对比实盘佣金扣减跟回测是否一致;最后再上真实账户,初始手数减半。这个顺序看起来笨,但能帮你避开大部分成本核算的坑。另外,如果你通过汇友之家开户,部分账户类型可以拿到额外返佣,相当于变相降低佣金成本,对高频策略的边际改善比较明显。
核心建议就一句:先把佣金当作策略的硬约束去反推交易频率和手数,再谈点差优化,顺序反了,再好的EA也会被成本磨死。
免责声明:本文仅代表作者观点,不构成任何投资建议。市场有风险,交易需谨慎。
