使用手册 | Walkthrough

端到端循环:从参数到决策再到监控

Author

Edgekit Team

Published

June 13, 2026

Note🎯 本页目标

走通 Edgekit 的端到端循环:solver → Policy → position_size → monitor。 每一步的输入、输出和约束都对应 src/edgekit/ 里的真实函数。

1 端到端循环概览

Edgekit 不寻找优势,只决定如何使用已知的优势、以及何时停止。整个使用过程是一个闭环:

  1. solver:用样本证据(胜率、盈亏比、样本量)算出稳健的执行参数。
  2. Policy:把 solver 的输出固化成一份离线生成、人工评审的策略版本。
  3. position_size:在每笔交易前,依据 Policy 和当前权益算出仓位。
  4. monitor:每笔交易后检测优势是否衰减,决定继续、降档还是停止。

下面逐环走一遍。

2 第 1 步:solver —— 计算执行参数

solver 接收样本证据,输出基于 Wilson 置信下界的稳健参数,而不是用点估计。

from edgekit.solver import solver

result = solver(wins=60, losses=40, RR=1.5)
# result 给出交易许可与风险比例(half-Kelly、风险上限 2%)

关键约束:参数永远来自置信下界(p_LBRR_LB),用半 Kelly 抑幅,并套上风险上限。

3 第 2 步:Policy —— 固化策略版本

solver 的结果连同离线 sim 产出的 x-rebase 参数,打包成一份 PolicyPolicy 是离线生成、人工评审后落盘的版本,核心库从不在运行时触发模拟。

from edgekit.policy import Policy, save_policy, load_policy

policy = Policy(...)        # 由 solver 输出 + sim 的 x 组装
save_policy(policy, "policy.json")
policy = load_policy("policy.json")

4 第 3 步:position_size —— 算每笔仓位

每笔交易前,用 Policy 里的风险比例、当前 risk_multiplier 和止损距离算出仓位。

from edgekit.engine import position_size

size = position_size(
    base=100_000,
    risk_fraction=policy.risk_fraction,
    risk_multiplier=1.0,
    stop_distance=0.05,
)
# size.risk_budget 是止损被打掉时的最大亏损(按 base 的百分比)
# size.notional 是名义敞口

风险定义:Risk = 止损被触发时的最大资金损失,不是仓位、不是保证金、不是杠杆。

5 第 4 步:monitor —— 检测优势衰减

每笔交易后,把基线和最新统计喂给 monitor,判断优势是否还在。

from edgekit.monitor import monitor

state = monitor(baseline, snapshot, S_prev)
# 状态:OK / DEGRADED / INVALID / INSUFFICIENT_DATA

停止侧是两条独立的止损线,任一触发即停,互不否决:

  1. 回撤硬熔断:当前回撤深度 ≥ DD_hard,从第 1 笔交易起生效。
  2. 单边 CUSUM:对标准化复合优势量做序贯检验,半阈值降档(risk_multiplier 0.5),满阈值 PAUSE。

PAUSE 后不自动恢复——恢复需要一份新的、经人工评审的 Policy 版本,于是回到第 1 步,闭环。

6 小结

这条 solver → Policy → position_size → monitor 的循环就是 Edgekit 的全部使用方式: 先算稳健参数,固化成策略,逐笔定仓,持续监控,失效即停、重审再启。