在真实交易中使用 Edgekit
把一个真实策略跑进库里的实战指南
1 先认清它的定位
一句话:Edgekit 不帮你找优势,只帮你安全地用掉、并在它失效时叫停。
- 优势(胜率
p、盈亏比RR)是你带进来的外生输入,库不负责发现。 - 它的价值偏防守:防止你把好优势押过头爆仓,防止你抱着已经死掉的策略硬扛。它更多是保住钱,而不是生出钱。
- 打个比方:优势是发动机,Edgekit 是变速箱和刹车。发动机是真的,变速箱才有意义。
还有一条铁规矩:一个策略一本账。 同一套入场逻辑、同一种止损方式的交易记成一组;三套打法就是三本账、三个独立的优势,绝不能混在一起算。
2 上线前的功课:先建一本诚实的交易日志
Edgekit 的输出质量,上限由你的输入质量决定(承重假设 第 3 条)。所以上线前唯一重要的事,是把每一笔交易按净口径记清楚:
| 要记的 | 说明 |
|---|---|
| 盈利/亏损笔数 | 按策略分组,wins / losses |
| 盈亏比 | 平均盈利 / 平均亏损 |
| 净口径 | 胜率、盈亏比、每笔盈亏,一律扣掉滑点和手续费之后的数字 |
用毛数字(没扣成本)进来,后面所有结论都会系统性偏乐观——这是最常见、也最致命的自欺。没有这本日志,下面全是空中楼阁。
置信下界只能补偿”样本太少”,补偿不了回测过拟合、幸存者偏差、市场环境变化。库把”我以为的优势”当真,你得自己保证这个”以为”是诚实的。
3 第一次上线:标定参数、签发 policy
- 问 solver 两件事:把样本喂进去,它回答这个优势值不值得做(
edge_gate)、单笔最多冒多大险(risk_fraction)。edge_gate=False就别上,继续记纸面信号攒样本。 - 离线标定不可省的两个参数:
x(什么时候加注)和h(亏到多深算失效)没有默认值,必须用模拟工具(x_sweep、calibrate_h)按你的基线参数离线算出来,再用dd_check校核回撤线的误触发率。 - 人工复核,冻结成 policy:把 solver 结果 + 标定参数 + 溯源信息打包成一份
Policy,人看过、签发、落盘。一旦冻结,运行期不再改。
这一步是”离线”和”人工”的——core 在实盘运行中绝不触发模拟,所有模拟产物只能经 policy 进入。
4 日常运行:每天就两个动作
4.1 开仓前——用 solver 的风险比例反推仓位
风险的唯一含义是:止损被打掉时,账户亏的钱,以本金的百分比表示。仓位是被止损距离反推出来的,不是拍手数:
假设本金 10 万,risk_fraction = 2% → 这笔最多允许亏 2000。
如果你的止损距离是入场价的 5%,仓位 = 2000 ÷ 5% = 4 万。
记住三件事:
- 仓位由止损距离决定,不是你想下几手就几手。
- 杠杆/期货只是换口径:
leverage、contract_multiplier改的是保证金和张数,不放大止损时的亏损敞口。 - 账户级约束:所有未平仓位的风险加起来不超过
portfolio_cap(默认 6%);容易跳空的标的用gap_multiplier预留缓冲。
4.2 平仓后——用 monitor 检测优势是否还活着
把这笔的标准化盈亏喂给 monitor_step,它跑两道独立防线,返回一个状态和一个风险乘子:
| 状态 | 含义 | 你该做的 |
|---|---|---|
OK |
优势还在 | 照常 |
DEGRADED |
证据开始累积 | 风险减半(risk_multiplier=0.5,乘进下一笔仓位) |
INVALID |
回撤碰线 或 统计报警 | 停手(risk_multiplier=0.0,仓位归零) |
INSUFFICIENT_DATA |
样本还不够判 | 不可判定,既不宣告正常也不宣告失效 |
两道防线任一触发即停、互不否决:回撤碰硬线(默认 30%)第一笔就生效、不看样本量;CUSUM 统计报警则随证据累积。宁可多停,不可漏停——停错了损失的是机会,可以重来;漏停亏光了,游戏直接结束。
5 收到停止信号怎么办
这是 Edgekit 最值钱的地方:它把”我到底还有没有优势”变成一个可证伪的命题。但要用对,记住两点。
第一,别把”亏钱”直接当反证。 真优势也会亏、能连亏很久,那是方差不是失效。反证的触发点不是”账户亏了”,而是 monitor 发出 INVALID——亏损深到了统计上不该出现的程度。在那之前的回撤是正常波动。
第二,停止信号指向三个嫌疑人,需要人工分辨:
- 优势从来不存在——你之前测错了或运气好;
- 优势曾经真实、现在死了——市场结构变了、被别人套利掉了。这种情况你之前赚的是真的,停下来是正确结局;
- 优势可能真的有,但你输入测歪了——
p/RR没扣净成本,或样本是挑出来的好时段。错的是测量,不是结论。
PAUSE 之后没有自动恢复。想重启,必须人工看过归因诊断,用新的基线参数(新的 p0/RR0/n0、重新标定的 h、归零的统计量)签发新版 policy,并留下版本记录——也就是回到”第一次上线”那一步,闭环。
这正是相对”凭感觉交易”的优越性:不用它,亏钱之后你永远说不清是运气差还是方法错,会在”再坚持一下”和”换个方法”之间反复横跳;用它,每一次失败都变成一个干净的结论,而且亏损上限事先就知道。
6 随样本增长,定期重标定
样本越攒越多,置信下界会向点估计靠拢,risk_fraction 自然往上爬——前 50 笔可能只给 0.5%,300 笔后给到 2% 封顶。所以定期把新样本重新喂给 solver,保守程度是样本量的函数,不是一成不变。
7 四条纪律红线(库管不到,你得自己守)
这些是禁止清单里库刻意不做、必须靠你的部分:
- 不许按最近的胜负序列调仓位。 连赢就加注、连亏就缩手,是赌徒谬误。仓位只由当前 policy 的
risk_fraction和止损距离决定。 - 不许中途给策略加”聪明的小规则”。 任何未经数学审计的临场发挥都是逻辑蔓延。
- 不许用毛口径输入。 净口径是承重假设,破了全盘乐观。
- 不许无视停止信号。 monitor 说停就停。“它会回来的”是漏停的开始。
你的全部自由裁量权只在一处——找优势、定止损;之后的执行参数,交给数字。
8 必须自己守住的四个前提
库的结论建立在四个承重假设上,前提塌了结论跟着塌:
| 前提 | 你该做的 |
|---|---|
| 止损能成交 | 跳空、闪崩时实际亏损会超 risk_fraction,杠杆放大。用 gap_multiplier 留缓冲、portfolio_cap 限总敞口,别在流动性差的标的上裸奔。 |
| 输入是净口径 | 进系统前扣干净滑点手续费。 |
| 置信下界只防抽样误差 | 过拟合、幸存者偏差、环境变化它防不了——这部分靠你诚实。 |
| 默认每笔独立 | 趋势类策略盈亏成串,独立假设会低估风险,标定时改用分块重抽样的数据生成方式。 |
9 它不替你做什么
- ❌ 不是自动交易系统——它给数字,不替你扣扳机。
- ❌ 不发现策略、不做回测、不做机器学习。
- ❌ 不在运行中自动调
p/RR(那是在线学习,禁止)。
有真优势的人,最后还是亏,往往亏在两步上:仓位下重了、失效后硬扛。Edgekit 把这两步从”凭感觉”变成”照数字”——优势是你的,纪律交给它。而它现在能不能帮你赚到钱,前提是上面这本诚实的交易日志,和这四条你自己守住的纪律。