238 lines
6.4 KiB
Markdown
238 lines
6.4 KiB
Markdown
# 🤖 量化交易功能快速指南
|
||
|
||
## 简介
|
||
|
||
本系统已为监测板块增加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. 参考详细集成指南
|
||
|
||
---
|
||
|
||
**免责声明**:本系统仅供学习研究使用,量化交易涉及真实资金风险,请谨慎使用并自行承担投资风险。
|
||
|