miniqmt

$npx mdskill add lzwme/finance-quant-skills/miniqmt

Connect to MiniQMT for A-share/futures/options data and trading via XtQuant.

  • Retrieve real-time K-line, tick, and financial data from MiniQMT.
  • Depends on XtQuant Python library and MiniQMT client installation.
  • Uses xtdata for market data and xttrader for order execution.
  • Returns data as pandas DataFrames or dicts; executes trades via xttrader.

SKILL.md

.github/skills/miniqmtView on GitHub ↗
---
name: miniqmt
description: MiniQMT 迅投量化交易接口,基于 XtQuant Python 库,支持 A 股/期货/期权的行情数据获取(K线、分笔、财务数据等)和交易下单(报单、撤单、查询资产/委托/持仓)。当用户提及 miniqmt、xtquant、迅投、获取实时行情、量化交易下单、回测数据获取,或需要连接 MiniQMT 客户端进行程序化交易时使用
metadata: {"openclaw":{"emoji":"📈","requires":{"bins":["python3"]}}}
---

# MiniQMT 量化交易技能

## 任务目标
- 本 Skill 用于:通过 XtQuant 库连接 MiniQMT 客户端,获取 A 股/期货/期权行情数据,执行量化交易操作
- 能力包含:
  - **行情模块 (xtdata)**:K线数据、分笔数据、实时行情订阅、财务数据、板块分类、ETF信息、新股申购、交易日历
  - **交易模块 (xttrader)**:股票/期货/期权下单、撤单、查询资产/委托/持仓、资金划拨、信用交易、约券
- 触发条件:用户提及 miniqmt、xtquant、迅投、获取行情、量化交易、下单交易时使用

## 前置准备

### MiniQMT 环境要求
- **客户端安装**:需安装迅投极速交易终端,并启动 MiniQMT(支持模拟/实盘)
- **Python 库**:`pip install xtquant`
- **路径配置**:MiniQMT 安装目录下的 `userdata_mini` 路径用于 xttrader 连接

### 目录结构
```
QMT安装目录\
├── bin.x64\XtMiniQmt.exe # MiniQMT 主程序
├── userdata_mini\        # 用户数据目录(xttrader 连接路径)
│   ├── xqtrader.ini      # 交易配置
│   └── xtdatacenter.ini  # 行情配置
```

### 核心概念

#### 证券代码格式
- **股票**:6位数字 + 市场后缀,如 `600000.SH`(上海)、`000001.SZ`(深圳)
- **期货**:品种代码 + 合约月份,如 `rb2405.SF`(螺纹钢)
- **期权**:标的代码 + 行权月份,如 `510050.SH`(上证50ETF期权)

#### 周期类型 (period)
| 周期 | 说明 | 周期 | 说明 |
|------|------|------|------|
| `tick` | 分笔数据 | `1q` | 季度线 |
| `1m` | 1分钟线 | `1hy` | 半年线 |
| `5m` | 5分钟线 | `1y` | 年线 |
| `15m` | 15分钟线 | `1w` | 周线 |
| `30m` | 30分钟线 | `1d` | 日线 |
| `1h` | 1小时线 | `1mon` | 月线 |

#### 复权类型 (dividend_type)
- `none` - 不复权
- `front` - 前复权
- `back` - 后复权
- `front_ratio` - 等比前复权
- `back_ratio` - 等比后复权

#### 交易市场 (market)
| 市场 | 常量 | 市场 | 常量 |
|------|------|------|------|
| 上海 | `xtconstant.SH_MARKET` | 中金所 | `xtconstant.MARKET_ENUM_INDEX_FUTURE` |
| 深圳 | `xtconstant.SZ_MARKET` | 上期所 | `xtconstant.MARKET_ENUM_SHANGHAI_FUTURE` |
| 北交所 | `xtconstant.MARKET_ENUM_BEIJING` | 郑商所 | `xtconstant.MARKET_ENUM_ZHENGZHOU_FUTURE` |
| 大商所 | `xtconstant.MARKET_ENUM_DALIANG_FUTURE` | 广期所 | `xtconstant.MARKET_ENUM_GUANGZHOU_FUTURE` |

#### 账号类型 (account_type)
| 类型 | 常量 | 类型 | 常量 |
|------|------|------|------|
| 股票 | `xtconstant.SECURITY_ACCOUNT` | 沪港通 | `xtconstant.HUGANGTONG_ACCOUNT` |
| 期货 | `xtconstant.FUTURE_ACCOUNT` | 深港通 | `xtconstant.SHENGANGTONG_ACCOUNT` |
| 信用 | `xtconstant.CREDIT_ACCOUNT` | 期货期权 | `xtconstant.FUTURE_OPTION_ACCOUNT` |
| 股票期权 | `xtconstant.STOCK_OPTION_ACCOUNT` | - | - |

## 操作步骤

1. **确定需求** — 识别是行情数据获取还是交易操作
2. **选择模块** — xtdata 用于行情,xttrader 用于交易
3. **调用脚本** — 根据数据类型选择对应脚本
4. **解析结果** — 智能体分析返回的 JSON 格式数据

