# trending-web

加密量化研究与交易工作台。以 Freqtrade（币安 USDT-M 永续，dry-run）为执行核心，
配套若干**确定性数据管线**做信号发现与市场状态判断。部署在腾讯云利雅得服务器。

设计原则：能用代码确定性解决的（拉数据、算指标、事件回测）绝不调 AI；
AI 只用于判断类任务（归纳交易风格、分类新闻）。

## 仓库结构

```
freqtrade/
  docker-compose.yml        # 默认 bot1 + cloudflared；研究 bot 需显式 profile
  config.example.json       # 脱敏配置模板（真实 config*.json 已 gitignore）
  regime_check.py           # 市场状态评分器（cron 每小时，零 AI）
  scripts/                  # 只读审计脚本；ssh 管道送进服务器执行，不部署
    run_black_swan_stress.py   # 8 个历史极端行情窗口的可复现压力测试
    refresh_top_pairs_backtest.py # 白名单候选池刷新 + 回测筛选
    slippage_audit.py          # 止损滑点 + 入场成交率（从日志补回超时删单）
    forward_compare.py         # 两个 bot 的前向对照
    entry_pricing_compare.py   # same/other 下单机会匹配
    same_side_opp_cost.py      # 同向限仓拦截的 hindsight 机会成本
    unfilled_entry_opp_cost.py # 被动限价漏单的 hindsight 机会成本
    liquidity_capacity.py      # 每对名义上限 → 账户规模上限（市场冲击）
    tests/                     # 纯 stdlib 单测：python3 -m unittest discover
  strategies/               # 可插拔 IStrategy 策略
    volatility_breakout/    #   波动率突破策略族（独立 --strategy-path）
      v5_d48.py             #     D48 基准；运行类 VolatilityBreakout
      v5_d48_riskcap.py     #     bot1 生产；VolatilityBreakoutRiskCap
      risk_cap_math.py      #     定仓纯函数（被上面 import，有单测）
      v5_d36.py             #     D36 变体；bot2 已停
    research/long_1h.py     #   1h 低频多头待命变体（未部署）
    HighVolMeanRev.py       #   高波动均值回归（已停用）
    RisingVolTrend.py       #   波动率上升趋势跟踪（已停用）
    SmartMoneySwing.py      #   聪明钱风格归纳（回测未通过，见文档）
bot-observatory/            # 多 Bot 控制台（Bun BFF + React），独立 Compose 部署
research/
  listing_study.py          # 韩所上新事件研究（BWEnews → 币安价格冲击）
skills/
  smart-money-tracker/      # 链上聪明钱发现 + 验证 + 策略生成 skill
docs/
  freqtrade-deployment.md   # 部署与迁移（架构、Cloudflare、多 bot）
  strategy-iterations.md    # 策略迭代记录（速览=当前状态；正文=实验日志）
  live-verification-runbook.md # 小资金实盘执行核验 runbook（金额/中止条件/回填）
  trend-grid-strategy-iterations.md # 趋势网格（独立研究方向）
  market-regime.md          # regime_check 指标与评分说明
  smart-money-tracker.md    # 聪明钱管线：发现→链上验证→归纳→回测
  listing-event-study.md    # 上新事件量化结论
```

## 组件速览

| 组件 | 作用 | 是否用 AI | 状态 |
|---|---|---|---|
| Freqtrade 主 bot | bot1 RiskCap D48 dry-run（5m、12 对、2x 逐仓、只做空） | 否 | 运行中 |
| 研究前向 bot | bot2 D36、bot3 EntryOther；`research` profile，默认不启动 | 否 | 均已停止 |
| regime_check.py | 6 指标合成 risk-on/off 分数 → `regime.json` | 否 | 每小时 cron |
| smart-money-tracker | 找链上聪明钱、验证、归纳策略 | 发现/归纳用 grok | 可用；Mode A 回测证伪 |
| listing_study.py | 验证韩所上新的价格冲击 | 否 | 结论：信号真实但窗口仅 5 分钟 |

细节见 `docs/`。所有密钥（FreqUI 密码、jwt/ws token、CF 隧道 token、交易所 API key）
均不入库，见 `.gitignore` 与 `config.example.json`。

## 唯一可运行的策略

**`VolatilityBreakoutRiskCap`**（`freqtrade/strategies/volatility_breakout/v5_d48_riskcap.py`，
版本 `5.4-d48-riskcap-forward`）是 bot1 生产 dry-run，也是唯一被批准上实盘核验的类。

仓库里另外六个策略类都不可用于部署：`VolatilityBreakout`（D48 基类，定仓未按实际
硬止损封顶，**未过 07-23 风险门槛**）、`VolatilityBreakoutD36`（已停）、
`LongBreakout1H`（待命未部署）、`HighVolMeanRev` / `RisingVolTrend`（已停用）、
`SmartMoneySwing`（回测未通过）。

⚠️ 基类和 RiskCap 信号完全相同、只差定仓，**跑错不会报错，只会让仓位偏大**。
逐条对照见 `docs/live-verification-runbook.md` 开头。

## 当前阶段（2026-07-28）

信号与出场层面已封盘：自 07-13 起连续 10 类实验被双窗口协议否决（过滤器、出场
几何、周期、白名单消融、槽位、执行层），**没有待验证的收益优化方向**。执行层的
方向性问题也已结案（维持 `price_side=same`）。

剩下的唯一开放问题是「这套东西用真钱跑会怎样」，而它有三项 dry-run 结构上测不了：
真实队列位置、交易所端 stop-market 真实滑点、真实 API/挂单稳定性。因此下一步是
**小资金实盘执行核验**，见 `docs/live-verification-runbook.md`。

两条必须记住的边界：

- **薄 edge**：每笔期望约 45 bp（保证金口径），单笔波动约 ±480 bp。确认 edge
  非零需约 450 笔样本；20~50 笔的 PnL 是纯噪音，不得用于判断策略好坏。
- **容量天花板**：12 对白名单在 1% 参与率下把账户锁死在约 306 USDT，约束来自
  POWER/EDGE/VANRY。去掉小币可到约 8,755 USDT，但 edge 退化（已两次否决）。
