QMT 量化交易:北交所数据获取与实时涨跌统计完整教程

最近北交所交易热度持续攀升,不少量化爱好者都在关注QMT 如何对接北交所数据 、如何获取京市 A 股列表、如何做实时行情统计。本文直接给可运行的代码示例,一步到位实现沪深京全市场数据获取 + 北交所独立数据调用 + 实时涨跌家数统计。

还在用"锤子线"选股?这个1975年的算法,能让你一键找到走势"双胞胎"!

一、前言

QMT 原生支持北交所(京市 A 股)数据与交易,不需要额外插件,只需要正确调用板块名称即可。

  • 全市场:沪深京 A 股
  • 北交所单独:京市 A 股

下面直接上可复制运行的代码。


二、获取沪深京所有 A 股股票列表

复制代码
import xtquant.xtdata as xtdata
from datetime import datetime, timedelta
import time

def get_all_stock_codes():
    """获取沪深京所有A股股票代码"""
    all_stocks = xtdata.get_stock_list_in_sector("沪深京A股")
    return all_stocks

if __name__ == '__main__':
    # 打印沪深京全部A股
    print("=== 沪深京A股全部股票列表 ===")
    codes = get_all_stock_codes()
    print(codes)
    print("总数:", len(codes))

三、实时统计沪深京全市场涨跌家数

复制代码
import xtquant.xtdata as xtdata

def get_all_stock_codes():
    """获取沪深京所有A股股票代码"""
    all_stocks = xtdata.get_stock_list_in_sector("沪深京A股")
    return all_stocks

def get_realtime_market_status():
    """
    实时统计涨跌家数(盘中使用)
    返回: (上涨家数, 下跌家数, 平盘家数, 无效数据家数)
    """
    stock_codes = get_all_stock_codes()
    quotes = xtdata.get_full_tick(stock_codes)
    
    up = 0
    down = 0
    unchanged = 0
    invalid = 0
    
    for code in stock_codes:
        data = quotes.get(code, {})
        last_price = data.get("lastPrice")
        pre_close = data.get("lastclose")
        
        # 过滤无效数据
        if last_price is None or pre_close is None or pre_close == 0:
            invalid += 1
            continue
        
        if last_price > pre_close:
            up += 1
        elif last_price < pre_close:
            down += 1
        else:
            unchanged += 1
            
    return up, down, unchanged, invalid

if __name__ == '__main__':
    # 先打印沪深A股做对比
    print(xtdata.get_stock_list_in_sector("沪深A股"))
    
    print("\n=== 沪深京实时涨跌统计 ===")
    up, down, unchanged, invalid = get_realtime_market_status()
    print(f"上涨:{up}")
    print(f"下跌:{down}")
    print(f"平盘:{unchanged}")
    print(f"无效数据:{invalid}")

四、单独获取北交所(京市 A 股)股票列表

复制代码
from xtquant import xtdata

def download_sector_data():
    """解决板块数据下载卡顿问题"""
    client = xtdata.get_client()
    client.down_all_sector_data()

if __name__ == '__main__':
    # 下载全板块数据
    download_sector_data()
    
    # 查看所有板块
    sector_list = xtdata.get_sector_list()
    print("=== 全部板块列表 ===")
    print(sector_list)
    
    # 获取北交所股票
    print("\n=== 北交所(京市A股)股票列表 ===")
    bj_stocks = xtdata.get_stock_list_in_sector("京市A股")
    print(bj_stocks)
    print("北交所股票总数:", len(bj_stocks))

五、关键说明

  1. 板块名称必须正确
    • 全市场:沪深京A股
    • 仅北交所:京市A股
  2. 运行前先下载板块数据 使用 down_all_sector_data() 避免获取不到股票列表。
  3. **实时行情用 get_full_tick**适合盘中快速拉取全市场最新价、昨收价。
  4. 数据过滤很重要 跳过 lastPrice/lastclose 为空或为 0 的无效数据,避免统计错误。

六、风险提示

  1. 北交所股票普遍流动性较低、波动更大、风险等级更高,普通投资者需审慎参与。
  2. 量化程序仅为数据获取与统计工具,不构成投资建议、不承诺收益。
  3. 行情接口依赖 QMT 与券商数据服务,可能存在延迟、丢包、异常,不可直接用于高频交易。
  4. 自动运行策略可能存在逻辑 BUG、网络中断、权限不足等问题,务必先在模拟环境充分测试。
  5. 历史数据与实时统计不代表未来表现,不能作为买卖依据。

七、免责声明

  1. 本文所有代码与教程仅供学习交流使用,不构成任何投资建议、投资咨询或交易邀约。
  2. 投资者据此操作,盈亏自负,风险自担,作者与平台不承担任何直接或间接法律责任。
  3. 股市有风险,投资需谨慎。量化交易、程序化交易涉及技术与市场双重风险,请在自身风险承受能力范围内操作。
  4. 请遵守交易所及券商交易规则,合规使用量化工具。

八、总结

QMT 获取北交所数据非常简单,核心就是正确使用 "京市 A 股" 板块名,配合全市场 "沪深京 A 股",就能无缝做北交所量化、打新、实时监控。

需要的朋友直接复制代码到 QMT 策略里运行即可。

相关推荐
翼龙云_cloud5 小时前
亚马逊云服务器服务代理商:Bedrock 实践经验 Serverless 架构下的 AI 自动化落地
服务器·架构·serverless·云计算·aws
忆挽篱笙歌6 小时前
环境变量,本地变量
linux·运维·服务器
Vex2une7 小时前
Docker Desktop WSL2后端:2026年性能调优与避坑实战指南
windows·docker·desktop·gpu容器·容器开发·virtiofs·buildkit
吹什么轩8 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
张宇Joaquin8 小时前
AMD uProf 工具采集微架构特征使用介绍
服务器
殷忆枫8 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
钱栈up8 小时前
搜狗中文模式打不出顿号?在 Windows 沙箱里探测输入法配置的踩坑实录
windows
第404号工位8 小时前
手机到底有没有偷听我们?我抓包了 72 小时,抓到了真凶
linux·人工智能·架构
老李IT笔记8 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
字节跳动开源8 小时前
ByteDance 2026 上半年 Linux 内核贡献回顾
linux·开源