AsyncTrader 是一个基于 LangChain 和 OpenAI 的量化交易系统自动化工具。v2.0 版本基于 LangChain 1.0.3 全面重构,增加了 FastAPI Web 服务和现代化前端界面,支持在浏览器中完成策略生成、数据查询和文档问答。
- 语言: Python 3.12
- 核心框架: LangChain 1.0.3 + LangChain-OpenAI 1.0.1
- LLM 接口: OpenAI GPT-4o-mini / GPT-4o / GPT-4-turbo / GPT-3.5-turbo
- 向量数据库: ChromaDB (通过 langchain-community)
- Web 框架: FastAPI 0.117.1 + Uvicorn 0.36.0
- 数据工具: AkShare 1.18.58, pandas
- 前端: 原生 HTML/JS/CSS 单页应用(SPA)
- 包管理器: pip
/workspace/projects/
├── app/ # FastAPI 后端与前端
│ ├── main.py # FastAPI 入口
│ ├── config.py # 应用配置
│ ├── routers/ # API 路由
│ │ ├── llm.py # LLM 配置路由
│ │ ├── strategy.py # 策略生成路由
│ │ ├── chat.py # 文档问答路由
│ │ ├── data.py # 数据查询路由
│ │ └── system.py # 系统状态路由
│ ├── services/ # 业务服务层
│ │ ├── llm_service.py
│ │ ├── strategy_service.py
│ │ ├── chat_service.py
│ │ ├── data_service.py
│ │ └── system_service.py
│ └── static/ # 前端静态文件
│ ├── index.html
│ ├── css/style.css
│ └── js/app.js
├── trading_system/ # 核心交易逻辑(新版)
│ ├── base.py # LLMManager:全局 LLM 配置与管理
│ ├── prompts.py # Prompt 模板
│ ├── tools.py # 新版工具(@tool 装饰器)
│ ├── akshare_tools.py # AkShare 数据查询工具
│ └── rag.py # LCEL 构建的 RAG 问答
├── trading_system/ # 旧版模块(保留兼容)
│ ├── freqtrade_system/ # Freqtrade 集成(需外部安装)
│ ├── akshare_system/ # AkShare 集成(旧版)
│ └── vnpy_system/ # Vnpy 集成(需外部安装)
├── docs/ # 项目文档(用于 RAG)
├── requirements.txt # Python 依赖
└── README.md # 项目说明
app/main.py: FastAPI 服务入口,提供 REST API 和静态文件服务trading_system/base.py:LLMManager单例,管理 OpenAI API Key、模型、温度trading_system/tools.py: 新版 LangChain 工具(网页策略提取、Freqtrade/Vnpy 策略生成)trading_system/akshare_tools.py: AkShare 函数调用链,使用bind_tools让 LLM 自动选择数据接口trading_system/rag.py: LCEL 构建的 RAG Chain,支持文档索引和问答
本项目现为 Web 服务型项目,通过 FastAPI 提供浏览器访问入口。
运行方式:
- 安装依赖:
pip install -r requirements.txt - 启动服务:
uvicorn app.main:app --host 0.0.0.0 --port 5000 - 浏览器访问根路径,在 Configuration 页面配置 OpenAI API Key
- 使用各功能模块:策略生成、网页提取、数据查询、文档问答
注意:
- Freqtrade 和 Vnpy 需要额外安装对应量化系统,本项目提供策略生成能力,回测/交易执行依赖外部系统。
- AkShare 数据查询功能可直接使用(已集成)。
GET /api/llm/status- LLM 状态POST /api/llm/configure- 配置 LLMPOST /api/strategy/generate- 生成策略代码POST /api/strategy/extract- 从网页提取策略POST /api/data/query- AkShare 数据查询POST /api/chat/build- 构建文档索引POST /api/chat/ask- 文档问答GET /api/systems/status- 外部系统可用性检测
- 支持动态配置 API Key 和模型,无需修改代码
- 策略生成默认使用 gpt-4o-mini,性价比高
- 网页策略提取和文档问答依赖 OpenAI Embeddings
- AkShare 查询使用 tool calling(bind_tools)自动选择函数
- 依赖冲突: 建议在隔离虚拟环境中安装
- API Key 未配置: 首次使用需在 Web 界面 Configuration 页面设置 OpenAI API Key
- 外部系统缺失: Freqtrade/Vnpy 需要单独克隆和安装,API 会返回可用性状态
- LangChain 版本: v2.0 基于 LangChain 1.0+,API 与旧版(0.0.x)不兼容