### 意图识别映射示例

| 用户提问 | 对应功能 | 调用方式 |
|---------|---------|---------|
| "贵州茅台实时股价" | 实时行情快照 | xtdata.get_full_tick |
| "平安银行K线数据" | K线数据 | xtdata.get_market_data |
| "招商银行财务指标" | 财务报表 | xtdata.get_financial_data |
| "半导体板块成分股" | 板块成分股 | xtdata.get_stock_list_in_sector |
| "今日可转债信息" | ETF/可转债数据 | xtdata.get_cb_info |
| "新股申购" | 新股信息 | xtdata.get_ipo_info |
| "下单买入平安银行" | 交易下单 | xttrader.order_stock |
| "查询持仓" | 持仓查询 | xttrader.query_stock_positions |
| "撤单" | 撤单操作 | xttrader.cancel_order_stock |

## 使用示例

### 示例1:获取股票实时行情
```python
import xtdata

# 获取全推行情快照
ticks = xtdata.get_full_tick(['600519.SH', '000001.SZ'])

# 订阅单股实时行情
def on_data(datas):
    for code in datas:
        print(code, datas[code])

xtdata.subscribe_quote('600519.SH', period='tick', callback=on_data)
xtdata.run()
```

### 示例2:获取K线历史数据
```python
import xtdata

# 下载历史K线数据
xtdata.download_history_data2(['600519.SH'], period='1d', start_time='')

# 获取K线数据
data = xtdata.get_market_data(
    field_list=['open', 'high', 'low', 'close', 'volume'],
    stock_list=['600519.SH'],
    period='1d',
    start_time='20240101',
    end_time='',
    count=100,
    dividend_type='front'
)
```

### 示例3:交易下单
```python
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
from xtquant import xtconstant

# 配置路径和会话
path = 'D:\\迅投极速交易终端\\userdata_mini'
session_id = 123456
xt_trader = XtQuantTrader(path, session_id)

# 创建账号对象
acc = StockAccount('1000000365')  # 替换为实际账号

# 连接交易
xt_trader.start()
connect_result = xt_trader.connect()
subscribe_result = xt_trader.subscribe(acc)

# 下单买入
order_id = xt_trader.order_stock(
    acc,
    '600519.SH',
    xtconstant.STOCK_BUY,
    100,  # 100股
    xtconstant.FIX_PRICE,
    1800.0,  # 价格
    'strategy1',
    'remark'
)

# 查询资产
asset = xt_trader.query_stock_asset(acc)
print(f"可用资金: {asset.cash}")
```

### 示例4:订阅行情并实时处理
```python
import xtdata

def on_tick_data(datas):
    for code in datas:
        tick = datas[code]
        print(f"{code}: 现价={tick['lastPrice']}, 成交量={tick['volume']}")

# 订阅多只股票
xtdata.subscribe_whole_quote(['SH', 'SZ'], callback=on_tick_data)
xtdata.run()
```

## 资源索引

### 行情数据脚本

- **行情快照**:`python scripts/market_data.py snapshot --code 600519.SH`
- **K线数据**:`python scripts/market_data.py kline --code 600519.SH --period 1d --count 100`
- **分笔数据**:`python scripts/market_data.py tick --code 600519.SH --count 100`
- **实时行情**:`python scripts/market_data.py full_tick --codes 600519.SH,000001.SZ`

### 板块与财务脚本

- **板块列表**:`python scripts/sector_data.py sector_list`
- **板块成分股**:`python scripts/sector_data.py sector_stocks --sector 半导体`
- **财务数据**:`python scripts/financial_data.py financial --code 600519.SH --tables Balance,Income`

### 交易脚本

- **下单**:`python scripts/trade.py order --code 600519.SH --type buy --volume 100 --price 1800.0`
- **撤单**:`python scripts/trade.py cancel --order_id 12345`
- **查询持仓**:`python scripts/trade.py positions`
- **查询委托**:`python scripts/trade.py orders`
- **查询资产**:`python scripts/trade.py asset`
- **查询成交**:`python scripts/trade.py trades`

### 参考文档

- [xtdata 行情模块 API](references/xtdata.md)(何时读取:需要查看行情数据接口时)
- [xtdata行情数据字段与数据字典](references/xtdata_dict.md) (何时读取:需要查看行情数据字段、数据字典时)
- [xttrader 交易模块 API](references/xttrader.md)(何时读取:需要查看交易接口、数据结构说明时)
- [安装与下载指南](references/download_xtquant.md)(何时读取:首次安装 XtQuant 或遇到安装问题时)
- [常见问题](references/question_function.md)(何时读取:遇到常见问题时)
- [代码示例](references/code_examples.md)(何时读取:需要参考完整代码示例时)
- [更新日志](references/changelog.md)(何时读取:查看版本更新历史时)

## 注意事项

