用了三百多款 EA 之后,我决定自己写一个

一、我对 EA 的理解
很多人对 EA 的期待是自动赚钱的工具:挂上去,睡觉,醒来账户多一笔钱。
我玩了这些年,得出的结论完全相反:EA 的作用是把纪律固定下来,并不是预测行情。​
人做交易,最容易犯的错在行为上,判断方向反而是次要的:看对了拿不住、看错了不止损、亏了加仓赌一把、赚了还想多赚。这些错人每天都犯,EA 不犯。EA 只会一丝不苟执行你写进去的规则,包括你写错的那些。
所以 EA 的价值是把你绑在规则上,但不会替你找到那个能赚钱的规则。
这话听着扫兴,却决定了我后面所有判断:如果一个 EA 的赚钱能力来自代码写得多巧,它大概活不长;如果来自一套能扛住极端行情的资金管理,它才有机会活得久。
二、市面上的 EA,只有两类
不管名字多花哨,剥开外壳只有两种。
image.png
差别本质是:你是在赌“会不会回撤”,还是在赌“会不会走单边”。​
马丁的曲线太漂亮,一周几十单笔笔盈利;一单一结看着专业,因为有止损。两类都能在某个阶段赚钱。问题从来不是能不能赚,是能撑多久。

三、两类 EA 的死法,其实是数学问题
一单一结死于成本。​
盈亏比 1:2、胜率 40%,一百次交易:赢 40 次赚 80R,亏 60 次亏 60R,净赚 20R,看着健康。
把点差和滑点加回去。黄金一个标准点 0.01,正常点差 20~40 个标准点,来回一次就是成本。那 20R 会掉到 5R 左右。胜率再差 5 个点,直接从正期望变负期望。
它的生死线离成本太近。​ 回测里漂亮的曲线,往往建立在点差被理想化的前提上。
马丁网格死于几何。​
我这套参数算过一笔账。0.01 手起步,1.3 倍加仓,最多 6 次,间距 1500 个标准点(黄金即 15 美元):
  • 首单加 6 次共 7 单,覆盖价格区间约 90 美元
  • 受最小手数步长限制,实际手数序列 0.01 → 0.01 → 0.02 → 0.02 → 0.03 → 0.04 → 0.05,合计 0.18 手
  • 走满 6 层时,加权平均持仓价劣势约 60 美元
  • 此时账面浮亏约 1,095 美元
而每次离场目标利润是 10 美元。
赚一次 10 块,要能承受 1,095 块浮亏。想用 110 次盈利填平一次满仓亏损。​
这不是 bug,是马丁的定义。它胜率能到 90%,是因为把亏损藏进了浮亏里;行情回来浮亏就消失,行情不回来它没有 Plan B。
所以马丁真正的风险不是“会不会爆”,而是“爆之前你赚够了没有”。​ 一天 10 美元,一年 250 个交易日就是 2,500 美元;一次满仓亏 1,095 美元,四个多月白干。那年遇到三次单边,结果自己算。

四、“稳定”被用坏了
我做程序员,对这词有职业敏感。系统稳定指异常输入下不崩溃。
放到 EA 上,稳定该有三个含义:
  • 亏损有界:最坏亏多少,事先算得出
  • 回撤可预期:最大能扛多少,什么时候该停
  • 长期正期望:扣掉成本后还是正的
但市面上卖的,稳定通常指第四条:回测曲线好看。​
这四条完全不是一回事。五年曲线可以靠挑品种、挑时段、调参数调到很漂亮,它在历史上确实稳定,因为已经知道了历史的答案。
大部分 EA 的稳定,来自它还没遇到能杀死它的那段行情。

五、我确实用过很多款
这几年测过几百款 EA,免费付费、别人推荐、跑分榜的都试过。流程后来固定成五步:
  • 至少三年 tick 级数据,不用 M1 冒充
  • 换三个品种跑
  • 样本外验证:前三年调参,后两年验证
  • 算真实点差、佣金、滑点
  • 小账户实盘跑一到三个月
