# QTMaster **Repository Path**: nkdit/QTMaster ## Basic Information - **Project Name**: QTMaster - **Description**: 量化交易系统 - 多 Agent 架构项目 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-23 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 量化交易系统 - 多 Agent 架构项目 ## 项目概述 这是一个基于 AKShare 数据接口开发的量化交易系统,采用多 Agent 协作架构,包含市场情绪分析、风险控制、交易执行、持仓管理等多个专业模块,通过主调度器协调各模块工作,完成完整的量化交易流程。 ## 系统架构 ``` QTMaster/ ├── main.py # 主程序入口 ├── models.py # 数据模型定义 ├── scheduler.py # 主调度器 Agent ├── agents/ # Agent 模块目录 │ ├── __init__.py # 模块初始化 │ ├── market_sentiment_agent.py # 市场情绪分析 Agent │ ├── risk_control_agent.py # 风险控制 Agent │ ├── trading_agent.py # 交易执行 Agent │ └── position_agent.py # 持仓管理 Agent └── README.md # 项目文档 ``` ## 文件说明 ### 1. `models.py` - 数据模型 **功能**:定义系统使用的所有数据类和枚举类型 **核心类**: - `AgentType`:Agent 类型枚举 - `MarketData`:市场数据模型(股票代码、价格、成交量、时间戳) - `TradeSignal`:交易信号模型(股票代码、交易方向、置信度、原因) ### 2. `agents/market_sentiment_agent.py` - 市场情绪分析 Agent **职责**: - 获取市场宏观数据(上证指数走势) - 分析个股的市场情绪 - 生成市场情绪评分(0-1 之间) **核心方法**: - `analyze(symbols)`:分析股票列表的市场情绪 - `get_market_overview()`:获取市场整体概览 ### 3. `agents/risk_control_agent.py` - 风险控制 Agent **职责**: - 检查单日亏损是否超限 - 检查仓位占比是否合理 - 拒绝高风险交易,保护本金 **配置参数**: - `max_position_size`:最大仓位占比(默认 10%) - `max_daily_loss`:最大单日亏损占比(默认 2%) **核心方法**: - `check_risk(signal, current_positions)`:检查交易风险 - `update_daily_loss(loss)`:更新单日亏损 ### 4. `agents/trading_agent.py` - 交易执行 Agent **职责**: - 根据交易信号执行具体的买入/卖出操作 - 记录每笔交易的详细信息 - 计算交易数量 **核心方法**: - `execute_trade(signal, current_price)`:执行交易 - `_calculate_quantity(current_price)`:计算交易数量 ### 5. `agents/position_agent.py` - 持仓管理 Agent **职责**: - 维护投资组合的持仓信息 - 在买入/卖出时更新持仓数量 - 提供持仓查询功能 **核心方法**: - `update_position(symbol, quantity, action)`:更新持仓 - `get_positions()`:获取当前持仓 ### 6. `scheduler.py` - 主调度器 Agent **职责**: - 初始化并管理所有子 Agent - 协调各 Agent 的工作流程 - 实现完整的量化交易逻辑 **工作流程**: ``` [步骤 1] 市场数据分析 ↓ [步骤 2] 生成交易信号 ↓ [步骤 3] 风险检查 ↓ [步骤 4] 执行交易 ↓ [步骤 5] 更新持仓 ↓ [步骤 6] 显示最终报告 ``` ### 7. `main.py` - 主程序入口 **功能**: - 创建并初始化主调度 Agent - 运行量化交易系统 - 异常处理(Ctrl+C 中断、错误捕获) ## 系统工作流程 ### 交易信号生成逻辑 ``` 市场情绪评分 (0-1) ├─ score > 0.6 ──→ 强正面情绪 ──→ BUY 信号 ├─ 0.4 ≤ score ≤ 0.6 ──→ 中等情绪 ──→ 无信号(持有) └─ score < 0.4 ──→ 弱面情绪 ──→ SELL 信号 ``` ### 风险控制规则 1. **单日亏损限制** - 限制:单日亏损不超过总资金的 2% - 触发:当日累计亏损 > 100,000 * 2% = 2,000 元 - 操作:拒绝新交易 2. **仓位限制** - 限制:仓位不超过总资金的 10% - 检查:仅对买入信号检查 - 操作:超限时拒绝买入 ## 快速开始 ### 1. 安装依赖 ```bash pip install akshare pandas ``` ### 2. 运行程序 ```bash python main.py ``` ### 3. 预期输出 ``` ============================================================ 量化交易系统启动 ============================================================ [步骤 1] 市场数据分析... ------------------------------------------------------------ Market overview: {'latest_price': 3600.5, 'change': 10.2} Sentiment scores: {'000001': 0.5, '000002': 0.5, '000858': 0.5} [步骤 2] 生成交易信号... ------------------------------------------------------------ No trading signals generated [步骤 3] 风险检查与交易执行... ------------------------------------------------------------ [步骤 4] 最终状态报告... ------------------------------------------------------------ Final positions: {} Total trades executed: 0 ============================================================ 量化交易系统运行完成 ============================================================ ``` ## 扩展和改进建议 ### 1. 增强市场情绪分析 - 使用技术指标(MA、MACD、RSI 等) - 集成情感分析(新闻、评论) - 添加量价分析 ### 2. 完善风险控制 - 添加 VaR(风险价值)计算 - 实现动态止损 - 添加杠杆控制 ### 3. 优化交易执行 - 实现真实交易接口(如 tushare、wind) - 添加滑点处理 - 实现订单管理系统 ### 4. 增强持仓管理 - 添加成本价跟踪 - 实现组合收益计算 - 添加持仓历史记录 ## 注意事项 1. **数据接口**:当前使用 AKShare 的免费数据,实时性和完整性可能有限 2. **回测功能**:当前代码为实盘框架,建议先进行历史回测 3. **风险警告**:量化交易有风险,请谨慎使用,最好在纸面交易上先行测试 4. **市场情绪**:当前使用固定评分(0.5),实际应实现真实的情绪计算逻辑 ## 代码规范 - 所有函数和方法都有详细的中文注释 - 每个文件顶部说明文件的职责 - 核心逻辑使用分割线和步骤号标记,便于理解 ## 许可证 MIT License ## 作者 GitHub Copilot