用 A 股集合競(jìng)價(jià)異動(dòng) API:每天早盤資金信號(hào)》)
一、前言集合競(jìng)價(jià)(9:15 - 9:25)是 A 股一天行情的起點(diǎn),競(jìng)價(jià)階段的資金動(dòng)向往往決定了當(dāng)天的熱點(diǎn)方向。主力資金經(jīng)常會(huì)在競(jìng)價(jià)階段通過(guò)大幅高開、競(jìng)價(jià)搶籌、漲停試盤等行為吸引市場(chǎng)注意力,如果能在 9:25 之后第一時(shí)間拿到這些信號(hào),就能比普通投資者快一步。本文介紹一個(gè)可用的 JSON 接口,只需傳入日期,即可獲取當(dāng)天全部 A 股的集合競(jìng)價(jià)異動(dòng)清單,非常適合寫 Python 腳本做早盤預(yù)警 / 策略回測(cè) / 自選股監(jiān)控。二、接口說(shuō)明2.1 基本信息項(xiàng)目說(shuō)明請(qǐng)求地址http://ddnsapi.top:1808/api/v1/request請(qǐng)求方式POST請(qǐng)求類型req_type warn_auction認(rèn)證方式Headers中帶上token返回格式JSON日期范圍最近一個(gè)月內(nèi),格式y(tǒng)yyymmdd2.2 請(qǐng)求參數(shù)Pythondata { req_type: warn_auction, # 競(jìng)價(jià)異動(dòng) date: 20260713 # 要查詢的日期 yyyymmdd }2.3 返回結(jié)構(gòu)Python{ status: True, date: 20260713, fields: [ 股票名稱, 股票代碼, 異動(dòng)類型, 匹配價(jià), 競(jìng)價(jià)漲幅, 競(jìng)價(jià)量, 競(jìng)價(jià)金額 ], items: [ [日科化學(xué), 300214, 大幅高開, 12.30, 20.00, 1286400, 15822720], [金利華電, 300069, 大幅高開, 41.42, 12.37, 927500, 38417050], [華特氣體, 688268, 競(jìng)價(jià)搶籌,215.96, 10.62, 320127, 69134627], ... ] }字段含義對(duì)照表:字段類型含義股票名稱strA 股簡(jiǎn)稱股票代碼str6 位代碼(300/688/60/00 等)異動(dòng)類型str共 10 種,詳見下文解讀匹配價(jià)float9:25 集合競(jìng)價(jià)最終撮合成交價(jià)競(jìng)價(jià)漲幅float相對(duì)昨收的漲跌百分比(正數(shù)高開,負(fù)數(shù)低開)競(jìng)價(jià)量int集合競(jìng)價(jià)成交量(股)競(jìng)價(jià)金額float集合競(jìng)價(jià)成交金額(元) 匹配價(jià) × 競(jìng)價(jià)量三、完整 Python 代碼Pythonimport requests # 全局配置 HEADERS { token: xxx # 請(qǐng)?zhí)鎿Q為自己的 token } URL_API http://ddnsapi.top:1808/api/v1/request TIMEOUT 5 def ddnsapi_post(data: dict) - dict: 通用 POST 請(qǐng)求封裝,返回 JSON 結(jié)果。 try: resp requests.post(URL_API, datadata, timeoutTIMEOUT, headersHEADERS) if resp.status_code 200: return resp.json() print(f[請(qǐng)求失敗] HTTP {resp.status_code}: {resp.text}) except requests.exceptions.Timeout: print(f[請(qǐng)求超時(shí)] {URL_API}) except requests.exceptions.RequestException as e: print(f[請(qǐng)求異常] {e}) return None def get_warn_auction(date: str) - dict: 獲取指定日期的競(jìng)價(jià)異動(dòng)數(shù)據(jù)。 return ddnsapi_post({req_type: warn_auction, date: date}) def filter_strong(items, min_amt30_000_000, min_change5.0): 篩選高優(yōu)先級(jí)個(gè)股:競(jìng)價(jià)搶籌/大幅高開 金額夠 漲幅夠。 high_priority {競(jìng)價(jià)搶籌, 大幅高開, 漲停試盤} 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)} 競(jìng)價(jià)異動(dòng) 共 {len(items)} 條 ) print( | .join(fields)) print(- * 90) # 按競(jìng)價(jià)金額降序,取前 10 條展示 top10 sorted(items, keylambda r: r[6], reverseTrue)[:10] for row in top10: print( | .join(str(x) for x in row)) # 篩選高優(yōu)先級(jí) strong filter_strong(items) print(f\n【高優(yōu)關(guān)注 {len(strong)} 條】(競(jìng)價(jià)搶籌/大幅高開 金額≥3000萬(wàn) 漲幅≥5%)) for row in sorted(strong, keylambda r: r[4], reverseTrue)[:10]: print(f {row[0]}({row[1]}) {row[2]} | 競(jìng)價(jià)漲幅 {row[4]}% | 金額 {row[6]/10000:.0f}萬(wàn)) else: print(未獲取到數(shù)據(jù),請(qǐng)檢查 token / 日期 / 網(wǎng)絡(luò)。)依賴安裝Bashpip install requests四、運(yùn)行結(jié)果示例Plain Text 日期 20260713 競(jìng)價(jià)異動(dòng) 共 552 條 股票名稱 | 股票代碼 | 異動(dòng)類型 | 匹配價(jià) | 競(jìng)價(jià)漲幅 | 競(jìng)價(jià)量 | 競(jìng)價(jià)金額 ------------------------------------------------------------------------------------------ 東山精密 | 002384 | 競(jìng)價(jià)搶籌 | 237.58 | -1.95 | 1278406 | 303723700 中國(guó)衛(wèi)通 | 601698 | 競(jìng)價(jià)搶籌 | 34.0 | 3.41 | 4534300 | 154166200 中科曙光 | 603019 | 買一剩余大 | 110.0 | 2.33 | 1827612 | 201037320 日科化學(xué) | 300214 | 大幅高開 | 12.3 | 20.0 | 1286400 | 15822720 金利華電 | 300069 | 大幅高開 | 41.42 | 12.37 | 927500 | 38417050 ... 【高優(yōu)關(guān)注 23 條】(競(jìng)價(jià)搶籌/大幅高開 金額≥3000萬(wàn) 漲幅≥5%) 日科化學(xué)(300214) 大幅高開 | 競(jìng)價(jià)漲幅 20.0% | 金額 1582萬(wàn) 金利華電(300069) 大幅高開 | 競(jìng)價(jià)漲幅 12.37% | 金額 3841萬(wàn) 華特氣體(688268) 競(jìng)價(jià)搶籌 | 競(jìng)價(jià)漲幅 10.62% | 金額 6913萬(wàn) 陜鼓動(dòng)力(601369) 大幅高開 | 競(jìng)價(jià)漲幅 10.06% | 金額 6001萬(wàn) ...五、10 種異動(dòng)類型完整解讀接口中出現(xiàn)的異動(dòng)類型共 10 種,每種都有明確的資金含義:異動(dòng)類型含義典型行為關(guān)注程度大幅高開競(jìng)價(jià)階段開盤價(jià)顯著高于昨日收盤9:15-9:25 持續(xù)有資金搶籌,最終開盤漲幅 3%????競(jìng)價(jià)搶籌集合競(jìng)價(jià)期間買單持續(xù)性強(qiáng),量能逐步放大買盤掛單越來(lái)越多,價(jià)格不斷被推高,9:20 后不撤單?????漲停試盤競(jìng)價(jià)期間股價(jià)被推至漲停價(jià)測(cè)試拋壓(未必封板)9:15-9:20 短暫觸及漲停后回落,測(cè)試上方賣盤????大買單試盤出現(xiàn)單筆或幾筆大額買單推動(dòng)股價(jià)突然出現(xiàn)大筆買單把價(jià)格打上去,隨后恢復(fù)正常???買一剩余大9:25 撮合成交后,買一檔仍有較大剩余掛單買盤力量強(qiáng),多頭情緒濃厚但未能完全成交???急速上漲股價(jià)在短時(shí)間內(nèi)快速拉升短時(shí)間內(nèi)漲幅 3%,伴有量能放大????量比大增當(dāng)日成交量與近 5 日均量的比值顯著變大開盤不久成交量激增,量比 3 甚至 5????量?jī)r(jià)齊升股價(jià)上漲的同時(shí)成交量同步放大價(jià)格創(chuàng)新高,成交量也創(chuàng)新高,資金接力良好?????漲停加單已漲停后,買一封單繼續(xù)增加(資金持續(xù)看多)漲停板封單量不斷增加,封單金額變大????資金流入大單/主力資金凈流入明顯為正超大單、大單凈流入占比較高?????一句話記憶口訣搶籌 量?jī)r(jià)齊升 資金流入 主力真動(dòng)作;漲停試盤 漲停加單 次日有連板預(yù)期;大單試盤 / 買一剩余大 資金關(guān)注但未必立刻拉升。六、實(shí)戰(zhàn)篩選思路下面給出幾段可以直接放進(jìn)你腳本里的篩選邏輯,根據(jù)風(fēng)險(xiǎn)偏好選擇即可。6.1 高優(yōu)關(guān)注(激進(jìn))條件:競(jìng)價(jià)搶籌 / 大幅高開 競(jìng)價(jià)金額 ≥ 3000 萬(wàn) 競(jìng)價(jià)漲幅 ≥ 5%Pythonhigh_priority_types {競(jìng)價(jià)搶籌, 大幅高開} 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 打板方向(短線)條件:漲停試盤 / 漲停加單 / 競(jìng)價(jià)搶籌,競(jìng)價(jià)金額 ≥ 1000 萬(wàn)Pythonboard_types {漲停試盤, 漲停加單, 競(jìng)價(jià)搶籌} board_list [row for row in items if row[2] in board_types and row[6] 10_000_000]6.3 資金面觀察(穩(wěn)健)條件:資金流入 / 量?jī)r(jià)齊升 / 量比大增,競(jìng)價(jià)漲幅 ≥ 3%Pythonfund_types {資金流入, 量?jī)r(jià)齊升, 量比大增} fund_list [row for row in items if row[2] in fund_types and row[4] 3]6.4 綜合評(píng)分示例把所有規(guī)則合并,給出一個(gè)簡(jiǎn)單的 0-100 分:Pythondef score(row): s 0 name, code, mtype, price, change, vol, amt row # 類型權(quán)重 s {競(jìng)價(jià)搶籌: 30, 量?jī)r(jià)齊升: 30, 資金流入: 30, 大幅高開: 20, 漲停試盤: 20, 漲停加單: 25, 急速上漲: 15, 量比大增: 20, 大買單試盤: 10, 買一剩余大: 10}.get(mtype, 0) # 競(jìng)價(jià)漲幅越高加分越多(最高 30) s min(change * 2, 30) # 競(jìng)價(jià)金額越大加分越多(最高 30) s min(amt / 1_000_000, 30) # 每 100 萬(wàn) 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}萬(wàn))七、擴(kuò)展玩法拿到數(shù)據(jù)只是第一步,下面幾個(gè)方向推薦你接著玩:7.1 每日 9:26 自動(dòng)推送用schedule或APScheduler每天 9:26 自動(dòng)拉取數(shù)據(jù),推送到釘釘群機(jī)器人 / 企業(yè)微信 / 飛書: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【早盤競(jìng)價(jià)異動(dòng) {today}】\n \ \n.join(f{i1}. {r[0]}({r[1]}) {r[2]} 漲{r[4]}% for i, r in enumerate(top)) requests.post(你的釘釘機(jī)器人 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 保存歷史庫(kù)做回測(cè)把每天的數(shù)據(jù)寫入 SQLite / Excel,積累一個(gè)月后可以做回測(cè):SQL-- 表結(jié)構(gòu)參考 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) );然后你就能輕松回答這些問(wèn)題:上周每天有多少只 競(jìng)價(jià)搶籌 股,當(dāng)天收盤平均漲幅是多少?漲停試盤 后,個(gè)股 3 日連板的概率?競(jìng)價(jià)金額超過(guò) 1 億元的個(gè)股,當(dāng)日最大漲幅的分布?7.3 和 K 線 / 題材庫(kù)組合競(jìng)價(jià)異動(dòng) K 線歷史 題材歸屬,可以搭建出:題材異動(dòng)雷達(dá):某個(gè)題材當(dāng)天是否集體異動(dòng)放量突破監(jiān)控:競(jìng)價(jià)高 日線處于突破位主力持續(xù)性判斷:競(jìng)價(jià)搶籌后,連續(xù)幾天資金是否持續(xù)流入八、小結(jié)這個(gè)接口的優(yōu)勢(shì)是字段完整、格式統(tǒng)一、一條請(qǐng)求覆蓋全市場(chǎng)(每天 500~600 條),非常適合做:早盤預(yù)警工具— 9:26 推送 Top10行情監(jiān)測(cè)看板— 實(shí)時(shí)觀察異動(dòng)板塊回測(cè)研究— 驗(yàn)證競(jìng)價(jià)搶籌等信號(hào)的勝率配合你項(xiàng)目里現(xiàn)有的K 線歷史、題材庫(kù)、分時(shí)數(shù)據(jù)等接口,可以很快搭建一個(gè)完整的A 股自選股監(jiān)控小工具。九、風(fēng)險(xiǎn)提示競(jìng)價(jià)異動(dòng)只是信號(hào),并非買入理由。實(shí)際操作中需要配合板塊情緒、題材持續(xù)性、日線位置、封板意愿、大盤環(huán)境等綜合判斷,嚴(yán)禁僅憑競(jìng)價(jià)數(shù)據(jù)直接滿倉(cāng)交易。