Lazy loaded image
大QMT外部调用,web服务桥接大QMT行情数据
字数 2329阅读时长 6 分钟
2026-6-2
2026-6-3
type
Post
status
Published
date
Jun 2, 2026 12:41
slug
大QMT外部调用,web服务桥接大QMT行情数据
summary
视频:大QMT外部调用,web服务桥接大QMT行情数据_哔哩哔哩_bilibili
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...