### 环境要求
- **必须运行 MiniQMT**:xttrader 交易模块需要 MiniQMT 客户端在后台运行
- **路径配置**:确保 `userdata_mini` 路径正确,否则连接会失败
- **行情订阅限制**:单股订阅建议不超过 50 只,较多时建议使用全推数据

### 数据获取注意
- **数据补下载**:历史数据需先通过 `download_history_data2` 下载
- **权限限制**:Level2 数据需要终端有相应权限
- **时间格式**:K线时间参数格式为 `'20240101'` 或 `'20240101000000'`

### 交易注意
- **账号格式**:股票账号直接使用资金账号字符串,期货账号需指定 `'FUTURE'`
- **委托数量**:股票以"股"为单位,债券以"张"为单位,期货以"手"为单位
- **订单编号**:下单成功后返回正整数 order_id,-1 表示失败
- **异步操作**:交易操作支持同步/异步两种模式,异步模式需配合回调使用

### 性能优化
- **批量请求**:多只股票数据建议使用 `get_market_data` 批量获取
- **缓存利用**:已订阅的数据会自动缓存,无需重复订阅
- **线程安全**:xttrader 支持多策略,但需使用不同的 session_id

More from lzwme/finance-quant-skills

SkillDescription
akquant生成 akquant 框架的可执行量化策略代码,涵盖数据接口、事件驱动、风控与优化。当用户需要开发量化策略、配置回测环境、设置风控规则、进行参数优化、实现横截面轮动策略,或提及 akquant 时使用
baostockBaoStock 免费开源 A 股数据平台,无需注册、无需 API Key,支持股票行情、K线、财务数据、行业分类、指数成分股查询。当用户提及 baostock、需要获取A股历史行情、财务报表、交易日历,或需要**免费、免注册**的A股数据时使用。与 tushare(数据更全但需注册)和 jqdatasdk(聚宽数据)不同,baostock 完全免费无限制,适合快速入门和低成本数据需求。
equity-researcher机构级投研报告生成技能。覆盖中国A股、港股、美股上市公司。输出模式:1)投资速览:3-5页,含公司概览、核心财务指标、估值倍数、投资逻辑与风险因素;2)深度研报:≥25页,含行业分析、产业链图谱、三表模型、DCF估值、情景分析与敏感性测试。触发条件:1)直接请求:分析/看看/研究/调研/介绍一下 + 公司名或股票;2)投资询问:你怎么看/能不能买/值得投吗/帮我看看/扒一扒 + 公司或股票;3)关键词:研报、投资简报、投资速览、公司一页纸、深度研报、深度研究、深度分析、个股分析、一页纸、速览、公司速览、投研报告;4)股票代码:标准格式(如 600519.SH、0700.HK、AAPL、TSLA、BYD)。意图不明确时主动询问输出模式,禁止默认推断。
joinquant-docs聚宽(JoinQuant)官网策略开发指南,涵盖回测、模拟交易、数据 API、交易函数、因子与技术指标。当用户编写聚宽策略、回测、模拟盘、查询聚宽 API、get_price/order/run_daily、Alpha 因子、技术指标,或提及 joinquant、聚宽、jqdata 策略时使用。本地数据获取请用 jqdatasdk 技能。
jqdatasdk聚宽(JoinQuant)本地数据 SDK,提供 A 股行情、历史K线、财务数据、指标数据等,与聚宽官网数据同源。当用户提及 jqdatasdk、聚宽数据、需要获取A股数据,或已注册聚宽账号时使用。与 baostock(免费)和 tushare(数据最全)不同,jqdatasdk 需注册聚宽账号获取 Token,适合已在使用聚宽平台的用户。本地数据获取请用本技能,聚宽官网策略开发请用 joinquant-docs 技能。
pywencai同花顺问财数据查询:使用中文自然语言查询A股、指数、基金、港美股、可转债等市场数据;当用户需要通过自然语言从问财获取选股、财务、资金流、技术指标等数据时使用。
qmt-docsQMT(迅投极速策略交易系统)Python 策略开发完整指南。涵盖策略编写、回测、实盘交易、API参考和代码示例。当用户需要开发 QMT 量化策略、查询 QMT API、从聚宽迁移至 QMT、编写实盘交易程序,或提及 QMT、迅投策略、QMT 回测时使用。
rqalphaRQAlpha 米筐开源事件驱动回测框架。支持A股和期货,模块化架构,可自由扩展;当用户需要快速回测A股/期货策略、使用内置数据(download-bundle)、开发Mod插件,或提及 rqalpha、米筐时使用。与 backtrader 相比,rqalpha 内置A股日线数据、安装更简便,适合快速验证;backtrader 更灵活、社区更大。若用户仅需数据获取而无回测需求,引导使用 baostock/akshare/tushare 等数据 Skill。
tdxquant通达信量化数据获取技能。当用户提及 tdxquant、通达信、TdxQuant、tqcenter,并且需要获取A股数据(行情快照、K线、财务、板块、可转债、新股、交易数据等)、查询交易日历、执行通达信公式、订阅行情、交易下单时使用