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

相关推荐
凯勒姆1 小时前
华为设备软考网工模板
服务器·网络·华为
赏金术士1 小时前
Kotlin 从入门到进阶 之Lambda & 集合高阶模块(四)
开发语言·windows·kotlin
Cat_Rocky1 小时前
Ingress-Nginx 全局超时配置及生效方式
java·服务器·nginx
lolo大魔王3 小时前
Linux列出文件和目录
linux·运维·服务器
H Journey3 小时前
网络编程:Boost.Asio实现跨平台的TCP服务器
服务器·网络·tcp/ip·boost.asio
zadyd3 小时前
vLLM Linux 双卡部署大模型服务器指南
linux·人工智能·python·机器学习·vllm
j_xxx404_3 小时前
Linux命名管道:跨进程通信实战指南|附源码
linux·运维·服务器·人工智能·ai
WiChP3 小时前
【V0.1B8】从零开始的2D游戏引擎开发之路
服务器·数据库·mysql
楼田莉子3 小时前
仿Muduo的高并发服务器:Http协议模块
linux·服务器·c++·后端·学习