# astrader **Repository Path**: public26/astrader ## Basic Information - **Project Name**: astrader - **Description**: 支持A股交易的简易交易执行框架,轻量化、模块化,支持接入mini qmt - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 3 - **Created**: 2025-12-27 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: stocks **Tags**: None ## README # astrader ![logo](./docs/img/logo.png) ### 介绍 支持A股交易的简易交易执行框架,轻量化、模块化,支持接入mini qmt ### 软件架构 #### 1.1 整体架构 - **后端**:Python + FastAPI + 交易引擎 - **前端**:Vue 3 + Vite - **数据库**:SQLite/MySQL - **配置文件**:YAML格式 #### 1.2 核心模块 - **交易引擎**:负责执行交易策略 - **API服务**:提供前端数据查询接口 - **监控页面**:显示交易状态和策略运行情况 ### 界面功能预览 - **交易监控** ![交易监控](./docs/img/ui/trading.png) - **程序管理** ![程序管理](./docs/img/ui/programs.png) - **远程终端** ![远程终端](./docs/img/ui/terminal.png) ### 安装教程 #### 1. 环境准备 ##### 1.1 系统要求 - Python 3.11+ - Node.js 16+ - npm 8+ - qmt mini api,放置在thirdparty/目录下(thirdparty/xtquant) ##### 1.2 依赖安装 ###### 后端依赖 ```bash # 进入项目根目录 cd /path/to/astrader # 安装Python依赖 pip install -r requirements.txt ``` ###### 前端依赖 ```bash # 进入前端目录 cd /path/to/astrader/frontend # 安装npm依赖 npm install # 构建生产版本 npm run build ``` #### 2. 配置管理 ##### 2.1 配置文件结构 - 配置文件位于 `config/` 目录 - 生产环境建议使用独立的配置文件,如 `config_prd.yaml` - 配置文件包含以下主要部分: - `base`:基本配置(节假日、交易时间、日志等) - `engine`:引擎配置(策略ID列表等) - `hq`:行情配置 - `trade`:交易配置 - `strategies`:策略配置 ##### 2.2 关键配置项 - `engine.strategyids`:运行中的策略ID列表 - `base.logging`:日志配置 - `trade`:交易账户配置 - `strategies`:策略详细配置 #### 3. 服务启动 ##### 3.1 交易引擎启动 ###### 直接运行 ```bash # 使用指定配置文件启动交易引擎 python run.py config/config_prd.yaml prd_logs ``` ##### 3.2 API服务启动 ###### 方式1:直接运行 ```bash # 启动FastAPI服务 python main.py ``` ##### 3.3 前端部署 生产部署时可以使用npm编译成静态文件,开发模式可以使用npm run dev启动 ###### 方式1:静态文件挂载到FastApi中 ```python # 添加静态文件服务 frontend_dist = os.path.join(os.path.dirname(os.path.abspath(__file__)), "frontend", "dist") # 挂载整个dist目录作为静态文件服务 app.mount("/", StaticFiles(directory=frontend_dist, html=True), name="static") ``` ###### 方式2:使用Nginx部署静态文件 ```nginx server { listen 80; server_name your-domain.com; location / { root /path/to/astrader/frontend/dist; index index.html; try_files $uri $uri/ /index.html; } # API代理 location /api { proxy_pass http://localhost:8800; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` ###### 方式3:使用Node.js静态服务器 ```bash # 安装serve工具 npm install -g serve # 启动静态服务器 serve -s /path/to/astrader/frontend/dist -l 80 ``` ###### 方式4:开发模式启动 ```bash /path/to/astrader/frontend npm run dev ``` ### 日志管理 #### 1 日志位置 - 交易引擎日志:`logs/` 目录下,按日期和策略ID分类 - API服务日志:默认输出到控制台,可配置到文件 # 安装serve工具 ```bash npm install -g serve # 启动静态服务器 serve -s /path/to/astrader/frontend/dist -l 80 ``` ### 日志管理 #### 1 日志位置 - 交易引擎日志:`logs/` 目录下,按日期和策略ID分类 - API服务日志:默认输出到控制台,可配置到文件 - 前端日志:浏览器控制台,生产环境建议关闭调试日志 #### 2 日志级别 - 生产环境建议使用 `INFO` 级别 - 调试时可使用 `DEBUG` 级别 - 配置文件中可通过 `base.logging.level` 设置 ### 监控和维护 #### 1 健康检查 - API服务提供健康检查接口:`http://localhost:8800/health` - 可用于监控服务状态 #### 2 常见问题排查 - **交易引擎无响应**:检查日志文件,查看是否有错误信息 - **API服务无法访问**:检查端口占用情况,查看服务日志 - **前端页面白屏**:检查浏览器控制台报错,确认API服务是否正常 - **策略不执行**:检查策略配置是否正确,确认策略ID在 `engine.strategyids` 中 ### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ### 写在最后 1. 欢迎加入QQ交流群(190095620),共同交流和学习 2. 扫码加入 ![QQ群二维码](./docs/img/qq.png) 3. 如果喜欢该项目,请给个star和捐赠,谢谢! ![捐赠二维码](./docs/img/wx-donate.jpg) ## 免责声明 1. 本项目(astrader)是一个支持A股交易的开源框架,仅用于学习和研究目的,不构成任何投资建议或交易指导。 2. 本项目基于mini qmt API开发,使用本项目前请确保您已遵守相关金融机构的服务条款和使用协议。 3. 作者不对使用本项目产生的任何交易结果、金融损失或法律责任负责。使用者需自行承担所有交易风险和法律责任。 4. 本项目可能包含错误或不完善之处,作者不保证其准确性、完整性或可靠性。 5. 任何基于本项目进行的交易操作均由使用者自行决策,与作者无关。 6. 使用者应遵守国家相关法律法规,不得利用本项目进行任何违法活动。 通过使用本项目,您即表示同意上述免责声明的所有条款。