用户问的是一个非常核心的架构问题:这些被回测的钱包(backtest.json 里的 10 个钱包)是不是这个项目自己"发现"的?如果是,完整流程是怎样的? 这是一个端到端的选择链路问题。我需要梳理整个项目的核心流程链: 1. 从 Polymarket 上的全量交易者 2. enumerate.py 怎么发现候选池 3. trust.py 过滤可信数据 4. skill.py 的 5 门漏斗(z-score 等) 5. conviction_scan.py 信念交易扫描 6. validate_timing.py fee-aware 复制复现 7. sync_floors.py 同步信念门槛 8. backtest.json/copybot.paper.json 到 portfolio.py 回测 9. 再到 copybot.py 实时执行 让我快速看一下关键文件的入口,确保流程说的准确。 ## 完整答案。是的,这 10 个钱包是这个项目自己**一步一步筛出来的**。不是手动选的。 --- ## 全流程:从"Polymarket 上所有交易者"→"backtest.json 的 10 个钱包" ``` Polymarket 全部交易者(~百万级) │ ┌────────────────┴────────────────┐ │ │ enumerate.py(步骤 1) 其他来源(gamma/polymarket-ui) 最近 180 天已结算且流动性 > $20,000 的市场 每个市场取 Top 30 名义金额交易者(insider.market_traders) 去重 → 候选池 ~3.5 万个钱包 附加信号:按"出现在多少个不同市场中"倒序(熟练玩家会在多个市场出现) │ ↓ collect.py(步骤 2)— DuckDB 缓存 对候选池中每个钱包拉取 /positions 历史 含每笔 bet:市场 slug、方向、入场价、stake、结算状态 第一次:全量拉(几个小时),之后增量 │ ↓ trust.py(步骤 3)— "可信数据"过滤器 防御做市商钱包把"卖出盈利"伪装成"结算胜利" 只保留:有明确 res_t(结算时间戳) + resolved=True + 跨钱包共识 winner 的条目 (数据 API 的 cached 字段对高频做市商不可靠) │ ↓ skill.py(步骤 4)— 5 门统计漏斗 对每个钱包计算 z-score: z = (实际胜利数 - Σ入场价) / σ ( Σ入场价 = 市场对胜率的估计,z=0 表示无优势 ) 门限: ① n ≥ 15 已结算交易 ② z > 0 ③ Benjamini-Hochberg FDR @ 5% ④ 前半 vs 后半样本外持续性 (z_oos > 0) ⑤ 排除纯做市钱包(trade direction flips 太频繁) → 输出 watch_skilled.json (~100-200 个候选) │ ↓ conviction_scan.py(步骤 5)— 信念画像 "信念 bet" = 该钱包自己下注金额 Top 20% 的那些 bet (小 bet 可能是随机玩,大 bet 才是认真的) p80 截止线只在 TRAIN 数据上计算 过滤: • ≥ 12 个训练期信念 bet • 中位信念 stake ≥ $50(排除 $2-$6 小钱包) • 训练期 + 前瞻期 ROI 双正 → 输出 conviction_wallets.json (~20-40 个) │ ↓ validate_timing.py(步骤 6)— fee-aware 复制复现 用与实时 bot 完全相同的逻辑复现: • 按钱包的 p80 信念 stake 作为门槛 • 每注 = 当前权益 × 4%,上限 ≤ 信号钱包自己下注 • taker fee = shares × rate × price × (1-price) • 价格保护:比信号价高 0.05 以上才跳过 • 价格带 0.00-0.95 输出 watch_sharps.json (~10-20 个 fee 后仍盈利的钱包) │ ↓ sync_floors.py(步骤 7)— 同步信念门槛到配置 watch_sharps.json 里每个钱包的 p80 信念金额 → 写入 copybot.paper.json 的 floor 字段 → 写入 backtest.json(portfolio.py 用同样门槛) │ ↓ portfolio.py(步骤 8)— 滚动回测 $1000 起步,过去 30 天 对每个钱包,按时间顺序"回放"每一笔符合条件的 bet 用完全相同的 sizing / fee / 价格保护逻辑 实时结算每个市场胜负 → 输出 portfolio.json(最终权益) │ ↓ 人工筛选 + git commit → backtest.json(10 个) │ ↓ copybot.py / deploy_bot.sh(运行时) 用 copybot.paper.json / copybot.paper.json 配置 跟踪 Set E(5 个 volume 类 + 5 个 conviction 类) 实时 paper 账本 wwf_state.json 真实资金 ledger_live.json ``` --- ## 一句话总结 > **这个项目从 Polymarket 近期流动市场的 Top 30 交易者中挖出 ~3.5 万个候选 → 用 z-score + FDR + 样本外持续性过滤做市者和运气 → 只保留"自己大金额下注时才跟"的信念 bet → 扣除 fee 复现后仍盈利的才进入 backtest.json → portfolio.py 做滚动回测 → 最终挑 10 个进 copybot 实时跟踪。** 所以答案是:**是的,这 10 个钱包全是这个项目自己用统计方法一步一步筛出来的**,不是作者随便挑的。