最近北交所交易热度持续攀升,不少量化爱好者都在关注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))
五、关键说明
- 板块名称必须正确
- 全市场:
沪深京A股 - 仅北交所:
京市A股
- 全市场:
- 运行前先下载板块数据 使用
down_all_sector_data()避免获取不到股票列表。 - **实时行情用
get_full_tick**适合盘中快速拉取全市场最新价、昨收价。 - 数据过滤很重要 跳过
lastPrice/lastclose为空或为 0 的无效数据,避免统计错误。
六、风险提示
- 北交所股票普遍流动性较低、波动更大、风险等级更高,普通投资者需审慎参与。
- 量化程序仅为数据获取与统计工具,不构成投资建议、不承诺收益。
- 行情接口依赖 QMT 与券商数据服务,可能存在延迟、丢包、异常,不可直接用于高频交易。
- 自动运行策略可能存在逻辑 BUG、网络中断、权限不足等问题,务必先在模拟环境充分测试。
- 历史数据与实时统计不代表未来表现,不能作为买卖依据。
七、免责声明
- 本文所有代码与教程仅供学习交流使用,不构成任何投资建议、投资咨询或交易邀约。
- 投资者据此操作,盈亏自负,风险自担,作者与平台不承担任何直接或间接法律责任。
- 股市有风险,投资需谨慎。量化交易、程序化交易涉及技术与市场双重风险,请在自身风险承受能力范围内操作。
- 请遵守交易所及券商交易规则,合规使用量化工具。
八、总结
QMT 获取北交所数据非常简单,核心就是正确使用 "京市 A 股" 板块名,配合全市场 "沪深京 A 股",就能无缝做北交所量化、打新、实时监控。
需要的朋友直接复制代码到 QMT 策略里运行即可。