:次新股池与炸板监控)
A股量化数据工程从 REST 接口到策略信号第 25 篇次新股池与炸板监控前言次新股弹性大、筹码新是游资偏爱的战场炸板冲涨停后回落则是情绪转弱的第一信号。接口hslt/cxgc次新股池、zbgc炸板股池给出这两类标的本篇自研上市天数与炸板率监控短线情绪转折。一、接口原始字段梳理1次新股池接口地址https://api.biyingapi.com/hslt/cxgc/{日期}/{LICENCE}字段说明dm股票代码mc股票名称p最新价ztp涨停价zf涨幅cje成交额lt流通zsz总市值nh年内接口原始字段hs换手率tj统计kb股本接口原始字段od上市天数接口原始字段ipodIPO 日期2炸板股池接口地址https://api.biyingapi.com/hslt/zbgc/{日期}/{LICENCE}字段说明dm股票代码mc股票名称p最新价ztp涨停价zf涨幅cje成交额lt流通zsz总市值zs涨停数接口原始字段hs换手率tj统计fbt封板接口原始字段zbc涨停板二、自研衍生统计指标上市天数由ipodIPO 日期或od字段算距今天数区分「次新」与「老股」。炸板率炸板股数 / 涨停股数越高说明封板信心越弱。炸板回封zs涨停数高且未封死的标记「烂板」次日分歧大。天数与炸板率基于原始ipod/od/zs字段二次计算。三、数据表设计CREATETABLEIFNOTEXISTSpool_subnew(dmTEXT,dayTEXT,pREAL,zfREAL,zszREAL,odINTEGER,ipodTEXT,PRIMARYKEY(dm,day));CREATETABLEIFNOTEXISTSpool_broken(dmTEXT,dayTEXT,pREAL,ztpREAL,zfREAL,zszREAL,zsREAL,PRIMARYKEY(dm,day));CREATETABLEIFNOTEXISTSemotion_broken(dayTEXTPRIMARYKEY,broken_rateREAL,subnew_countINTEGER);四、完整代码importrequestsimportsqlite3importtimefromdatetimeimportdatetime LICENCEYOUR_LICENCEBASEhttps://api.biyingapi.comDB_PATHquant.dbdefbiying_api_get_retry(url,timeout15,max_retry3):foriinrange(max_retry):try:rrequests.get(url,timeouttimeout)r.raise_for_status()returnr.json()exceptExceptionase:ifimax_retry-1:raisetime.sleep(1i)deffetch_pool(kind,day):dbiying_api_get_retry(f{BASE}/hslt/{kind}/{day}/{LICENCE})returnd.get(data,[])ifisinstance(d,dict)else[]defdays_since(ipod):ifnotipod:returnNonetry:return(datetime.now()-datetime.strptime(ipod[:10],%Y-%m-%d)).daysexceptException:returnNoneif__name____main__:day2026-09-18cxfetch_pool(cxgc,day);zbfetch_pool(zbgc,day)# 涨停数需第24篇 pool_limit_up 已落库consqlite3.connect(DB_PATH)up_cntcon.execute(SELECT COUNT(*) FROM pool_limit_up WHERE day?,(day,)).fetchone()[0]con.executemany(INSERT OR REPLACE INTO pool_subnew(dm,day,p,zf,zsz,od,ipod) VALUES(?,?,?,?,?,?,?),[[r.get(dm),day,r.get(p),r.get(zf),r.get(zsz),r.get(od),r.get(ipod)]forrincx])con.executemany(INSERT OR REPLACE INTO pool_broken(dm,day,p,ztp,zf,zsz,zs) VALUES(?,?,?,?,?,?,?),[[r.get(dm),day,r.get(p),r.get(ztp),r.get(zf),r.get(zsz),r.get(zs)]forrinzb])broken_rateround(len(zb)/up_cnt,3)ifup_cntelse0.0con.execute(INSERT OR REPLACE INTO emotion_broken(day,broken_rate,subnew_count) VALUES(?,?,?),(day,broken_rate,len(cx)))con.commit();con.close()print(f日期{day}次新{len(cx)}只 炸板{len(zb)}只 炸板率{broken_rate})五、关键业务说明次新定义靠ipod用 IPO 日期算上市天数比od更可靠部分接口od为空。炸板率看拐点单日炸板率突增常对应情绪见顶与第 24 篇连板高度背离时更要警惕。炸板非必然利空「烂板」也可能是换手充分后的回封需结合封单与量能。六、拓展练习把emotion_broken按日落库统计炸板率与次日指数的负相关仅统计。对次新股用od 250筛选「一年内次新」叠加第 20 篇市值看弹性。用pool_broken的zs字段追踪「多次触板未封」的分歧股。下篇预告A股量化数据工程从 REST 接口到策略信号第 26 篇龙虎榜每日详情解析下一篇用hilh/mrxq拉取龙虎榜每日详情把涨停/跌停统计还原成「上榜活跃度」指标。免责申明本篇全部代码、接口调用仅作为量化编程学习演示仅为数据演示不构成投资建议。市场有风险投资需谨慎。