方法论
端到端地讲清 ByKaranteli 信号引擎如何运作,包括竞品刻意保持不透明的每一个细节。
1. 准入契约
一个信号要进入评估,必须在币安合约一侧同时满足三个条件:
quoteAsset = USDTcontractType = PERPETUALstatus = TRADING
任何不满足这些条件的交易对都会被降级为 EXCLUDED,永远不会被评估。该规则在代码中固定,操作员无法手动覆盖。这可以防止事后美化统计数据。
2. 确定性 TP/SL 评估
每个信号只有唯一一个结果:TP1、SL、TIMEOUT 或 EXCLUDED。评估逐根 K 线推进:
- TP1 胜出,价格触及止盈目标。
- SL 胜出,价格触及止损位。
- TP 与 SL 在同一根 K 线同时触发,启用打平判定: SL 胜出(保守解读)。多数竞品在这种情况下选择 TP 以抬高胜率。我们的做法相反。
- TIMEOUT,在允许的时间范围内 TP 与 SL 均未触及。
评估运行基于快照:一个 EvalRun 同一时间只能有 一个 RUNNING 实例。重算流程采用全量重跑语义。每日确定性验证会确认相同的输入始终产生相同的输出。
3. 成本模型 · 手续费 + 滑点 + 资金费率
净 bps = 毛收益 − 手续费 − 滑点 − 资金费率。 每一笔平仓信号都会在 signal_evals 中显式存储这一拆解。
- 手续费(fees_bps):按信号类型适用的币安合约 taker/maker 手续费。
- 滑点:我们不使用静态的
slippage_bps,而是采用考虑流动性的动态滑点模型(点差、深度、入场名义价值)。 - 资金费率:开仓与平仓之间的每一次资金费率结算都会累加。
funding_bps_signed以正确的方向符号反映该信号方向上的净流。
大多数竞品网站只报告毛收益。这意味着相对于它们公布的数字,你在真实交易中会亏钱。我们只披露净盈亏。
4. 机器学习校准器集成
每个通过质量门的信号都会流经一个分层的机器学习栈:
- 方向感知校准器(做多/做空),分开建模;做多与做空具有不同的动态特征。
- GBT 影子模型,一个梯度提升树挑战者会对每个信号做预测;不会直接晋级,而是与冠军模型对比。
- 元融合器,各通道(lane)分数与校准器输出组合成一个综合分。
- 按行情状态校准,为趋势 / 震荡 / 高波动分别配置校准器。
- 特征漂移监控(PSI),跟踪实盘特征相对训练数据的漂移程度;一旦越界,校准器就会重新训练。
5. Autopilot v2 · 自调优 + 金丝雀 + 回滚
Autopilot v2 是一个由策略驱动的自调优系统。每两小时的周期会执行基于回放的调优:
- 候选参数配置会在历史候选日志上回放(重新经历过去的行情,以进行快速的反事实分析)。
- 每个候选都会由一个目标函数打分:EV、PF、校准度、方向平衡、回撤代理指标。
- 最佳候选需通过金丝雀预检:变更预算、风险防护、审计日志。
- 金丝雀部署后,KPI 恶化会触发自动回滚。
策略 JSON 通过 Zod 保证类型安全。急停开关只需一条命令:worker_state.autopilot_enabled = false。
6. 风险规避(Risk-Off)护栏
两个自动保护机制 24/7 运行:
- 评估分歧防护:实时评估与终态评估的不一致会被分类 (
path_diff、data_gap、tie_break、late_tick、mark_anomaly)。阈值越界 → 自动施加严格 EV + topN 上限; 比率恢复正常后自动恢复。 - 吞吐防护:当选择 / 候选吞吐低于策略区间时,会触发一个饥饿救援补丁; 当 Risk-Off 状态生效时该补丁被阻止(风险纪律优先)。
7. 数据来源 · 不使用付费 API
所有数据都来自免费来源:
- 币安合约 REST(交易所信息、行情、技术指标)
- 币安合约 WebSocket(depth10、标记价格、聚合成交)。24/7 数据流容器
- 我们自己的数据库(signal_evals、signals、质量指标、强平地图快照)
诸如 LunarCrush、CoinGlass、Glassnode 和 Kaiko 之类的按月订阅服务,我们刻意不予采用。
8. 审计 + 确定性验证
每一个重要事件都会被记录:
- 每一次信号写入都会得到一个指纹:
code_git_sha、policy_hash、calibrator_artifact_id、quality_snapshot_at。 - Autopilot 会记录每一次策略应用的前后状态与原因。
- 每日运维报告(
ops_reports):KPI、漏斗、拒绝原因、事件列表。 - 确定性验证:相同输入 → 相同结果/净盈亏。出现分歧即视为一次事件。