Files
myquant/CLAUDE.md
T
simon 6ec198687c feat(djapi): 新增日报查询 API(news/reports + news/events)及文档
- api/report/ 包:query(连库+SQL)/ views(2 视图)/ serializers(OpenAPI)/ tests(17 单测)
- urls.py 注册 news/reports/、news/events/;settings.py SPECTACULAR 加「日报」tag
- .env.example 补 NEWS_DB_* 占位配置;README/continuation.md 更新
- docs/news_report_api.md 使用手册;CLAUDE*.md 修正 CLI 路径为 finance/ 前缀
2026-08-05 20:51:42 +08:00

4.8 KiB
Raw Blame History

CLAUDE.md

cc-cursor — Mac Mini 单机量化研究平台。全链路:Data → Factor → Backtest → Optimize → ML → Sentiment → Agent。

速查索引

模块 详情文件 核心入口
数据层 + 数据库 CLAUDE-data.md from data.data_manager import DataManager
因子引擎 + 情绪 CLAUDE-factors.md from factors.registry import get_factor
回测 + 优化 CLAUDE-backtest.md from backtest.vectorbt.engine import VectorBTEngine
ML 模型 CLAUDE-ml.md from models.lightgbm.model import LightGBMModel
Agent 系统 + CLI CLAUDE-agents.md python finance/cli/agent_cli.py daily

工作区布局

目录 内容
finance/ 核心量化引擎(代码实际位置)。代码内 import 用顶层名 data.*/factors.* 等 — 由 CLI 把 finance/ 加入 sys.path;文件路径为 finance/data/xxx.py
djapi/ Django API 子项目,有独立 djapi/CLAUDE.md
shared/script/ autossh.sh — MariaDB SSH 隧道
docs/ usage.md / usage.html 使用指南、news_report_api.md 新闻接口文档;新建 md 一律放这里
finance/strategy portfolio execution scheduler/ 空壳占位(仅 __init__.py),逻辑未落地,别误以为有实现
finance/reports/ 日报输出 daily_YYYYMMDD.{md,html}

环境

conda activate quant          # Python 3.11.13
bash shared/script/autossh.sh # DB SSH 隧道 (本地 13306 → 远程 3306)

# 环境变量在 finance/.env(示例见 finance/.env.example):QWEN / TUSHARE / DB / 情绪范围

任务→文档路由

任务类型 先读取
数据源/数据库/cache 相关 CLAUDE-data.md
因子/情绪/新闻相关 CLAUDE-factors.md + CLAUDE-reference.md
回测/优化/策略相关 CLAUDE-backtest.md
ML 模型/特征工程相关 CLAUDE-ml.md
Agent/CLI/报告相关 CLAUDE-agents.md
第三方库 API/参数 web_fetch / research 查官方文档
因子名/类名/表结构速查 CLAUDE-reference.md

多步任务规则

复杂任务(涉及 3+ 文件或 2+ 模块)执行前:

  1. 输出执行计划清单(步骤 + 每步验证方法)
  2. 每步完成后验证通过才继续
  3. 遇到失败先定位根因,不跳过

核心设计约束(必须遵守)

  • 数据流:Data → Factor → Model → Strategy → Backtest → Report
  • 策略层禁止直接访问 AkShare/Tushare → 全部通过 DataManager
  • 模型层禁止直接访问数据库 → 全部通过 DataManager
  • 指数代码规则:.SH=指数, .SZ 开头非 399=个股
  • 数据源优先级:Tushare → AkShare (fallback)
  • 当日数据未缓存 → 先 dm.sync_daily;增量同步只更新已缓存股票
  • 修改多文件前先说明:文件清单、原因、影响;优先小范围修改

CLI 常用命令

python finance/cli/agent_cli.py daily              # 5步完整流程
python finance/cli/agent_cli.py picks 15           # 选股
python finance/cli/agent_cli.py risk               # 风险评估
python finance/cli/agent_cli.py research           # 因子研究
python finance/cli/agent_cli.py report 20260603    # 生成日报
python finance/cli/agent_cli.py warmup 50          # 首次预热缓存

python finance/cli/demo_data_manager.py --ts_code 600519.SH
python finance/cli/demo_factor_engine.py --ts_code 300750.SZ
python finance/cli/demo_backtest.py --ts_code 000001.SZ
python finance/cli/demo_optimizer.py --ts_code 000001.SZ --trials 100
python finance/cli/demo_ml.py --ts_code 000001.SZ --lookahead 5
python finance/cli/demo_sentiment.py --ts_code 600519.SH
python finance/cli/demo_sentiment_detail.py --ts_code 600519.SH --date 20260603

技术栈

组件 技术 环境
数据获取 AkShare + Tushare (双源) conda quant
数据库 MariaDB (SSH 隧道) mac_ 前缀表
因子/特征 pandas / numpy / sklearn conda quant
回测 VectorBT 1.0 conda quant
优化 Optuna 4.9 conda quant
ML LightGBM 4.6 + CatBoost 1.2 conda quant
NLP Qwen (DashScope / Ollama) .env 配置
Agent 自研编排器 finance/agents/
API Django 5.2 + uWSGI djapi/

安全规范

禁止提交

  • .env(含真实 key
  • API Keysk-*TUSHARE_TOKEN 等)
  • Cookie / Session
  • Token / 密钥
  • 个人隐私数据(手机号、身份证、密码)

必须提供

  • .env.example — 仅含占位符的示例配置,如:
    TUSHARE_TOKEN=your_token_here
    QWEN_API_KEY=sk-your-key-here
    MAC_DB_PASSWORD=your_password_here
    

提交前检查

grep -r "sk-\|token\|_H(lU\|password" --include="*.py" --include="*.md" --include="*.yaml" | grep -v ".example\|your_token\|your_password"