# ai_apay **Repository Path**: JINGXI21/ai_apay ## Basic Information - **Project Name**: ai_apay - **Description**: 分享好功能,开源共创 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-27 - **Last Updated**: 2026-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Stratos Quant > 面向 A 股研究者的本地化量化研究工作台。 Stratos Quant 是一个把数据采集、因子计算、策略回测、Agent 研究、报告生成和运维监控放在同一套工作流里的 A 股研究系统。它不是荐股黑箱,也不接入自动下单;它的目标是让研究过程可复现、可审计、可验证,让使用者在真实数据和明确风险约束下做人工决策。 系统适合个人研究者、小型投研团队、策略开发者和希望把 AI 接入量化流程的工程团队。你可以用它跟踪 A 股市场状态、构建候选池、运行短线或周频策略、生成早报/日报/周报、管理 Agent 研究提案,并通过回测与滚动验证过滤没有证据支撑的策略想法。 > 风险声明:本项目仅用于研究和人工决策辅助,不构成投资建议,不承诺收益,不提供自动交易能力。任何交易决策都应由使用者独立判断并自行承担风险。 ## 为什么做 Stratos Quant A 股研究常见的痛点不是“没有工具”,而是工具之间断裂: - 数据更新、因子计算、策略回测、报告撰写分散在不同脚本里,结果难以追踪。 - 很多 AI 分析只给结论,不给数据来源、回测证据和失败原因。 - 策略容易在单段行情上看起来有效,但滚动验证不过关。 - 日常研究依赖人工刷新数据,早报、盘中新闻和数据新鲜度难以统一管理。 - 系统出错时只看到“失败”,看不到任务步骤、日志和真实原因。 Stratos Quant 把这些环节收进一个工程化工作台:数据先入库,策略先验证,Agent 先留痕,报告先说明约束。它更像一个投研操作系统,而不是一次性脚本集合。 ## 核心能力 ### 数据与覆盖 - 支持 AKShare、BaoStock、Tushare、Yahoo/RSS、GDELT、FRED、WorldBank 等免费或可选数据源。 - SQLite + WAL 作为主存储,DuckDB 作为只读分析旁路。 - 覆盖股票基础信息、日线行情、板块资金、政策事件、新闻舆情、宏观指标、外围市场、估值盈利、北向资金、龙虎榜、融资融券、主力净流、解禁、增减持、行业 PMI 等数据。 - 内置数据健康、数据新鲜度、异常隔离和历史覆盖检查。 - 支持历史全 A 日线补齐命令,用于 5 年回测和长期策略评估。 ### 因子与策略 - 内置 MA、MACD、KDJ、BOLL、量能、资金、板块、基本面、情绪、宏观、政策和拥挤度相关因子。 - 支持策略插件系统,用户可以上传自己的 `.py` 策略,在策略实验室里启用、停用和回测。 - 支持 core/user/agent 三类策略来源。 - 支持候选池生成、周频回测、滚动 walk-forward 验证、策略对比和策略健康检查。 - 不降低验证阈值,不把未验证策略包装成推荐结论。 ### Agent 研究 - 支持策略研究 Agent、事件核验 Agent、市场研究 Agent、风控审稿 Agent、交易复盘 Agent 和策略教练 Agent。 - Agent 只能写研究笔记、事件核验、记忆和待审提案,不能直接修改生产策略、持仓或交易计划。 - 策略提案必须先通过 sandbox 校验和快速回测,因子提案必须写入验证证据;没有证据的提案不会进入审核队列。 - 研究详情展示执行步骤、验证证据、提案状态和失败原因。 ### 报告与风控 - 支持早盘报告、日报、周报、复盘报告、回测报告和策略对比报告。 - 报告尽量使用中文展示,同时保留策略 ID、run_id 和数据快照用于追溯。 - 休市日会明确说明交易日历,并回退到最近有效交易日行情。 - 风控规则覆盖单股仓位、最大持仓、止损止盈、周回撤、连续止损、盈亏比、追高检查和市场状态约束。 - 飞书通知可在设置中配置,用于报告和任务告警。 ### 运行与运维 - Web 控制台覆盖首页、运行中心、数据源、市场概览、报告中心、策略实验室、研究中心、Agent 中心、调度、系统监控、用户管理和设置。 - 后台任务有进度步骤、日志尾部、取消能力和 stale run 回收。 - Prometheus metrics、JSON 日志、DB 快照、SLA 检查和进程健康监控已接入。 - `scripts/start.sh` / `stop.sh` / `status.sh` / `restart.sh` 管理 API、scheduler 和 Codex sidecar。 ## 技术架构 ```text apps/frontend Vue 3 + TypeScript + Ant Design Vue 研究工作台、运行中心、策略实验室、报告中心、系统设置 apps/backend/stratos_quant FastAPI API CLI task runner APScheduler 调度 数据采集 collector 因子引擎 / 回测引擎 / walk-forward 优化 Agent gateway / strategy sandbox / report builder apps/sidecar Codex SDK sidecar 负责模型调用、线程续跑、结构化输出和超时控制 runtime data/research.db reports/ logs/ strategies/ snapshots/ ``` 核心设计: - 后端:Python、FastAPI、SQLite WAL、DuckDB、APScheduler。 - 前端:Vue 3、TypeScript、Ant Design Vue、ECharts、Monaco Editor。 - Agent:HTTP Agent API + Codex SDK sidecar,可继承全局配置。 - 策略沙箱:AST 白名单 + multiprocessing 子进程 + 网络/文件限制。 - 数据原则:真实数据优先,不用假数据填充研究结论。 - 策略原则:回测和滚动验证不过关时,系统保持观察并输出诊断。 ## 快速开始 ```bash cd /opt/stratos-quant python3 -m venv .venv source .venv/bin/activate pip install -e '.[dev]' cp .env.example .env ``` 生产运行建议配置: ```bash ANTHROPIC_API_KEY=your_claude_key TUSHARE_TOKEN=your_tushare_token FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx FEISHU_SECRET=optional_sign_secret ASAR_SECRET_KEY=your_long_random_secret SIDECAR_API_KEY=your_sidecar_api_key CODEX_API_KEY=your_codex_api_key CODEX_BASE_URL=https://api.openai.com/v1 CODEX_DEFAULT_MODEL=gpt-5.5 FRED_API_KEY=optional_free_fred_key ALPHAVANTAGE_API_KEY=optional_free_alpha_vantage_key ``` 启动服务: ```bash bash scripts/start.sh bash scripts/status.sh bash scripts/tail-logs.sh ``` 停止或重启: ```bash bash scripts/restart.sh bash scripts/stop.sh ``` 默认管理入口: ```text Web: http://127.0.0.1 默认管理员: admin / admin123 ``` 公网部署前请立即修改默认密码,并配置独立的 secret key。 ## 常用命令 初始化数据库: ```bash python -m stratos_quant.cli init-db ``` 数据更新: ```bash python -m stratos_quant.cli update-all --date 2026-04-29 python -m stratos_quant.cli update-intraday-news --date 2026-04-29 --force python -m stratos_quant.cli collect-policy-events --date 2026-04-29 python -m stratos_quant.cli collect-sentiment-events --date 2026-04-29 ``` 5 年历史覆盖检查与补数: ```bash python -m stratos_quant.cli data-coverage --years 5 python -m stratos_quant.cli backfill-history \ --start-date 2021-01-01 \ --end-date 2026-04-29 \ --universe historical_full_a \ --source baostock \ --resume ``` 因子、候选池和市场状态: ```bash python -m stratos_quant.cli compute-market-regime --date 2026-04-29 python -m stratos_quant.cli compute-factors --date 2026-04-29 python -m stratos_quant.cli generate-candidates --date 2026-04-29 --strategy weekly_breakout_v1 ``` 回测与滚动验证: ```bash python -m stratos_quant.cli run-backtest \ --start-date 2021-05-01 \ --end-date 2026-04-29 \ --strategy weekly_breakout_v1 python -m stratos_quant.cli run-walk-forward \ --start-date 2021-05-01 \ --end-date 2026-04-29 \ --strategy weekly_breakout_v1 ``` 报告: ```bash python -m stratos_quant.cli generate-morning-report --date 2026-04-29 python -m stratos_quant.cli generate-daily-report --date 2026-04-29 python -m stratos_quant.cli generate-weekly-report --date 2026-04-29 python -m stratos_quant.cli generate-weekly-review --date 2026-04-29 ``` Agent: ```bash python -m stratos_quant.cli agent-profiles python -m stratos_quant.cli agent-config-test --profile default_research python -m stratos_quant.cli run-agent-event-verifier --date 2026-04-29 python -m stratos_quant.cli run-agent-strategy-research ``` 运维: ```bash python -m stratos_quant.cli health-check python -m stratos_quant.cli scheduler-status python -m stratos_quant.cli db-snapshot python -m stratos_quant.cli check-data-quality-sla ``` ## Web 控制台 主要页面: - 首页:系统状态、市场状态、调度器、数据新鲜度。 - 运行中心:任务参数、执行进度、历史步骤、日志尾部。 - 数据源中心:数据源测试、健康状态、Sidecar 配置。 - 市场概览:市场状态、板块资金、情绪、新闻感知状态。 - 报告中心:早报、日报、周报、复盘、PDF 导出。 - 策略实验室:core/user/agent 策略管理、代码编辑、启停、回测入口。 - 研究中心:Agent 研究运行、验证证据、审核队列。 - Agent 中心:profile prompt、模型配置、试运行。 - 系统中心:进程、日志、DB 快照、metrics 和 SLA。 角色权限: - `admin`:用户、调度、Agent、设置、策略审核和系统运维。 - `operator`:运行任务、生成报告、查看研究结果。 - `viewer`:只读查看。 ## 数据目录 ```text runtime/data/research.db SQLite 主库 runtime/reports/ Markdown 报告 runtime/logs/ API、scheduler、sidecar 和任务日志 runtime/logs/tasks/.log 单任务日志 runtime/strategies/ 用户策略与沙箱文件 runtime/snapshots/ DB 快照 ``` ## API 概览 常用接口: - `GET /api/healthz` - `GET /api/data/freshness` - `GET /api/data/coverage?years=5` - `GET /api/data/quotes?symbol=000001.SZ&valid_only=true` - `GET /api/tasks/runnable` - `GET /api/tasks/running` - `GET /api/tasks/{run_id}` - `POST /api/tasks/{run_id}/cancel` - `GET /api/strategies` - `GET /api/research/runs` - `GET /api/research/proposals?status=pending` - `GET /api/reports` 现有 API 保持向后兼容,新能力优先以新增端点或 additive 字段接入。 ## Agent Gateway 与 Codex Sidecar 平台通过统一 HTTP Agent API 接入 sidecar。请求包含: - `task_type` - `model` - `messages` - `tools` - `tool_policy` - `memory_context` - `max_steps` - `thread_id` - `output_schema` 响应包含: - `status` - `final_answer` - `structured_output` - `tool_calls` - `usage` - `thread_id` - `error` Codex sidecar 位于 `apps/sidecar`: ```bash cd apps/sidecar cp .env.example .env npm install npm run build npm start ``` 然后在 Agent 中心配置: ```text backend_type = codex_sdk_sidecar agent_url = http://127.0.0.1:8787/v1/agent/run api_key = SIDECAR_API_KEY model = CODEX_DEFAULT_MODEL ``` ## 测试与构建 后端: ```bash .venv/bin/python -m pytest tests/ -x ``` 前端: ```bash cd apps/frontend PATH=/opt/stratos-quant/.toolchain/node-v22.22.2-linux-x64/bin:$PATH pnpm typecheck PATH=/opt/stratos-quant/.toolchain/node-v22.22.2-linux-x64/bin:$PATH pnpm build ``` ## 部署建议 - 使用 `scripts/start.sh` 管理 API、scheduler 和 sidecar。 - 使用 `scripts/status.sh` 检查进程与端口。 - 定期运行 `db-snapshot` 并备份 `runtime/snapshots`。 - 生产环境必须替换默认管理员密码。 - Agent API key、Sidecar API key 和飞书 webhook 不要写入仓库。 - 数据库大规模补数前建议先创建快照。 ## 项目路线 已具备: - A 股数据采集与健康检查。 - 策略插件、回测、滚动验证和策略健康。 - Agent 研究与人工审核队列。 - 早报、日报、周报和复盘报告。 - 任务进度、取消、日志、调度和系统监控。 - Paper trading、metrics、DB 快照、数据血缘和 SLA。 持续演进方向: - 更完整的历史因子覆盖。 - 更细粒度的数据源 SLA。 - 更强的策略诊断与参数搜索。 - 更多报告模板和通知通道。 - 更完整的 Docker / systemd / 云服务器部署示例。 ## 赞助与支持 如果 Stratos Quant 对你的研究或工程实践有帮助,欢迎通过赞助支持项目维护。赞助会用于数据源适配、文档完善、测试环境和后续功能开发。 二维码预留位置: | 微信赞助 | 支付宝赞助 | | --- | --- | | 将二维码图片放到 `docs/assets/sponsor-wechat.png` 后替换此处 | 将二维码图片放到 `docs/assets/sponsor-alipay.png` 后替换此处 | 也可以在 README 中替换为: ```markdown ![微信赞助](docs/assets/sponsor-wechat.png) ![支付宝赞助](docs/assets/sponsor-alipay.png) ``` ## License 请根据仓库中的 `LICENSE` 文件使用本项目。