llm-quant/README.md
2025-09-27 20:05:34 +08:00

5.1 KiB
Raw Blame History

多智能体投资助理骨架

项目简介

本仓库提供一个面向 A 股日线级别的多智能体投资助理原型,覆盖数据采集、特征抽取、策略博弈、回测展示和 LLM 解释链路。代码以模块化骨架形式呈现,方便在单机环境下快速搭建端到端的量化研究和可视化决策流程。

核心模块

  • app/data:数据库初始化与 Schema 定义。
  • app/utils:配置、数据库连接、日志和交易日历工具。
  • app/ingestTuShare 数据抓取、新闻 RSS、数据覆盖检查器。
  • app/features:指标与信号计算接口。
  • app/agents:多智能体博弈实现,包括动量、价值、新闻、流动性、宏观与风险代理。
  • app/backtest:日线回测引擎与指标计算的占位实现。
  • app/llm:人类可读卡片与摘要生成入口(仅构建提示,不直接交易)。
  • app/uiStreamlit 四页界面骨架,含“自检测试”页。

核心技术原理

  • 多智能体博弈:通过 app/agents 定义六类风格化代理,利用纳什谈判与加权投票在 app/agents/game.py 中聚合交易动作与信心水平。
  • 数据覆盖自检app/ingest/tushare.py 封装 TuShare 拉取、增量更新与覆盖统计,app/ingest/checker.py 提供强制补数与窗口化覆盖报告。
  • 事件驱动回测app/backtest/engine.py 构建日频回测循环,将代理决策与投资组合状态解耦,便于扩展成交撮合与绩效统计。
  • 可视化与解释app/ui/streamlit_app.py 提供四大页签(今日计划、回测与复盘、数据与设置、自检测试),结合 Plotly 图形展示和 app/llm 提示卡片生成器,支撑人机协作分析。
  • 统一日志与持久化SQLite 统一存储行情、回测与日志,配合 DatabaseLogHandler 在 UI/抓数流程中输出结构化运行轨迹,支持快速追踪与复盘。
  • 跨市场数据扩展app/ingest/tushare.py 追加指数、ETF/公募基金、期货、外汇、港股与美股的增量拉取逻辑,确保多资产因子与宏观代理所需的行情基础数据齐备。

LLM + 多智能体最佳实践

  • 强化结构化特征:除 A 股行情外,引入资金流、因子、宏观等数据,为六类代理提供更丰富上下文。
  • 场景化 Prompt:在 app/llm 中注入代理贡献、宏观状态和风险事件,让 LLM 输出的策略解释与信号一致。
  • 闭环反馈机制:将回测或实盘的真实收益、成交等结果写回 SQLite用于调整代理权重与 Prompt 语料。
  • 多层日志监控保留代理评分、决策信心、LLM 提示与 UI 操作日志,帮助定位“谁做的决策、为何失败”。
  • 人机协同流程:在 UI 呈现代理分歧与 LLM 风险提示,分析师可调权、重跑或复核,实现人在环路的策略流程。

环境依赖与安装

建议使用 Python 3.10+,并在虚拟环境中安装依赖。

# 1. 创建并激活 Conda 环境
conda create -n llm-quant python=3.11 -y
conda activate llm-quant

# 2. 安装项目依赖
pip install -r requirements.txt

# 3. 设置 TuShare Token
export TUSHARE_TOKEN="<your-token>"

requirements.txt 当前涵盖运行框架所需的核心三方库:

  • Pandas数据表结构与指标处理
  • Streamlit交互式前端
  • Plotly行情与指标可视化
  • TuShare行情与基础面数据源
  • Requests统一访问 Ollama / OpenAI 兼容 API

LLM 配置与测试

  • 默认使用本地 Ollamahttp://localhost:11434),可在 Streamlit 的 “数据与设置” 页签切换到 OpenAI 兼容接口。
  • 修改 Provider/模型/Base URL/API Key 后点击 “保存 LLM 设置”,更新内容仅在当前会话生效。
  • 在 “自检测试” 页新增 “LLM 接口测试”,可输入 Prompt 快速验证调用结果,日志会记录限频与错误信息便于排查。

快速开始

# 启动交互界面(内含数据库初始化、开机检查、样例回测入口)
streamlit run app/ui/streamlit_app.py

Streamlit 自检测试 页签提供:

  • 数据库初始化快捷按钮;
  • TuShare 小范围拉取测试;
  • 一键开机检查(可自动补数并展示覆盖摘要);
  • 股票行情可视化(自动加载近段时间价格、成交量,并展示核心指标)。
  • 开机检查带进度指示与详细日志,便于排查 TuShare 拉取问题。

回测与复盘 页签提供快速回测表单,可调整时间区间、股票池与参数并即时查看回测输出。

下一步

  1. app/featuresapp/backtest 中完善信号计算、事件驱动撮合与绩效指标输出。
  2. 将代理效用写入 SQLite 的 agent_utilsalloc_log 表,驱动 UI 决策解释。
  3. 使用轻量情感分析与热度计算填充 newsheat_daily 与热点指数。
  4. 接入本地小模型或 API 完成人类可读的策略建议卡片,形成端到端体验。

License

本项目采用定制的 “LLM Quant Framework License v1.0”。个人使用、修改与分发需保留出处,任何商业用途须事先与版权方协商并签署付费协议。详情参见仓库根目录的 LICENSE 文件。