# 中短期A股选股辅助系统 — 项目计划 ## 一、项目定位 基于 opencode + Skill/Custom Tool 机制构建的 **A股选股分析辅助工具**。利用 AI 辅助多维度分析, 帮助用户做出更有信息量的选股决策。**不涉及自动交易,仅做分析推荐,人工下单。** ## 二、核心原则 1. **验证优先** — 任何策略上线前必须经过历史回测,不依赖未经数据验证的经验法则 2. **辅助决策,而非替代决策** — 输出结构化分析报告,给出评分和依据,最终决策权归用户 3. **数据驱动** — 所有分析基于可量化的数据指标,避免主观模糊的语言 4. **增量迭代** — 先建回测引擎,再建选股工具,最后补舆情分析 ## 三、技术架构 ``` ┌──────────────────────────────────────────────┐ │ opencode TUI │ │ │ │ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ Skills │ │ Skills │ │ Skills │ │ │ │ Screener │ │ Analyzer │ │ Overview/ │ │ │ │ │ │ │ │ Backtest │ │ │ └────┬─────┘ └────┬─────┘ └──────┬──────┘ │ │ │ │ │ │ │ ┌────▼──────────────▼───────────────▼──────┐ │ │ │ Custom Tools (TypeScript) │ │ │ │ stock-data / stock-screen / backtest │ │ │ └──────────────────┬───────────────────────┘ │ └─────────────────────┼─────────────────────────┘ │ Bun.$ `python3 ...` ┌─────────────────────▼─────────────────────────┐ │ Python Scripts │ │ ┌───────────┐ ┌──────────┐ ┌──────────────┐ │ │ │ AKShare │ │ Screener │ │ Backtest │ │ │ │ Data │ │ Engine │ │ Engine │ │ │ └───────────┘ └──────────┘ └──────────────┘ │ └───────────────────────────────────────────────┘ ``` ### 数据源 | 数据类别 | 来源 | 说明 | |----------|------|------| | 日K/周K行情 | AKShare | `stock_zh_a_hist` | | 实时行情 | AKShare | `stock_zh_a_spot_em` | | 财务报表 | AKShare | `stock_financial_analysis_indicator` | | 资金流向 | AKShare | `stock_individual_fund_flow` | | 龙虎榜 | AKShare | `stock_sina_lhb_detail_daily` | | 新闻舆情 | AKShare + 自建爬虫 | `stock_news_em` | | 板块数据 | AKShare | `stock_board_industry_*` | ## 四、分阶段实施计划 ### 阶段 0:环境与框架搭建 ✅ - [x] 初始化项目目录结构 - [ ] 安装 Python 环境与依赖 - [x] 编写 AGENTS.md 供 opencode 理解项目 - [x] 搭建 Custom Tool 骨架(TypeScript → Python 桥接) - [x] 搭建 Skill 文件骨架 - [x] 适配小资金(5万)场景约束 ### 阶段 1:回测引擎(高优先级) **目标:** 任何策略可以输入规则 + 参数,输出回测报告。 - [ ] 实现回测引擎核心 `backtest_engine.py` - 模拟交易(按收盘价成交) - 计算收益曲线、胜率、最大回撤、夏普比率 - 支持多策略对比 - [ ] 实现 `stock-backtest` 工具(TypeScript 包装) - [ ] 实现回测 Skill(指导 LLM 如何设计、运行、解读回测) - [ ] 用历史数据跑几个经典策略验证引擎正确性 **验证标准:** 能跑出 60日均线上穿120日均线 这个经典策略在沪深300上的回测结果。 ### 阶段 2:选股引擎 **目标:** 多因子打分,输出 Top N 推荐列表。 - [ ] 实现选股筛选器 `stock_screener.py` - 技术因子:趋势强度、均线排列、量价配合、RSI、MACD - 资金因子:主力净流入(3/5/10日)、北向资金变化 - 基本面因子:PE 分位、ROE、营收/利润增速 - 消息因子:近期新闻数量、机构评级变化(后续补充) - 加权打分公式 - [ ] 实现 `stock-screen` 工具 - [ ] 实现选股 Skill(工作流:大盘评估 → 多因子筛选 → 排序输出) ### 阶段 3:单股深度分析 **目标:** 对任意股票生成结构化分析报告。 - [ ] 实现个股分析器 `stock_analyzer.py` - 技术面:趋势定位、均线状态、支撑/阻力位、技术形态识别 - 资金面:近期主力资金行为模式 - 基本面:PE/PB 历史分位、杜邦分析摘要 - 消息面:近30天关键公告、新闻情绪评分 - [ ] 实现 `stock-analyzer` Skill ### 阶段 4:大盘环境评估 **目标:** 每次选股前判断当前是否适合操作。 - [ ] 实现大盘分析 `market_overview.py` - 主要指数趋势判断 - 市场宽度(上涨/下跌家数比) - 成交量趋势 - 板块轮动热力图 - 仓位建议(轻仓/中等/重仓) - [ ] 实现 `market-overview` Skill ### 阶段 5:舆情分析增强 - [ ] 新闻爬取与解析 - [ ] 关键词/情绪评分 - [ ] 机构研报监控 ## 五、因子体系设计(初版) ### 多因子打分权重 | 维度 | 权重 | 子因子 | |------|------|--------| | 技术面 | 35% | 趋势强度、均线排列、量价配合、RSI位置 | | 资金面 | 30% | 主力净流入趋势、北向资金、大单占比 | | 基本面 | 25% | PE分位、ROE、利润增速、营收增速 | | 消息面 | 10% | 新闻热度、机构评级方向 | ### 每个因子标准化为 0-100 分,加权求和得综合分。 ## 六、风险与应对 | 风险 | 应对方案 | |------|----------| | AKShare 接口变动 | 封装统一数据层,多数据源 fallback | | LLM 分析幻觉 | 所有数据由 Python 脚本计算,LLM 仅做解读和呈现 | | 策略过拟合 | 回测引擎支持样本外检验(滚动窗口) | | 市场风格切换 | 多因子框架允许动态调整权重 | ## 七、目录结构 ``` stock/ ├── .opencode/ │ ├── tools/ # Custom Tools (LLM 可调用的函数) │ │ ├── stock-data.ts # 数据获取工具组 │ │ ├── stock-screen.ts # 选股筛选工具组 │ │ └── stock-backtest.ts # 回测工具组 │ └── skills/ # Agent Skills (工作流指令) │ ├── stock-screener/ # 选股工作流 │ ├── stock-analyzer/ # 单股分析工作流 │ ├── market-overview/ # 大盘评估工作流 │ └── stock-backtest/ # 回测工作流 ├── scripts/ # Python 实现 │ ├── market_data.py # 数据获取 (AKShare) │ ├── stock_screener.py # 多因子选股引擎 │ ├── stock_analyzer.py # 个股深度分析 │ ├── backtest_engine.py # 回测引擎 │ └── sentiment.py # 舆情分析 ├── docs/ │ └── PLAN.md # 本文件 ├── requirements.txt ├── AGENTS.md # opencode 项目理解 └── README.md ``` ## 八、小资金(5万)场景适配 ### 约束条件 | 约束 | 影响 | 设计调整 | |------|------|----------| | 每股单价限制 | 股价 >500 元直接买不起1手 | 选股池自动过滤高价股,优先 10-50 元区间 | | 集中持仓 | 5万只能分散到 2-4 只 | 选股输出 Top 3-5,附带仓位分配建议 | | 手续费敏感 | 单次交易 ~60 元(0.12%) | 每次推荐附带交易成本估算,避免过度拆分 | | 心理因素 | 5% = 2500 元,感受强烈 | 所有风控指标同时用百分比和绝对金额展示 | | 收益预期 | 年化 20% = 10000 元 | 目标定位为学习验证,非财富增长 | ### 仓位分配参考 | 大盘环境 | 总仓位 | 单只最大 | 持有数量 | |----------|--------|----------|----------| | 强势(重仓) | 3.5-4万(70-80%) | 1-1.5万/只 | 3-4只 | | 中性(中等) | 1.5-2.5万(30-50%) | 0.5-1万/只 | 2-3只 | | 弱势(轻仓) | <1.5万(<30%) | <0.5万/只 | 1-2只 | ### 价格可买性校验 每只推荐股票前校验:`股价 × 100 ≤ 计划仓位` ## 九、里程碑时间线 | 阶段 | 预计可交付 | 里程碑 | |------|-----------|--------| | 阶段 0 | ✅ 框架搭建 | 项目骨架可运行,上下文齐全 | | 阶段 1 | 回测引擎 | 可验证任意策略历史表现 | | 阶段 2 | 选股引擎 | 每天可生成 Top N 推荐 | | 阶段 3 | 单股分析 | 可对任意股票出详细分析报告 | | 阶段 4 | 大盘评估 | 判断市场可操作性 | | 阶段 5 | 舆情分析 | 消息面因子补充 | --- *最后更新:2026-07-01*