alphax/docs/OPTIMIZATION_TODO.md
2026-06-07 20:58:35 +08:00

172 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AlphaX Optimization Todo
本文件记录 AlphaX 筛选、确认、交易、复盘闭环的中长期优化路线,避免优化点只留在对话里。后续 Agent 接手时,应先看本文件和 `AGENTS.md`,再决定下一步开发。
## 当前原则
- 不盲目增加指标,优先降低回撤、减少无效开仓、提升可解释性。
- 先做状态、日志、闸门,再做复杂模型。
- 高分机会和好买点必须拆开。
- 观察池、挂单池、交易账本不能混在一起。
- 所有能影响策略的因子都必须可复盘、可提权、可降权、可淘汰。
- 因子不等于策略。因子必须先归类为先决条件、触发、确认、入场、风控或归因;只有具备完整入场、退出、风控和复盘口径的交易剧本才能叫策略。
## 已完成
- PostgreSQL 成为唯一运行时数据库SQLite 已废弃。
- 根目录和代码目录已做基础整理。
- `altcoin_db.py` 已拆出多组 DB 查询/命令模块,剩余为兼容门面。
- 推荐状态、展示桶、买点质量闸门已中心化到生命周期相关模块。
- Paper trading 已拆分持仓、挂单、已完成、操作日志 tab。
- Paper trading 已支持模拟挂单、移动止盈、策略交易报告、账本维护、删除/重置数据。
- Paper trading 已加入更严格风控:推荐分、盈亏比、止损杠杆风险、账户回撤暂停、弱入场暂停。
- `Market Regime Engine` 第一版已建立,可识别 `risk_off`、`btc_main_uptrend`、`altcoin_rotation`、`sideways_chop`、`meme_frenzy`、`unknown`。
- `Global Risk Engine` 第一版已接入 paper trading 开仓和挂单成交前critical 禁止新开仓high 只允许高质量机会。
- 确认层已把 `market_regime` 写入 `market_context` / `entry_plan`paper trading 开仓事件也会记录当时市场环境和全局风控结果。
- `FactorScorer` 已加入因子组去相关,限制同类动量/结构/叙事信号重复叠加导致虚高分。
- 确认层已输出 `opportunity_score`、`entry_score`、`risk_score` 三分制,并写入 `score_components`
- 确认层已写入结构化 `decision_log`,用于解释确认/拒绝、分数、风险标记和核心证据。
- 实盘控制台已建立多账号配置、账户读取、订单/历史读取、Binance API 基础执行能力。
- 策略交易到 live trading 的自动同步链路已具备 demo 环境验证能力。
- 链上采集/API 模块已下线,当前策略聚焦 CEX 行情、事件舆情和交易所衍生品数据。
- `FactorScorer` 已建立,确认层核心技术因子、板块、舆情、大户因子已接入复盘权重。
- `factor_score_breakdown` 已进入确认上下文,复盘可追踪因子贡献。
- `box_breakout_pullback_4h` 已作为 4H 箱体突破回踩强结构因子接入确认层,但它只是 `box_retest_4h_v1` 这类策略的核心触发候选,不应单独等同于完整策略。
- 已新增 `docs/MULTI_STRATEGY_ARCHITECTURE.md`,定义多策略并行、策略血缘、因子角色和独立复盘口径。
## P0现在优先做
### 0. 多策略架构第一阶段
目标:从“大而全评分器”过渡到“统一交易宇宙 + 多个独立策略 + 独立交易账本评价”。
待做:
- 建立 `app/core/strategy_contract.py`,定义标准策略输出结构。
- 建立 `app/core/factor_roles.py`,统一因子角色:`prerequisite`、`trigger`、`confirmation`、`entry`、`risk`、`attribution`。
- 建立 `app/core/strategy_registry.py`,集中维护策略代码、中文名、描述、默认模式,避免策略名散落硬编码。
- 建立 `app/db/strategy_signal_queries.py``strategy_signals` 表,保存标准策略信号。
-`recommendation`、`paper_trades`、`paper_orders` 增加 `strategy_code`、`strategy_signal_id`、`strategy_snapshot_json`、`factor_roles_json` 等策略血缘字段。
- 现有综合确认策略先标记为 `main_composite_v1`,它与其他策略平等,避免无策略来源的推荐继续进入账本。
- 先把 `box_retest_4h_v1` 作为第一个独立策略候选拆出来:`box_breakout_pullback_4h` 只能是核心触发因子,仍要经过市场环境、交易宇宙、确认、入场、风控和失效条件。
- 复盘中心增加按 `strategy_code` 聚合的胜率、收益、最大回撤、盈亏比和持仓时长。
- 新数据不得出现空 `strategy_code`;旧数据通过 migration 回填为 `main_composite_v1`,但不能继续产生无来源样本。
### 1. Global Risk Engine
目标:单币再好,也要先看账户和大盘能不能开新仓。
已完成:
- 输出 `globalRiskLevel`、`allowNewEntries`、`maxOpenPositions`、`maxLeverage`、`positionMultiplier`、`reasons`。
- 接入 paper trading 开仓/挂单前。
- critical 时禁止新开仓high 时只允许高质量机会。
待增强:
- 已把风控结果写入开仓事件返回与操作日志,方便复盘。
- 已加入同板块集中度、同方向拥挤度门禁。
- 后续可继续做更细的相关性矩阵和板块 Beta 暴露。
### 2. Market Regime Engine
目标:先判断现在是什么市场,再决定用什么策略。
第一版只需要白话状态:
- `risk_off`:风险释放期,禁止或大幅减少新山寨开仓。
- `btc_main_uptrend`:主流带动,山寨机会精选。
- `altcoin_rotation`:山寨轮动,可正常寻找机会。
- `sideways_chop`:横盘震荡,偏向等回踩,减少追突破。
- `meme_frenzy`MEME 情绪高涨,提高 MEME 门槛。
- `unknown`:数据不足,保守运行。
已完成:
- 使用现有 `market_overview` 快照、BTC/ETH 涨跌、山寨涨跌广度、强势/大跌数量、funding 概览。
待增强:
- 每次确认/交易记录当时 regime。
- 后续再接入 BTC Dominance、TOTAL3、稳定币净流。
### 3. Factor Group 去相关
目标避免同一根大阳线被“量价、突破、动K、强势榜”重复奖励。
已完成:
- 给因子增加大类:`momentum`、`participation`、`structure`、`positioning`、`narrative`、`risk`、`entry_quality`。
- 每个大类内部优先取最强信号,不简单全部累加。
- 每个大类设置分数上限。
- `factor_score_breakdown` 增加 group 视角。
待增强:
- 已做因子组级别交易归因,能在策略归因和复盘中心查看。
- 后续让分组上限按 market regime 动态调整。
### 4. Entry Quality Score
目标:机会分高不等于现在可以买。
已完成:
- 输出 `opportunityScore`、`entryScore`、`riskScore`。
- 记录降级原因追高、RR 不足、止损太宽、离支撑太远、24h 涨幅过热。
待增强:
- 已把三分制接入 `apply_entry_quality_gate``entry_score` 不足时禁止 `buy_now`,过低时不进入挂单池,转观察。
- 后续根据线上样本校准 `min_entry_score_buy_now` / `min_entry_score_wait_pullback`
### 5. 完整结构化决策日志
目标:任何通过、拒绝、降级都能解释清楚。
已完成:
- 每个候选/确认/开仓/拒绝都记录 module、decision、score、state、reasons、riskFlags、evidence。
待增强:
- 优先复用现有 `screening_log`、`cron_run_log`、`paper_trade_events`,必要时新增决策日志表。
- 如果后续前端要集中展示策略决策,应考虑新增 `strategy_decision_log` 表,而不是长期只塞在 JSON 里。
## P1第二阶段
- Continuation Quality Engine突破后是否真的延续。
- Fake Breakout Risk假突破高风险时禁止 immediate buy。
- Opportunity TTL旧信号自动过期不反复污染新机会。
- Paper Trade Attribution按因子组、regime、entryAction 归因交易结果。
- Regime-based Scoring不同市场状态下使用不同因子权重。
- Watchlist / Trade Ledger 进一步分离:观察样本、挂单、持仓收益完全分开统计。
- 策略编排器:支持多个策略同时运行、启停、优先级、同币种冲突仲裁和同方向信号合并。
- 第一个独立策略模块:`app/strategies/box_retest_4h.py`,消费统一交易宇宙并输出标准 `strategy_signal`
## P2第三阶段
- Narrative Graph 简化版:板块、龙头、二线、跟风、假相关。
- Sector Leader / Laggard 识别:热门板块不等于所有成员都加分。
- 舆情质量过滤:只在有稳定数据源时做 bot ratio / smart KOL。
- 策略分 regime 回测。
- `strategy_catalog`、`strategy_run_log`、`strategy_performance_daily` 等长期策略运营表。
## 暂缓
- 多 Agent 投票系统:当前不是优先项,先把状态、因子、风控和日志做好。
- 复杂 Narrative Graph数据质量不足前不要重投入。
- 180 天表现对比:等结构化样本足够后再做。
- 真实资金自动大规模跟单paper trading 和 demo 稳定后再扩大。
## 下一步执行建议
1. 先完成多策略第一阶段的策略血缘字段和标准策略输出结构。
2. 把现有综合确认策略标记为 `main_composite_v1`,确保 recommendation 和 paper trading 不再丢失策略来源。
3. 拆出 `box_retest_4h_v1` 作为第一个独立策略候选,先 observe/paper-only 跑样本。
4. 部署运行一段时间,观察 `market_regime`、`score_components`、`factor_score_breakdown.groups`、观察/挂单推进率是否能解释真实回撤。
5. 按线上样本校准 `entry_score` 门槛、group cap 和 high-risk 门槛。
6. 做 Regime-based Scoring让不同市场环境使用不同因子权重和分组上限。
7. 如果 JSON 决策日志查询不方便,再新增 `strategy_decision_log` 表和页面。
8. 后续再接入 BTC Dominance、TOTAL3、稳定币净流增强 Market Regime Engine。