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

相关推荐
小职boy8 小时前
不忘初心Windows系统工具箱下载 - 系统优化与维护工具(v1.1)
windows·系统·电脑软件·工具箱
RisunJan9 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯9 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
Mininglamp_27189 小时前
Claude Code 封禁中国开发者之后:本地 AI 编程工具的替代方案实测
开发语言·人工智能·windows·开源软件·ai-native
蓝天下的守望者10 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn10 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
贾斯汀frank10 小时前
C# 15 类型系统改进:Union Types
开发语言·windows·c#
2603_9547083111 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
其实防守也摸鱼11 小时前
蓝队相关知识学习(1)---常用堡垒机和服务器
服务器·功能测试·学习·网络安全·网络攻击模型·攻防对抗·蓝队
YHHLAI12 小时前
Agent 智能体开发实战 · 第四课:完整工具集 —— 打造 AI 编程 Agent 的工具箱
人工智能·windows·microsoft