# MiniQMT量化交易集成指南

## 📚 概述

本系统已为监测板块增加MiniQMT量化交易预留接口，支持自动化量化交易功能。该功能可以在监测到特定价格条件时，自动执行买卖操作。

## 🚀 功能特性

### 核心功能
- ✅ **自动交易执行**：监测触发后自动下单
- ✅ **仓位管理**：智能仓位控制和风险管理
- ✅ **多种订单类型**：市价单、限价单、止损单等
- ✅ **持仓监控**：实时查看持仓和盈亏
- ✅ **风险控制**：自动止损、止盈功能
- ✅ **策略配置**：灵活的量化策略参数设置

### 交易信号类型
1. **进场信号（Entry）**：价格进入预设进场区间时触发买入
2. **止盈信号（Take Profit）**：价格达到止盈位时触发卖出
3. **止损信号（Stop Loss）**：价格达到止损位时紧急止损

## ⚙️ 配置说明

### 1. 环境变量配置

在项目根目录的 `.env` 文件中添加以下配置：

```bash
# MiniQMT量化交易配置
MINIQMT_ENABLED=true                    # 是否启用MiniQMT（true/false）
MINIQMT_ACCOUNT_ID=your_account_id      # 交易账户ID
MINIQMT_HOST=127.0.0.1                  # MiniQMT服务地址
MINIQMT_PORT=58610                      # MiniQMT服务端口
```

### 2. 代码配置

配置会自动从环境变量加载，也可以在 `config.py` 中直接修改：

```python
MINIQMT_CONFIG = {
    'enabled': True,                    # 启用MiniQMT
    'account_id': 'your_account_id',    # 账户ID
    'host': '127.0.0.1',               # 服务地址
    'port': 58610,                     # 服务端口
}
```

## 📖 使用指南

### 第一步：安装MiniQMT

1. 下载并安装MiniQMT客户端
2. 启动MiniQMT客户端
3. 登录你的交易账户
4. 确保API服务已启动

### 第二步：启用量化功能

1. 进入系统的"实时监测"板块
2. 在底部找到"MiniQMT量化交易"状态面板
3. 点击"连接MiniQMT"按钮
4. 等待连接成功提示

### 第三步：添加量化监测股票

#### 方式一：添加新股票时启用

1. 点击"添加股票监测"
2. 填写股票信息和关键位置
3. 在"量化交易（MiniQMT）"区域勾选"启用量化自动交易"
4. 配置量化参数：
   - **最大仓位比例**：单只股票最大占总资金的比例（建议0.1-0.3）
   - **自动止损**：是否在触发止损位时自动卖出
   - **自动止盈**：是否在触发止盈位时自动卖出
5. 点击"添加监测"

#### 方式二：编辑现有股票启用

1. 在监测股票列表中找到目标股票
2. 点击"编辑"按钮
3. 勾选"启用量化自动交易"
4. 配置量化参数
5. 点击"保存修改"

### 第四步：监控交易执行

系统会在以下情况自动执行交易：

1. **进场买入**
   - 条件：价格进入进场区间
   - 动作：按配置的仓位比例自动买入
   - 订单类型：限价单

2. **止盈卖出**
   - 条件：价格达到止盈位
   - 动作：卖出全部持仓
   - 订单类型：限价单

3. **止损卖出**
   - 条件：价格达到止损位
   - 动作：紧急卖出全部持仓
   - 订单类型：市价单（快速成交）

## 🔧 接口说明

### MiniQMTInterface 类

#### 主要方法

```python
# 连接到MiniQMT
success, msg = miniqmt.connect(account_id)

# 断开连接
miniqmt.disconnect()

# 获取账户信息
account_info = miniqmt.get_account_info()

# 获取持仓
positions = miniqmt.get_positions()

# 下单
success, msg, order_id = miniqmt.place_order(
    symbol='000001',
    action=TradeAction.BUY,
    quantity=100,
    price=10.50,
    order_type=OrderType.LIMIT
)

# 撤销订单
success, msg = miniqmt.cancel_order(order_id)

# 执行策略信号（自动调用）
success, msg = miniqmt.execute_strategy_signal(
    stock_id=1,
    symbol='000001',
    signal={'type': 'entry', 'price': 10.5},
    position_size=0.2
)
```

### 量化策略配置

```python
quant_config = {
    'max_position_pct': 0.2,        # 最大仓位比例（20%）
    'auto_stop_loss': True,         # 自动止损
    'auto_take_profit': True,       # 自动止盈
    'min_trade_amount': 5000,       # 最小交易金额
}
```

## 💡 最佳实践

### 1. 仓位管理建议
- 单只股票仓位不超过20%
- 总仓位不超过80%
- 保留至少20%现金应对突发情况

### 2. 风险控制建议
- 必须设置止损位（建议5-10%）
- 设置合理的止盈位（建议10-20%）
- 启用自动止损功能

### 3. 监测参数建议
- 监测间隔：5-30分钟（日内交易）
- 进场区间：设置合理的价格范围
- 及时更新关键位置

### 4. 测试建议
- 先用小仓位测试
- 验证连接和下单功能
- 确认止损止盈逻辑正确

## ⚠️ 风险提示

### 重要警告
1. **实盘交易风险**：自动交易涉及真实资金，请谨慎使用
2. **网络延迟**：可能导致下单延迟或失败
3. **系统故障**：监测服务中断可能错过交易时机
4. **价格滑点**：实际成交价可能与预期不同
5. **市场风险**：量化交易无法规避市场系统性风险

### 安全建议
1. ✅ 使用专门的测试账户进行测试
2. ✅ 设置合理的单笔交易限额
3. ✅ 定期检查持仓和资金状态
4. ✅ 保持人工监控，不要完全依赖自动化
5. ✅ 及时处理异常通知和错误

## 🛠️ 故障排除

### 连接失败
- 检查MiniQMT客户端是否启动
- 确认账户已登录
- 验证账户ID是否正确
- 检查网络连接

### 下单失败
- 检查资金是否充足
- 确认股票代码格式正确
- 验证交易时间（交易日9:30-15:00）
- 检查仓位限制

### 交易未执行
- 确认量化功能已启用
- 检查MiniQMT连接状态
- 验证监测服务是否运行
- 查看通知记录中的错误信息

## 📊 技术架构

```
监测服务 (monitor_service.py)
    ↓
价格触发检测 (_check_trigger_conditions)
    ↓
量化交易执行 (_execute_quant_trade)
    ↓
MiniQMT接口 (miniqmt_interface.py)
    ↓
订单执行 (execute_strategy_signal)
    ↓
MiniQMT客户端 (真实交易)
```

## 🔄 更新日志

### v1.0.0 (当前版本)
- ✅ 实现MiniQMT预留接口
- ✅ 支持自动买卖交易
- ✅ 集成监测触发机制
- ✅ 添加量化配置界面
- ✅ 实现仓位管理功能
- ✅ 支持多种订单类型

### 未来规划
- 🔜 支持更多交易策略
- 🔜 添加回测功能
- 🔜 优化仓位算法
- 🔜 增加风控规则
- 🔜 支持批量操作

## 📞 技术支持

如有问题，请查看：
1. 系统日志输出
2. MiniQMT客户端日志
3. 通知记录中的详细信息

---

**免责声明**：本系统仅供学习和研究使用，不构成任何投资建议。量化交易涉及真实资金风险，请谨慎使用并自行承担投资风险。

