Lazy loaded image
大QMT外部调用,web服务桥接大QMT行情数据
字数 2210阅读时长 6 分钟
2026-6-2
2026-6-2
type
Post
status
Published
date
Jun 2, 2026 12:41
slug
大QMT外部调用,web服务桥接大QMT行情数据
summary
程序小店:
tags
代码与效率
大QMT
QMT
量化
category
代码与效率
icon
password
语言
程序小店:

快速概览与目标

  1. 在外部 Python 环境通过 HTTP 调用大QMT 的桥接服务,获取行情数据(tick、1m、5m、日线、分时等)。
  1. 将返回的 JSON 统一转换为 pandas.DataFrame,方便像 akshare 一样直接打印、保存、分析、画图。
  1. 可选:把策略放在大QMTserver 中,通过 HTTP 将执行能力服务化,支持远程触发和管理。

使用前提

  1. 在大QMT 内置 Python 中启动桥接服务(示例):
默认桥接地址:
  1. 外部环境安装 pandas:
notion image

通用基础代码(桥接侧)

下面的代码是所有示例的基础,建议保存为脚本,例如 qmt_bridge_dataframe_demo.py

行情字段与周期说明(要点)

  1. 大QMT 提供的字段远不止 OHLCV,常见扩展字段包括 amount, preClose, suspendFlag, openInterest, transactionNum, askPrice/askVol/bidPrice/bidVol 等。
  1. period 常见值:tick, 1m, 5m, 15m, 30m, 60m, 1d, 1w, 1mon, 1y, 以及 Level2 相关如 l2quote, l2transaction 等。

示例:获取单只证券的 tick 五档行情(单行 DataFrame)

保存 tick 表

获取分时图(/market 返回的 chart)

保存分时表

获取历史行情(/history_data)

推荐字段组合(可直接复制使用)

  • 基础 K 线字段: time,open,high,low,close,volume
  • K 线增强字段: time,open,high,low,close,volume,amount,preClose,suspendFlag
  • 期货/期权字段: time,open,high,low,close,volume,amount,settle,openInterest
  • Tick 扩展字段: time,stime,lastPrice,open,high,low,lastClose,volume,amount,transactionNum
  • Tick 五档字段: time,stime,lastPrice,askPrice,askVol,bidPrice,bidVol

获取 1 分钟/5 分钟/日线示例

获取更完整的 tick 或五档表

说明:askPrice/askVol/bidPrice/bidVol 返回的是列表列,pandas 会把它们保存在单元格中;如需展开成多列,可再做二次拆分。

批量获取多只证券日线并合并

获取买入力(buying_power)

一次性测试脚本(便于接入验收)

桥接接口一览(用途与适合场景)

  • /tick:轻量五档行情、最新价、买入力结构;适合 高频刷新、盘中手动交易、单行 DataFrame。
  • /market:完整行情与分时图(chart);适合 页面刷新、盘中走势分析。
  • /history_data:支持 tick/1m/5m/15m/30m/60m/1d 等历史数据,并可通过 fields 扩展更多字段;适合 外部策略研究、DataFrame 批量分析、保存为 CSV/Excel。

常见问题与排查要点

  1. 桥接返回“未就绪”:请确认大QMT 内置 Python 的 big_data_qmt_app.py 或桥接服务已运行,端口正确。
  1. DataFrame 为空:检查证券代码、周期、交易时段、以及是否在 fields 中请求了不支持的字段。
  1. 返回慢或超时:检查大QMT 运行负载、网络、以及桥接服务的超时设置。

推荐上手顺序(快速验收)

  1. 健康检查:/health
  1. 获取 tick 表
  1. 获取 1 分钟表
  1. 获取 5 分钟表
  1. 获取日线表

代码结构概览

  • HTTP 接口处理(路由解析、参数校验、鉴权)
  • 任务调度与执行(同步/异步执行、任务队列)
  • 日志与异常处理
  • 配置与环境管理

主要模块详解

HTTP 接口层

该层负责接收外部请求,解析 JSON 参数并进行基本校验,随后将任务发往执行模块。常见端点:
  • POST /run — 触发策略执行,返回 task_id(若异步)或执行结果(若同步)
  • GET /status?task_id=... — 查询任务执行状态
  • GET /history?strategy=... — 查询历史运行结果
实现要点:建议使用 Flask 或 FastAPI;对外 API 应引入 token/签名鉴权并配合 IP 白名单与 TLS。

调度与执行适配

接到执行请求后,服务器会根据配置找到对应的策略脚本,并在受控 Python 环境中运行它。执行方式应支持:
  • 使用 subprocess 调用独立进程以保证隔离性;
  • 使用异步任务队列(如 Celery 或自研队列)处理耗时任务并返回 task_id;
关键细节包括传参映射、最大并发/超时控制、执行隔离与资源限制。

日志与错误处理

日志应包含请求元信息、执行输出、异常堆栈与耗时统计;错误以结构化 JSON 返回,便于调用侧解析和自动化处理。

Mermaid 流程图(服务化执行流程)

潜在限制与改进建议

  1. 安全性:不要仅依赖简单 token,建议签名机制 + IP 白名单 + TLS;
  1. 可扩展性:使用消息队列与工作进程池解耦长任务;
  1. 可观测性:增加 Prometheus 指标导出,便于监控请求量、成功率与响应时间;
  1. 测试与 CI:为关键流程编写集成测试(模拟请求与子进程),并在 CI 中运行。
上一篇
我能提供的服务支持
下一篇
obsidian插件-yuhanbo-opencode:OpenCode 个人AI助手

评论
Loading...