# 回测系统 **Repository Path**: liusi/backtesting-system ## Basic Information - **Project Name**: 回测系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-21 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票回测系统 一个基于 Vue3 + Vite 前端和 Python FastAPI 后端的股票回测系统,支持策略回测、数据可视化、性能分析等功能。 ## 📋 项目结构 ``` 回测系统/ ├── stock/ # 前端项目 │ ├── src/ │ │ ├── components/ # 组件 │ │ ├── views/ # 页面 │ │ ├── stores/ # 状态管理 │ │ ├── api/ # API接口 │ │ ├── utils/ # 工具函数 │ │ └── assets/ # 静态资源 │ ├── package.json │ └── vite.config.js │ ├── server/ # 后端项目 │ ├── app/ │ │ ├── api/ # API路由 │ │ ├── core/ # 核心功能 │ │ │ ├── data/ # 数据获取模块 │ │ │ ├── strategy/ # 策略管理 │ │ │ ├── backtest/ # 回测引擎 │ │ │ └── analysis/ # 分析模块 │ │ ├── models/ # 数据模型 │ │ ├── utils/ # 工具函数 │ │ └── main.py # 入口文件 │ ├── requirements.txt │ └── config.py │ ├── docs/ # 文档 ├── README.md └── 项目规划.md ``` ## 🚀 快速开始 ### 环境要求 - Node.js >= 16.0.0 - Python >= 3.8 - pip ### 一键启动(推荐) 项目提供了跨平台的启动脚本,可以同时启动前端和后端服务: **方式一:使用 npm(推荐)** ```bash npm start ``` 或 ```bash npm run dev ``` **方式二:使用 Python 脚本** - **Windows 系统:** - 双击运行 `start.bat` 文件 - 或在命令行执行:`python start.py` - **Mac/Linux 系统:** - 在终端执行:`chmod +x start.sh && ./start.sh` - 或直接执行:`python3 start.py` **其他 npm 命令:** - `npm run start:py` - 直接使用 python 命令 - `npm run start:py3` - 直接使用 python3 命令 启动脚本会自动: - ✅ 检查运行环境(Node.js、npm、Python) - ✅ 安装前端依赖(如果未安装) - ✅ 同时启动后端服务(http://localhost:8000) - ✅ 同时启动前端服务(http://localhost:5173) - ✅ 优雅地处理进程关闭(Ctrl+C) ### 手动启动 如果需要分别启动前端和后端: #### 前端启动 ```bash cd stock npm install npm run dev ``` 前端服务将在 `http://localhost:3000` 启动 ### 后端启动 ```bash cd server pip3 install -r requirements.txt python3 run.py ``` **注意**:在 macOS 上,请使用 `pip3` 和 `python3` 命令。 后端服务将在 `http://localhost:8000` 启动 或者使用 uvicorn 直接启动: ```bash cd server uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ## 📦 技术栈 ### 前端 - **Vue 3** - 渐进式 JavaScript 框架 - **Vite** - 下一代前端构建工具 - **Ant Design Vue** - 企业级 UI 组件库 - **Monaco Editor** - VS Code 编辑器核心 - **Pinia** - Vue 状态管理 - **Vue Router** - 官方路由管理器 - **Axios** - HTTP 客户端 ### 后端 - **FastAPI** - 现代、快速的 Web 框架 - **SQLAlchemy** - Python SQL 工具包和 ORM - **SQLite** - 轻量级数据库 - **AKShare** - 免费数据源 - **Pandas** - 数据分析库 - **NumPy** - 数值计算库 ## 🎯 核心功能 ### 1. 数据管理 - 支持 AKShare 数据源 - 股票列表获取 - 历史 K 线数据下载 - 数据缓存机制 ### 2. 策略管理 - 策略代码编辑器(Monaco Editor) - 策略保存/加载 - 策略版本管理 - 策略模板库 ### 3. 回测引擎 - 历史数据回放 - 买卖信号生成 - 订单执行模拟 - 持仓管理 - 资金管理 ### 4. 可视化分析 - K 线图展示 - 资金曲线图 - 性能指标展示(总收益率、年化收益率、最大回撤、夏普比率等) - 交易记录查看 ## 📝 API 文档 启动后端服务后,访问 `http://localhost:8000/docs` 查看 Swagger API 文档。 ### 主要 API 端点 #### 数据管理 - `GET /api/data/stocks` - 获取股票列表 - `GET /api/data/kline` - 获取 K 线数据 - `POST /api/data/download` - 下载数据 #### 策略管理 - `GET /api/strategy/list` - 获取策略列表 - `GET /api/strategy/{id}` - 获取策略详情 - `POST /api/strategy` - 创建策略 - `PUT /api/strategy/{id}` - 更新策略 - `DELETE /api/strategy/{id}` - 删除策略 - `POST /api/strategy/{id}/backtest` - 运行回测 #### 回测引擎 - `GET /api/backtest/{id}` - 获取回测结果 ## 🔧 配置说明 ### 后端配置 编辑 `server/config.py` 文件可以修改: - 数据库连接 - 默认数据源 - 回测默认参数 ### 前端配置 编辑 `stock/vite.config.js` 可以修改: - 开发服务器端口 - API 代理配置 ## 📊 数据库 系统使用 SQLite 数据库,数据库文件位于 `server/backtest.db`。 主要数据表: - `data_sources` - 数据源配置 - `stocks` - 股票信息 - `kline_data` - K 线数据 - `strategies` - 策略信息 - `backtest_results` - 回测结果 ## 🛠️ 开发指南 ### 添加新的数据源 1. 在 `server/app/core/data/` 目录下创建新的客户端类 2. 实现数据获取接口 3. 在 `DataManager` 中集成新数据源 ### 扩展回测引擎 1. 修改 `server/app/core/backtest/backtest_engine.py` 2. 实现策略代码执行逻辑 3. 添加更多性能指标计算 ### 添加新的前端页面 1. 在 `stock/src/views/` 创建新组件 2. 在 `stock/src/router/index.js` 添加路由 3. 在 `stock/src/api/` 添加对应的 API 调用 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📞 联系方式 如有问题,请提交 Issue。