# 🤖 量化交易功能快速指南

## 简介

本系统已为监测板块增加MiniQMT量化交易预留接口，实现监测价格触发后自动执行交易的功能。

## 核心功能

### ✅ 已实现功能
1. **自动交易执行** - 价格触发后自动下单
2. **仓位管理** - 智能控制交易仓位
3. **风险控制** - 自动止损止盈
4. **订单管理** - 完整的订单生命周期管理
5. **持仓监控** - 实时查看持仓和盈亏
6. **多种订单类型** - 支持市价单、限价单、止损单

### 🔧 新增模块
- `miniqmt_interface.py` - MiniQMT接口核心模块
- `MINIQMT_INTEGRATION_GUIDE.md` - 详细集成指南

### 📝 更新模块
- `monitor_db.py` - 增加量化配置字段（quant_enabled, quant_config）
- `monitor_service.py` - 集成量化交易执行逻辑
- `monitor_manager.py` - 添加量化配置界面
- `config.py` - 添加MiniQMT配置选项
- `README.md` - 更新功能说明和文档

## 快速开始

### 1. 配置环境变量

编辑 `.env` 文件，添加以下配置：

```bash
# 启用MiniQMT量化交易
MINIQMT_ENABLED=true
MINIQMT_ACCOUNT_ID=your_account_id
MINIQMT_HOST=127.0.0.1
MINIQMT_PORT=58610
```

### 2. 启动MiniQMT客户端

1. 启动MiniQMT客户端程序
2. 登录你的交易账户
3. 确保API服务已开启

### 3. 在系统中启用量化

1. 运行系统：`python run.py`
2. 进入"📊 实时监测"板块
3. 在"🤖 MiniQMT量化交易"区域点击"连接MiniQMT"
4. 看到"✅ 已连接"提示即可

### 4. 添加量化监测

#### 添加新股票：
1. 点击"添加股票监测"
2. 填写股票代码和关键位置
3. 勾选"启用量化自动交易"
4. 设置量化参数：
   - 最大仓位比例：建议0.2（20%）
   - 自动止损：建议勾选
   - 自动止盈：建议勾选
5. 点击"添加监测"

#### 编辑现有股票：
1. 找到目标股票卡片
2. 点击"编辑"
3. 勾选"启用量化自动交易"
4. 配置参数后保存

## 交易逻辑

### 自动交易触发条件

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

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

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

## 安全建议

### ⚠️ 风险提示
1. 自动交易涉及真实资金，请谨慎使用
2. 建议先用测试账户测试功能
3. 设置合理的仓位限制（建议单股不超过20%）
4. 必须设置止损位（建议5-10%）
5. 保持人工监控，不要完全依赖自动化

### ✅ 最佳实践
1. **小仓位测试** - 先用小额资金测试
2. **严格止损** - 必须设置止损保护
3. **合理仓位** - 单股不超过20%，总仓位不超过80%
4. **定期检查** - 定期查看持仓和订单状态
5. **及时调整** - 根据市场变化及时调整策略

## 界面功能

### 监测状态栏
- **🟢 运行中** / **🔴 已停止** - 监测服务状态
- **监测股票** - 当前监测股票数量
- **待处理通知** - 待处理的通知数量
- **🤖 QMT在线** / **🤖 QMT离线** - MiniQMT连接状态

### MiniQMT状态面板
- **连接状态** - 显示是否已连接到MiniQMT
- **账户ID** - 当前交易账户
- **量化统计** - 启用量化的股票数量
- **量化监测列表** - 显示所有启用量化的股票

### 股票卡片
每个监测股票卡片会显示：
- **基本信息** - 代码、名称、当前价格
- **关键位置** - 进场区间、止盈位、止损位
- **监测状态** - 监测间隔、最后检查时间、通知状态
- **量化状态** - 🟢 启用 / 🔴 禁用

## 预留接口说明

### MiniQMTInterface 类

系统提供了完整的MiniQMT接口类，支持以下功能：

```python
# 连接管理
miniqmt.connect(account_id)        # 连接到MiniQMT
miniqmt.disconnect()                # 断开连接
miniqmt.is_connected()              # 检查连接状态

# 账户信息
miniqmt.get_account_info()          # 获取账户信息
miniqmt.get_positions()             # 获取所有持仓
miniqmt.get_position(symbol)        # 获取单个持仓

# 交易下单
miniqmt.place_order(                # 下单
    symbol, action, quantity, 
    price, order_type
)
miniqmt.cancel_order(order_id)      # 撤单
miniqmt.get_order_status(order_id)  # 查询订单状态

# 策略执行
miniqmt.execute_strategy_signal(    # 执行策略信号
    stock_id, symbol, signal, 
    position_size
)

# 风险管理
miniqmt.calculate_position_size()   # 计算仓位大小
miniqmt.get_risk_metrics()          # 获取风险指标
miniqmt.validate_trade()            # 验证交易可行性
```

### 对接真实交易

当前接口为预留接口，要对接真实交易，需要：

1. 安装MiniQMT Python SDK：
```bash
pip install xtquant
```

2. 在 `miniqmt_interface.py` 中取消注释相关代码：
```python
# 例如在 connect() 方法中
from xtquant import xtdata
xtdata.connect()

# 在 place_order() 方法中
from xtquant import xttrader
order_id = xttrader.order_stock(...)
```

3. 参考MiniQMT官方文档完成具体对接

## 常见问题

### Q1: MiniQMT连接失败？
A: 检查以下几点：
- MiniQMT客户端是否启动
- 账户是否已登录
- 账户ID是否正确
- 网络连接是否正常

### Q2: 量化交易没有执行？
A: 检查以下几点：
- 量化功能是否已启用
- MiniQMT是否已连接
- 监测服务是否在运行
- 是否在交易时间内
- 查看通知记录中的错误信息

### Q3: 如何测试量化功能？
A: 建议步骤：
1. 使用测试账户
2. 设置小额交易金额
3. 设置宽松的触发条件
4. 观察订单执行情况
5. 确认逻辑无误后再使用实盘

### Q4: 仓位如何控制？
A: 系统提供多层仓位控制：
- 单股最大仓位比例（配置时设置）
- 最小交易金额（默认5000元）
- A股100股为一手的限制
- 可用资金检查

## 技术支持

### 详细文档
- 完整集成指南：`MINIQMT_INTEGRATION_GUIDE.md`
- 系统说明：`README.md`
- 快速启动：`QUICK_START.md`

### 问题反馈
如遇到问题，请：
1. 查看终端日志输出
2. 查看MiniQMT客户端日志
3. 查看通知记录中的详细信息
4. 参考详细集成指南

---

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