能活过第五步的非常少。问题就那么几类:
一是把马丁伪装成一单一结。​ 表面每单有止盈止损,实际止损藏得很深,或干脆“浮亏到某个数额才平”。看参数表看不出来,要看它有没有“加仓”这个动作。
二是参数锁死在一个品种一个时期。​ 在 2023 年的黄金上完美,因为参数就照着那段行情调的。
三是回测环境太干净。​ 不算隔夜利息、滑点、新闻时段的点差扩大。回测 30% 年化,实盘只剩个位数。
四是逻辑不可解释。​ 这是最难受的一点。你不知道它为什么在这开单,连续亏损时就没法判断是“正常回撤”还是“策略失效”,只能靠感觉。靠感觉的结果通常是:在最不该停的时候把它停了。
活过第五步的那几款我也没留住,原因很简单:风险敞口和我的资金不匹配。​ 能扛 50% 回撤的策略,放在只能扛 15% 的账户上,再优秀也是错的。

六、所以只能自己做
作为程序员,我很清楚三件事:
第一,黑盒不可调试。​ 任何系统出问题,第一步都是看日志、定位到环节。只有 .ex5 的 EA,它不开单你只能猜:信号没到?点差超了?挂单被拒了?
第二,参数必须可解释。​ 我改一个参数,必须知道它影响什么、影响多深。别人给的参数表只有名字和默认值,没有“为什么是这个值”,调参就是瞎猜。
第三,风险敞口是自己的事。​ 卖的人不知道你账户多大、能扛多少、打算跑多久,他只能给“平均表现”。而交易恰恰是平均数最没用的领域。
想通这三点,我做了个决定:不再找了,自己写。​
但自己写不等于闭门造车。我把这几年见过、验证过有效的机制一个个拆出来,理解它为什么有效、什么时候失效,再用自己的方式重新实现:
  • 形态识别留着,但不能只有一个,得有一整套,按行情类型切换
  • 加仓间距不能是死的,得跟着波动率走
  • 离场不能只有止盈,得分层:先锁利润,再保本,最后才是止损
  • 参数必须换券商、换品种之后还生效

    这些拼在一起、按我对风险的理解重新排列之后,就变成了一个我能解释、能调试、出问题能找到原因的东西。
    这就是金凤凰。它不是一个“更好的 EA”,它是一个我能负责的 EA。

    七、为什么现在才开口
    有件事得先说清楚:这篇文章发出来的时候,金凤凰在我手上已经迭代过三个大版本了。
    现在这版是 3.0。
    1.0 和 2.0 基本都花在研发上。不是不想讲,是真没时间。白天写业务代码,晚上回来对着 K 线和日志改参数,改完想赶紧跑,跑出问题又想赶紧修,一天下来能坐下来写点字的力气都没有。
    到 3.0 才敢开口,两个原因。
    一是结构终于稳定了。​ 前两版模块位置经常挪,今天加的形态明天可能就被拆掉,那时候写出来的东西过两周自己就推翻,写它没意义。
    二是 3.0 已经上实盘了。​
    但“上实盘”这三个字我不想说得太满。实盘不是终点,是开始验证。​
    一个模块回测成立,实盘可能要跑几个月才知道行不行:滑点会不会吃掉利润、点差扩大时会不会漏单、连续亏损几轮后资金曲线会不会塌。这些都得用时间换,一个一个模块去验。
    所以我打算边跑边写。写的不只是“我设计了什么”,也包括“这东西实测下来到底怎么样”。
    验证通过的,我把数字摆出来;验证不通过的,我也会说——哪怕那意味着推翻前面写过的整整一篇。
    3.0 不一定就是终点。真跑到某个节点发现骨架得改,4.0 也会来。这套东西我打算长期做,不着急这一次把话说满。

    八、接下来
    从下一篇开始,我直接讲金凤凰EA策略本身,大家敬请期待。

如果有帮助,就支持一下我呗
举报

评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册