基于数据和舆论监控的 A 股一日游策略多智能体系统,集成 SkillOpt 自我优化 + EvoSkill 结构性发现 双层自进化闭环。
⚠️ 免责声明: 本项目仅供学习研究使用,所有分析结果均不构成任何投资建议。股市有风险,投资需谨慎。
| 项目 | 说明 |
|---|---|
| 推理模型 | DeepSeek-V4(所有 Agent prompt 均针对 DS-V4 特性优化) |
| 单股成本 | ≈ 0.3 元(每只股票完整分析链路约 15-20 次 LLM 调用) |
| 50 股批量成本 | ≈ 15 元(含 4 分析师 + 多空辩论 + 反弹分析师 + 交易员 + 3 方风控讨论) |
| 月成本估算 | ≈ 300 元(20 个交易日 × 50 股) |
成本随 DeepSeek 官方定价波动,以上为 2026 年 6 月参考值。
Day 0 (收盘后) → 9-Agent 分析评估 → 决定 Day 1 是否买入
Day 1 (次日) → 开盘买入(如果决策为 Buy/Overweight)
Day 2 (第三日) → 收盘前强制平仓,无论盈亏
硬约束:只做多/不做空,单票仓位 ≤ 30%,Day1 涨幅预期 ≥ 1%(成本 0.11%),流动性过滤(日成交额 ≥ 1 亿、禁止 ST、回避跌停/停牌)。
一日游不是追求单次收益最大化,而是 追求反馈样本积累速度最大化。 一天 50 个样本、月 1000 个样本(相当长期策略的三年),每 2 天就能验证一条 prompt 好不好。 基于这个反馈密度,用 SkillOpt + EvoSkill 双层架构自动优化 Agent,让命中率在闭环迭代中持续收敛。
┌────────── SkillOpt 层 (每日自动) ──────────┐
│ │
│ collector → optimizer → aggregate → select│
│ ↓ │
│ applier 写入 skill │
│ ↓ │
│ 记录 accuracy │
│ │
└────────────────────────────────────────────┘
↓
检测是否收敛 (pipeline_history)
↓
最近 3 轮 accuracy 波动 < 2%?
↓
┌── yes ──→ EvoSkill 层触发
│
│ evolve.py:
│ 1. 加载全部辩论轨迹
│ 2. DeepSeek 深度分析错误样本
│ 3. 审计现有 skill 能力覆盖
│ 4. 诊断: 结构性缺口 vs 规则不足
│ 5. 输出 discovery.json
│
│ ↓ (人工审核)
│
│ needs_structural_change = True?
│ ├─ new_agent → 创建新 skill + 注册节点
│ ├─ new_section → 在现有 skill 加新章节
│ └─ merge → 合并冗余 agent
│
└── no ──→ 继续 SkillOpt 微调
SkillOpt (Microsoft) — 将 DL 训练范式映射到文本空间:skill.md 的 rule 行 = 模型参数,回测准确率 = 损失函数,LLM 分析错误 = 梯度信号。
EvoSkill (Sentient) — 当 SkillOpt 收敛时,诊断能力缺口,发现缺失的 Agent 模块。本项目首轮发现 reversal_analyst(反弹分析师),8-agent → 9-agent。
详见 docs/skillopt_evoskill_architecture.md 和 daily_reports/。
用户输入(股票代码)
│
▼
┌─────────────────────────────────────┐
│ 第一阶段:信息收集 │
│ 基本面 │ 技术面 │ 舆论情绪 │ 政策面 │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 第二阶段:多空辩论 │
│ Bull Researcher ⟷ Bear Researcher│
│ ↓ │
│ Reversal Analyst (反弹视角) │
│ ↓ │
│ Research Manager 汇总 │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 第三阶段:一日游交易决策 │
│ Trader(Day1买入 Day2强制平仓) │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 第四阶段:风控讨论 │
│ Aggressive ⟷ Conservative ⟷ Neutral │
│ ↓ │
│ Portfolio Manager 最终决策 │
│ Buy=Day1买入 / Hold=不参与 │
└─────────────────────────────────────┘
conda create -n stocka python=3.12
conda activate stocka
pip install -r requirements.txtcp .env.example .env
# 编辑 .env,填入 DEEPSEEK_API_KEY# 单只股票测试
python tests/test_one_stock.py
# 50只批量预测 (并发, 增量跳过)
python scripts/batch_predict.py # 默认今天
python scripts/batch_predict.py 2026-06-26 # 指定日期
python scripts/batch_predict.py 2026-06-26 --fresh # 强制全重跑
# 回测验证
python opt/collector.py # 收集回测信号 (HIT/MISS/STEP)
python scripts/_backtest_summary.py # 按日期/板块查看明细
# SkillOpt 优化流水线
python opt/run_pipeline.py # 完整 pipeline (collect → optimize → apply)
python opt/run_pipeline.py --status # 查看 pipeline 状态 + 收敛情况
# EvoSkill 收敛检测
python opt/evolve.py --force # 强制运行结构性发现DayTradeSelfOptAgent/
├── skills/ # Agent Prompt (SkillOpt 可编辑)
│ ├── bull_researcher.skill.md
│ ├── bear_researcher.skill.md
│ ├── reversal_analyst.skill.md # 🆕 EvoSkill 发现: 反弹分析师
│ ├── research_manager.skill.md
│ ├── trader.skill.md
│ ├── aggressive_risk.skill.md
│ ├── conservative_risk.skill.md
│ ├── neutral_risk.skill.md
│ └── portfolio_manager.skill.md
├── agents/
│ ├── analysts/ # 4 个分析师
│ ├── researchers/ # 多空研究员 + 反弹分析师
│ ├── risk_mgmt.py # 风控讨论 + 投资经理终决
│ ├── trader.py # 一日游交易员
│ ├── schemas.py # Pydantic 数据模型
│ ├── skill_loader.py # SkillOpt Prompt 加载器
│ └── utils/
├── dataflows/
│ ├── interface.py # 统一数据路由
│ ├── akshare_adapter.py # AKShare 适配器 (15+ API)
│ └── market_cache.py # 多级缓存系统
├── graph/
│ ├── trading_graph.py # LangGraph 主图 + 结果保存
│ ├── setup.py # 图构建配置 (9-agent 注册)
│ └── conditional_logic.py # 条件路由 (含 reversal_analyst)
├── opt/ # SkillOpt + EvoSkill 优化管线
│ ├── run_pipeline.py # 统一入口
│ ├── collector.py # 回测信号采集
│ ├── optimizer.py # LLM 错误分析 → edits.json
│ ├── aggregate.py # 合并去重相似编辑
│ ├── select.py # 四维评分 top-k 筛选
│ ├── applier.py # 写入 SKILLOPT-EDITABLE 区域
│ ├── gate.py # 新旧 accuracy 对比
│ ├── evolve.py # EvoSkill 收敛检测 + 结构性发现
│ └── debate_logger.py # 辩论轨迹归档
├── scripts/
│ ├── batch_predict.py # 批量预测 (并发 + 增量 + 大盘预加载)
│ ├── stock_universe.py # 统一股票配置 (50只)
│ ├── market_overview.py # 大盘数据预加载
│ ├── generate_daily_report.py
│ ├── backtest_day.py
│ ├── backtest_multiday.py
│ ├── backfill_dates.py
│ └── run_batch_date.py # 指定日期批量分析
├── docs/
│ ├── skillopt_evoskill_architecture.md # 🆕 双层自进化架构文档
│ └── one_day_swing_strategy.md
├── daily_reports/ # 每日日报
├── main.py # CLI 入口
└── .env.example
| 板块 | 股票 |
|---|---|
| ☀️ 光伏 | 通威、隆基、阳光电源、天合、迈为、晶澳、福斯特、锦浪、爱旭、固德威 |
| 💨 风电 | 金风、明阳、东方电缆、新强联、龙源、天顺、运达、中材、大金、泰胜 |
| 🧠 AI | 科大讯飞、寒武纪、浪潮、中际旭创、同花顺、三六零、昆仑万维、拓尔思、海光、云从 |
| 🔋 储能 | 宁德时代、亿纬锂能、国轩、赣锋、上海电气、当升、派能、欣旺达、鹏辉、南都 |
| 👁️ 视觉 | 海康、大华、德赛西威、中科创达、韦尔、欧菲光、虹软、格灵深瞳、凌云光、奥普特 |
统一配置在 scripts/stock_universe.py,所有脚本自动引用。
| 日期 | 准确率 | HIT | STEP | MISS | 架构 |
|---|---|---|---|---|---|
| 06-22→23 | 96% | 0 | 1 | 0 | 原始 8-agent |
| 06-23→24 | 60% | 0 | 10 | 0 | SkillOpt 首次优化 |
| 06-24→25 | 60% | 2 🆕 | 6 | 4 | 门槛放宽 |
| 06-25→26 | 88% 🔥 | 0 | 3 | 0 | 9-agent (含 reversal_analyst) |