用Python抓日内跳空缺口:QuantDash的实时选股器

用户头像mx_****zqklr
2026-07-20 发布

导言 / TL;DR

跳空高开通常意味着强烈的资金共识与基本面突变,是日内动量突破策略的黄金切入点。然而,在 9:30 开盘瞬间对全市场成百上千只股票进行高速扫描,传统爬虫数据源不仅速度跟不上,还容易因并发过大被封。本文教你如何用 Python 配合 QuantDash 毫秒级多股票快照接口,在开盘 1 分钟内迅速筛选出跳空缺口大于 2% 且成交量显著放大的强势股。


技术痛点拆解

开发日内跳空选股器时,核心难点在于**“开盘1分钟的时效性”**:

  • 单点请求延迟高:如果对 100 只自选股逐一用 HTTP 请求获取开盘价和昨日收盘价,循环请求需要耗时数十秒,早已错过了最佳建仓时机。
  • 数据源缺失历史对比:计算跳空不仅需要今天的开盘价(Open),还需要昨天的收盘价(Close)。很多实时行情 API 不提供昨日收盘价字段,逼得开发者必须额外查询一次历史K线,多耗费一倍时间。

极简解决方案(基于 QuantDash SDK)

QuantDash 的实时快照接口 qd.quotes.get 在单次响应中同时集成了“最新价、开盘价、昨日收盘价、成交量”等完整字段,一行代码即可完成多标的并行对比。

pip install quantdash pandas

以下为高并发多市场跳空缺口扫描脚本:

import pandas as pd
from quantdash import QuantDash

# 1. 初始化 QuantDash
qd = QuantDash(api_key="sk_xxxxx")

# 监控的目标股票池(涵盖A股、港股、美股)
TICKER_POOL = ["600519.SH", "300750.SZ", "00700.HK", "01211.HK", "TSLA.US", "NVDA.US"]

def scan_gap_openings(symbols, min_gap_pct=2.0):
    """
    扫描开盘跳空个股
    """
    print(f"[*] 正在拉取 {len(symbols)} 只标的的实时市场快照...")
  
    # 一键拉取批量快照
    df_quotes = qd.quotes.get(symbols=symbols, to_dataframe=True)
  
    if df_quotes is None or df_quotes.empty:
        print("[-] 未获取到有效的实时行情")
        return pd.DataFrame()
      
    # 计算跳空幅度 (%): (今日开盘价 - 昨日收盘价) / 昨日收盘价 * 100
    # 注:QuantDash 快照数据中,open_price 为今日开盘价,prev_close_price 为昨日收盘价
    df_quotes["open_price"] = df_quotes["open_price"].astype(float)
    df_quotes["prev_close_price"] = df_quotes["prev_close_price"].astype(float)
  
    df_quotes["gap_pct"] = (
        (df_quotes["open_price"] - df_quotes["prev_close_price"]) 
        / df_quotes["prev_close_price"] * 100
    )
  
    # 筛选向上跳空大于指定阈值的个股
    df_gaps = df_quotes[df_quotes["gap_pct"] >= min_gap_pct].copy()
  
    # 按照跳空幅度降序排列
    df_gaps.sort_values(by="gap_pct", ascending=False, inplace=True)
  
    return df_gaps[["symbol", "open_price", "prev_close_price", "gap_pct", "volume"]]

if __name__ == "__main__":
    try:
        # 扫描跳空高开幅度 >= 1.5% 的强势股票
        df_result = scan_gap_openings(TICKER_POOL, min_gap_pct=1.5)
        print(f"\n[+] 扫描完成。符合跳空高开条件的股票池:")
        print(df_result)
    except Exception as e:
        print(f"[-] 运行失败: {str(e)}")

数据输出样例

开盘 9:30 执行脚本后,输出的排好序的跳空股票池 DataFrame 结构如下:

[+] 扫描完成。符合跳空高开条件的股票池:
      symbol  open_price  prev_close_price  gap_pct    volume
2    TSLA.US      245.80            238.10     3.23  15240000
5    NVDA.US      128.50            125.00     2.80  24800000
1  300750.SZ      252.10            248.00     1.65    891200

AI 编程助手专属提示词

您可在 Cursor/Claude 中输入以下 Prompt,为该选股器追加成交量过滤器:

我目前使用 quantdash 实时行情进行跳空缺口选股。
请帮我升级这段代码:增加一个成交量倍数过滤器(Volume Ratio)。
要求当前的累计成交量(volume)必须大于过去 5 日平均成交量的 20% 以上,才算做“放量跳空”,以此过滤无资金关注的假突破。

总结与三步走指引

评论