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