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 策略里运行即可。

相关推荐
zzzzzz31016 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode16 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒3 天前
TShark:基础知识
linux
AlfredZhao3 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334664 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪4 天前
linux 拷贝文件或目录到指定的位置
linux
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql