ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

《Python 调用 A 股集合竞价异动 API:每天早盘资金信号》

《Python 调用 A 股集合竞价异动 API:每天早盘资金信号》 一、前言集合竞价(9:15 - 9:25)是 A 股一天行情的起点,竞价阶段的资金动向往往决定了当天的热点方向。主力资金经常会在竞价阶段通过大幅高开、竞价抢筹、涨停试盘等行为吸引市场注意力,如果能在 9:25 之后第一时间拿到这些信号,就能比普通投资者快一步。本文介绍一个可用的 JSON 接口,只需传入日期,即可获取当天全部 A 股的集合竞价异动清单,非常适合写 Python 脚本做早盘预警 / 策略回测 / 自选股监控。二、接口说明2.1 基本信息项目说明请求地址http://ddnsapi.top:1808/api/v1/request请求方式POST请求类型req_type warn_auction认证方式Headers中带上token返回格式JSON日期范围最近一个月内,格式yyyymmdd2.2 请求参数Pythondata { req_type: warn_auction, # 竞价异动 date: 20260713 # 要查询的日期 yyyymmdd }2.3 返回结构Python{ status: True, date: 20260713, fields: [ 股票名称, 股票代码, 异动类型, 匹配价, 竞价涨幅, 竞价量, 竞价金额 ], items: [ [日科化学, 300214, 大幅高开, 12.30, 20.00, 1286400, 15822720], [金利华电, 300069, 大幅高开, 41.42, 12.37, 927500, 38417050], [华特气体, 688268, 竞价抢筹,215.96, 10.62, 320127, 69134627], ... ] }字段含义对照表:字段类型含义股票名称strA 股简称股票代码str6 位代码(300/688/60/00 等)异动类型str共 10 种,详见下文解读匹配价float9:25 集合竞价最终撮合成交价竞价涨幅float相对昨收的涨跌百分比(正数高开,负数低开)竞价量int集合竞价成交量(股)竞价金额float集合竞价成交金额(元) 匹配价 × 竞价量三、完整 Python 代码Pythonimport requests # 全局配置 HEADERS { token: xxx # 请替换为自己的 token } URL_API http://ddnsapi.top:1808/api/v1/request TIMEOUT 5 def ddnsapi_post(data: dict) - dict: 通用 POST 请求封装,返回 JSON 结果。 try: resp requests.post(URL_API, datadata, timeoutTIMEOUT, headersHEADERS) if resp.status_code 200: return resp.json() print(f[请求失败] HTTP {resp.status_code}: {resp.text}) except requests.exceptions.Timeout: print(f[请求超时] {URL_API}) except requests.exceptions.RequestException as e: print(f[请求异常] {e}) return None def get_warn_auction(date: str) - dict: 获取指定日期的竞价异动数据。 return ddnsapi_post({req_type: warn_auction, date: date}) def filter_strong(items, min_amt30_000_000, min_change5.0): 筛选高优先级个股:竞价抢筹/大幅高开 金额够 涨幅够。 high_priority {竞价抢筹, 大幅高开, 涨停试盘} return [row for row in items if row[2] in high_priority and row[6] min_amt and row[4] min_change] if __name__ __main__: result get_warn_auction(20260713) if result and result.get(status): fields result.get(fields, []) items result.get(items, []) print(f\n 日期 {result.get(date)} 竞价异动 共 {len(items)} 条 ) print( | .join(fields)) print(- * 90) # 按竞价金额降序,取前 10 条展示 top10 sorted(items, keylambda r: r[6], reverseTrue)[:10] for row in top10: print( | .join(str(x) for x in row)) # 筛选高优先级 strong filter_strong(items) print(f\n【高优关注 {len(strong)} 条】(竞价抢筹/大幅高开 金额≥3000万 涨幅≥5%)) for row in sorted(strong, keylambda r: r[4], reverseTrue)[:10]: print(f {row[0]}({row[1]}) {row[2]} | 竞价涨幅 {row[4]}% | 金额 {row[6]/10000:.0f}万) else: print(未获取到数据,请检查 token / 日期 / 网络。)依赖安装Bashpip install requests四、运行结果示例Plain Text 日期 20260713 竞价异动 共 552 条 股票名称 | 股票代码 | 异动类型 | 匹配价 | 竞价涨幅 | 竞价量 | 竞价金额 ------------------------------------------------------------------------------------------ 东山精密 | 002384 | 竞价抢筹 | 237.58 | -1.95 | 1278406 | 303723700 中国卫通 | 601698 | 竞价抢筹 | 34.0 | 3.41 | 4534300 | 154166200 中科曙光 | 603019 | 买一剩余大 | 110.0 | 2.33 | 1827612 | 201037320 日科化学 | 300214 | 大幅高开 | 12.3 | 20.0 | 1286400 | 15822720 金利华电 | 300069 | 大幅高开 | 41.42 | 12.37 | 927500 | 38417050 ... 【高优关注 23 条】(竞价抢筹/大幅高开 金额≥3000万 涨幅≥5%) 日科化学(300214) 大幅高开 | 竞价涨幅 20.0% | 金额 1582万 金利华电(300069) 大幅高开 | 竞价涨幅 12.37% | 金额 3841万 华特气体(688268) 竞价抢筹 | 竞价涨幅 10.62% | 金额 6913万 陕鼓动力(601369) 大幅高开 | 竞价涨幅 10.06% | 金额 6001万 ...五、10 种异动类型完整解读接口中出现的异动类型共 10 种,每种都有明确的资金含义:异动类型含义典型行为关注程度大幅高开竞价阶段开盘价显著高于昨日收盘9:15-9:25 持续有资金抢筹,最终开盘涨幅 3%⭐⭐⭐⭐竞价抢筹集合竞价期间买单持续性强,量能逐步放大买盘挂单越来越多,价格不断被推高,9:20 后不撤单⭐⭐⭐⭐⭐涨停试盘竞价期间股价被推至涨停价测试抛压(未必封板)9:15-9:20 短暂触及涨停后回落,测试上方卖盘⭐⭐⭐⭐大买单试盘出现单笔或几笔大额买单推动股价突然出现大笔买单把价格打上去,随后恢复正常⭐⭐⭐买一剩余大9:25 撮合成交后,买一档仍有较大剩余挂单买盘力量强,多头情绪浓厚但未能完全成交⭐⭐⭐急速上涨股价在短时间内快速拉升短时间内涨幅 3%,伴有量能放大⭐⭐⭐⭐量比大增当日成交量与近 5 日均量的比值显著变大开盘不久成交量激增,量比 3 甚至 5⭐⭐⭐⭐量价齐升股价上涨的同时成交量同步放大价格创新高,成交量也创新高,资金接力良好⭐⭐⭐⭐⭐涨停加单已涨停后,买一封单继续增加(资金持续看多)涨停板封单量不断增加,封单金额变大⭐⭐⭐⭐资金流入大单/主力资金净流入明显为正超大单、大单净流入占比较高⭐⭐⭐⭐⭐一句话记忆口诀抢筹 量价齐升 资金流入 主力真动作;涨停试盘 涨停加单 次日有连板预期;大单试盘 / 买一剩余大 资金关注但未必立刻拉升。六、实战筛选思路下面给出几段可以直接放进你脚本里的筛选逻辑,根据风险偏好选择即可。6.1 高优关注(激进)条件:竞价抢筹 / 大幅高开 竞价金额 ≥ 3000 万 竞价涨幅 ≥ 5%Pythonhigh_priority_types {竞价抢筹, 大幅高开} hot_list [row for row in items if row[2] in high_priority_types and row[6] 30_000_000 and row[4] 5]6.2 打板方向(短线)条件:涨停试盘 / 涨停加单 / 竞价抢筹,竞价金额 ≥ 1000 万Pythonboard_types {涨停试盘, 涨停加单, 竞价抢筹} board_list [row for row in items if row[2] in board_types and row[6] 10_000_000]6.3 资金面观察(稳健)条件:资金流入 / 量价齐升 / 量比大增,竞价涨幅 ≥ 3%Pythonfund_types {资金流入, 量价齐升, 量比大增} fund_list [row for row in items if row[2] in fund_types and row[4] 3]6.4 综合评分示例把所有规则合并,给出一个简单的 0-100 分:Pythondef score(row): s 0 name, code, mtype, price, change, vol, amt row # 类型权重 s {竞价抢筹: 30, 量价齐升: 30, 资金流入: 30, 大幅高开: 20, 涨停试盘: 20, 涨停加单: 25, 急速上涨: 15, 量比大增: 20, 大买单试盘: 10, 买一剩余大: 10}.get(mtype, 0) # 竞价涨幅越高加分越多(最高 30) s min(change * 2, 30) # 竞价金额越大加分越多(最高 30) s min(amt / 1_000_000, 30) # 每 100 万 1 分,封顶 30 return s ranked sorted(items, keyscore, reverseTrue) for row in ranked[:10]: print(f{score(row):3.0f} 分 | {row[0]}({row[1]}) | {row[2]} | 涨 {row[4]}% | {row[6]/10000:.0f}万)七、扩展玩法拿到数据只是第一步,下面几个方向推荐你接着玩:7.1 每日 9:26 自动推送用schedule或APScheduler每天 9:26 自动拉取数据,推送到钉钉群机器人 / 企业微信 / 飞书:Python# 伪代码示意 import schedule, time, datetime def job_push(): today datetime.date.today().strftime(%Y%m%d) data get_warn_auction(today) top filter_strong(data[items])[:10] text f【早盘竞价异动 {today}】\n \ \n.join(f{i1}. {r[0]}({r[1]}) {r[2]} 涨{r[4]}% for i, r in enumerate(top)) requests.post(你的钉钉机器人 Webhook, json{msgtype: text, text: {content: text}}) schedule.every().day.at(09:26).do(job_push) while True: schedule.run_pending(); time.sleep(10)7.2 保存历史库做回测把每天的数据写入 SQLite / Excel,积累一个月后可以做回测:SQL-- 表结构参考 CREATE TABLE warn_auction ( date TEXT, code TEXT, name TEXT, move_type TEXT, price REAL, change REAL, vol INTEGER, amt REAL, PRIMARY KEY (date, code, move_type) );然后你就能轻松回答这些问题:上周每天有多少只 竞价抢筹 股,当天收盘平均涨幅是多少?涨停试盘 后,个股 3 日连板的概率?竞价金额超过 1 亿元的个股,当日最大涨幅的分布?7.3 和 K 线 / 题材库组合竞价异动 K 线历史 题材归属,可以搭建出:题材异动雷达:某个题材当天是否集体异动放量突破监控:竞价高 日线处于突破位主力持续性判断:竞价抢筹后,连续几天资金是否持续流入八、小结这个接口的优势是字段完整、格式统一、一条请求覆盖全市场(每天 500~600 条),非常适合做:早盘预警工具— 9:26 推送 Top10行情监测看板— 实时观察异动板块回测研究— 验证竞价抢筹等信号的胜率配合你项目里现有的K 线历史、题材库、分时数据等接口,可以很快搭建一个完整的A 股自选股监控小工具。九、风险提示竞价异动只是信号,并非买入理由。实际操作中需要配合板块情绪、题材持续性、日线位置、封板意愿、大盘环境等综合判断,严禁仅凭竞价数据直接满仓交易。
返回列表