172 lines
9.5 KiB
Markdown
172 lines
9.5 KiB
Markdown
# 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。
|