一般18.2

关于EA多货币对交易配置,这篇可能最接地气

XM 推荐平台

覆盖品种全,新手友好,支持多种入金方式

CySEC(塞浦路斯) / ASIC(澳洲) / IFSC(伯利兹) · 最低入金 $5
快乐的吃瓜人
快乐的吃瓜人 楼主
前天 21:09 183 4 1分钟 Lv.4 实盘汇友 Lv.4 主题2 帖数3 积分1539 汇币1256
1楼
刚把三台VPS上的EA日志拉下来对比完,屏幕上是四个货币对的回撤曲线叠在一起,欧美和镑美的净值曲线几乎贴着走,黄金那根却像醉汉走路一样晃得人心慌。这图我盯了半小时,越看越觉得多货币对配置这事儿,真不是把几个EA塞进一个账户那么简单。
先说结论:多货币对EA配置,目前主流就三条路——单账户多品种多账户按品种隔离单账户+品种分组轮询。我三个都跑过实盘,各有各的坑。
单账户多品种是最多人踩的坑。逻辑上听着省事,一个EA挂欧美、镑美、澳美,共享一份保证金和风控。但实际跑起来,点差成本和滑点在交叉盘上会吃掉你大部分利润。我去年跑过一阵子,欧美和镑美同时开单,账户净值看着还行,一查交易报告,光隔夜利息和点差就占了总亏损的40%。而且MT4的订单执行是串行的,遇到数据行情,三个品种同时触发信号,服务器会按队列处理,后两个订单的成交价往往比信号价差出3-5个点,这在剥头皮策略里就是灾难。
后来我换成多账户隔离,每个账户只跑一个品种,VPS上开三个MT4实例。好处是互不干扰,黄金爆仓不会拖累欧美账户,坏处是保证金利用率太低。三个账户各放2000美金,总占用6000,但实际同时持仓的峰值可能只有总资金的一半不到,资金效率差了将近一倍。而且管理起来麻烦,每次调参数要改三个地方,补保证金也要分别操作,我这种懒人坚持了两个月就放弃了。
现在跑的是第三种方案,单账户+品种分组轮询。具体做法是用一个主EA做调度器,把交易品种按相关性和交易时段分组,比如欧美和镑美相关性高,归为一组,黄金单独一组,澳美和纽美归一组。调度器每隔5秒扫描一次各组的状态,同一组内只允许一个品种持仓,不同组之间可以并行。这样既避免了同组品种互相打架,又保留了单账户的资金效率。我现在的配置是:

  • 组A:欧美+镑美,伦敦时段开放,最大持仓1单
  • 组B:黄金,全天开放,最大持仓2单,但每单间隔至少30分钟
  • 组C:澳美+纽美,悉尼时段开放,最大持仓1单

这个方案的坑在于调度器的稳定性。我一开始用MT5自带的定时器,结果发现EA的OnTimer()函数在VPS负载高的时候会延迟触发,有时候延迟十几秒,信号早就过了。后来改成用Market Watch的Tick事件驱动,每个品种来新报价就检查一次,延迟控制在200毫秒以内。另外要注意调度器本身不能有持仓逻辑,它只负责开关其他EA的交易权限,不然很容易出现权限竞争,两个EA同时抢同一笔订单。
还有个容易忽略的点,就是多货币对下的保证金计算方式。MT4的保证金是按单品种独立计算的,但账户净值是共享的。我遇到过黄金连续止损三次,账户净值掉了8%,结果欧美那边明明信号很好,但因为净值低于风控线,调度器直接禁止开新仓。后来我在调度器里加了个动态保证金比例检查,当账户净值回撤超过5%时,自动关闭非主力品种的交易权限,只保留黄金这种波动大的品种继续跑,等净值恢复再重新开放。
最后说下VPS配置,多货币对EA对VPS的要求比单品种高不少。我用的2核2G的机器,跑三个MT5实例加一个调度器,内存长期占用在85%左右,偶尔会卡顿。建议至少4核4G,硬盘用SSD,日志写入速度差三倍。还有网络延迟,我测过同一台VPS上,欧美和黄金的Tick到达时间差平均在80毫秒左右,这个在非农行情里会被放大到500毫秒所以调度器的超时时间要设成1000毫秒,别用默认的500
现在这套配置跑了三个月,欧美和镑美的总盈利比单账户多品种时提高了22%,黄金单独贡献了35%的利润,但回撤也最大,最大回撤18%,其他组基本控制在8%以内。想问问有没有汇友试过用Python写调度器来桥接MT5的?我最近在琢磨把调度逻辑放到Python里,用ZeroMQ和MT5通信,感觉比EA内部处理更灵活,但担心延迟问题,有实战过的朋友聊聊?

刚看到有人问黄金那根曲线为什么晃,其实是我把止损设太松了,后来换成按ATR动态止损,回撤曲线立刻温顺多了。
0 回复 复制 众裁0
#1
pearl51
pearl51 #5· 3 小时前
3 小时前
5楼
调度器选组内品种这个点,我用的是信号强度评分,结合ATR和当前点差加权,比单纯按时间戳稳。另外你日志里黄金那根曲线晃,建议检查下跳空时的挂单处理逻辑,我吃过这亏,用市价单代替stop单能少追3-5个点。
回复 复制 众裁0
3 小时前 #5
CloudSurferl
CloudSurferl #4· 8 小时前
8 小时前
4楼
组内优先级这个点,调度器按信号生成时间戳排序其实不够,我建议加个波动率加权,黄金那组尤其明显,跳空时按时间排序容易追单。你要不要试试把轮询间隔调到3秒,数据行情时能缓解串行延迟,但注意CPU占用会上去。
回复 复制 众裁0
8 小时前 #4
暮色拾荒
暮色拾荒 #3· 8 小时前
8 小时前
3楼
组内优先级的处理我也踩过坑,我是按ATR波动率排序,波动大的先执行,但实测还是会有延迟。我自己也遇到过信号撞车,后来干脆把欧美和镑美的入场时间错开半小时,滑点明显少了,不过黄金那组还是得单独盯,波动太野了。
回复 复制 众裁0
8 小时前 #3
david62
david62 #2· 昨天 16:16
昨天 16:16
2楼
看到你提的品种分组轮询,组内只允许一个持仓,那如果欧美和镑美同时出信号,调度器是按什么优先级选的?我单账户挂两个EA时也遇到过这问题,信号撞一起后成交价差好多。
回复 复制 众裁0
昨天 16:16 #2
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。汇友之家合作的各家经纪商均为持有正规外汇牌照的经纪商,我们不参与经纪商的任何经营活动。经纪商在经营过程中可能出现破产清算、资不抵债、跑路或躲避责任等情况,这些问题汇友之家无法控制,亦不承诺任何经纪商资金的绝对安全。请知悉!
← 上一帖 新手求助:怎么看EA的回测报告靠不靠谱 下一帖 → 美联储议息会议解读入门:点阵图与声明措辞怎么看这几个细节很多人忽略