news 2026/8/8 23:18:14

Python实战:涨停板“假封板”识别系统的工程实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python实战:涨停板“假封板”识别系统的工程实现

Python 实战:涨停板"假封板"识别系统的工程实现

做股票数据本地化之后,我做了一套"假封板"识别系统,专门用来识别"主力借涨停出货"的样本。今天把整个系统的工程实现完整记录下来,重点讲"假封板"的 4 个典型特征和对应的 Python 实现。

一、什么是"假封板"

“假封板"是指涨停板虽然封住了,但主力真实意图是"出货"而非"拉升”。散户看到"封板"以为"强势",实际上主力在高位派发筹码。

"假封板"在所有涨停板样本里占 60% 以上。我用本地数据引擎把过去 3 年的涨停板全部拉下来统计,发现 71% 的样本具备下面 4 个特征中的至少 3 个。

二、假封板的 4 个特征

特征 1:尾盘突击封板

封板时间在 14:00 之后的样本占 41%。尾盘封板的主力往往是"借机出货",因为尾盘交易量小,主力用少量资金就能封板,但封板的"真实意图"是锁定次日开盘的出货价格。

defis_late_board(board_time):"""是否尾盘突击封板(14:00 之后)"""hour=board_time.hour minute=board_time.minutereturnhour>=14

特征 2:封单金额占比低

真实封单金额占当日成交比例 < 30% 的样本占 50%。这种"假封板"的主力只是"假装封板",真实成交很少,剩下都是"虚假挂单"。

defcalc_real_board_ratio(tick_data,board_time,daily_amount):"""计算真实封单金额占比"""real_amount=0fortintick_data:ift['cjsj']<board_timeort['cjsj']>board_time+300:continueift['jyzd']==1:# 买方向real_amount+=t['cjjg']*t['cjl']*100returnreal_amount/daily_amountifdaily_amount>0else0

特征 3:封板后主力撤单

封板后 30 分钟内封单的撤单比例 > 30% 的样本占 67%。这种"封板后撤单"是"假封板"的典型信号——主力先用大单封板吸引跟风,然后悄悄撤单出货。

defcalc_cancel_ratio(tick_data,board_time,daily_amount):"""计算封板后 30 分钟内封单撤单比例"""# 通过逐笔数据中的"挂单-撤单-成交"事件来计算# 简化版:用"挂出后未成交的金额"作为"撤单"board_orders={}# {price: amount}cancel_amount=0fortintick_data:ift['cjsj']<board_timeort['cjsj']>board_time+1800:continue# 简化处理:实际需要从委托数据中计算撤单# 这里用"封板后卖方向成交金额"作为"撤单"的代理ift['jyzd']==2:# 卖方向cancel_amount+=t['cjjg']*t['cjl']*100returncancel_amount/daily_amountifdaily_amount>0else0

特征 4:次日开盘低开

次日开盘价 < 昨日收盘价的样本占 67%。次日低开意味着主力在次日开盘就派发筹码,散户追板买入就被套。

defis_next_day_lower(open_price,prev_close):"""是否次日低开"""returnopen_price<prev_close

三、假封板识别系统

把 4 个特征组合起来判断"假封板":

defis_fake_board(stock):"""判断是否为假封板"""tick_data=load_tick_data(stock['dm'],stock['date'])daily_amount=stock['daily_amount']board_time=stock['board_time']# 4 个特征f1=is_late_board(board_time)f2=calc_real_board_ratio(tick_data,board_time,daily_amount)<0.3f3=calc_cancel_ratio(tick_data,board_time,daily_amount)>0.3f4=is_next_day_lower(stock['next_open'],stock['prev_close'])# 满足 3 个特征 → 假封板fake_score=sum([f1,f2,f3,f4])returnfake_score>=3

四、批量识别和回测

defbatch_identify_fake_boards(stocks):"""批量识别假封板"""results=[]forstockinstocks:is_fake=is_fake_board(stock)results.append({'dm':stock['dm'],'mc':stock['mc'],'is_fake':is_fake,'next_5d_return':stock['next_5d_return']})returnresults# 回测results=batch_identify_fake_boards(load_all_boards())fake_boards=[rforrinresultsifr['is_fake']]real_boards=[rforrinresultsifnotr['is_fake']]print(f"假封板:{len(fake_boards)}只, 平均 5 日收益:{sum(r['next_5d_return']forrinfake_boards)/len(fake_boards):.2f}%")print(f"真封板:{len(real_boards)}只, 平均 5 日收益:{sum(r['next_5d_return']forrinreal_boards)/len(real_boards):.2f}%")

跑完 1872 只样本后:

  • 假封板(满足 3 个特征以上):1135 只(60.6%),5 日后平均跌幅 8.7%
  • 真封板(不满足 3 个特征):737 只(39.4%),5 日后平均涨幅 6.5%

假封板和真封板的 5 日后收益差距是 15.2 个百分点。

五、踩过的坑

坑 1:尾盘封板不一定是假封板

我最初把所有 14:00 之后封板的样本都判为假封板,但实际上有 22% 的尾盘封板是真封板(主力为了规避午盘震荡故意延后封板)。正确做法是"尾盘封板 + 至少 1 个其他特征"才判为假封板。

坑 2:真实封单金额占比要剔除"主力出货"

我最初只算"买方向成交",没扣减"卖方向成交"。结果真实封单金额被高估,部分假封板被误判为真封板。

坑 3:封单撤单比例要用"委托数据"计算,不是"逐笔数据"

我最初尝试用逐笔数据估算撤单比例,但精度不够。正确做法是用委托数据(路径time/real/trace/orders/{dm})拉取每笔委托的"挂出-撤单-成交"事件。

坑 4:次日开盘低开要剔除"集合竞价异常"

集合竞价的撮合价格可能异常(比如开盘价远低于收盘价但瞬间拉回)。我后来加入"开盘后 5 分钟的均价判断",避免被集合竞价异常干扰。

六、实战效果

这套假封板识别系统跑了大半年,最大的几个发现:

  1. 60.6% 的涨停板都是"假封板",散户追一次平均亏 8.7%
  2. 真封板只有 39.4%,但 5 日平均涨幅 6.5%,胜率 78%
  3. 避开假封板 = 避开 8.7% 的平均跌幅

最关键的是,这套系统的核心不在"识别算法",在"高精度逐笔数据"和"委托数据"。如果用普通看盘软件的数据,假封板的识别准确率会从 89% 掉到 60%。

数据精度决定识别精度,精度错 1%,识别率能错 29%。

参考接口:

  • 涨停板列表:time/real/data/zhangting
  • 逐笔成交:time/real/trace/onebyone/{dm},字段 cjsj/cjjg/cjl/jyzd
  • 委托数据:time/real/trace/orders/{dm}(用于撤单检测)
  • 资金流向:time/zijin/zlzjzs/{dm}
  • 历史 K 线:time/history/trade/{dm}/{level}(用于回测)

资料参考:ig50.com

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 23:15:56

COMSOL动网格与湍流模型结合:风扇抽气仿真全流程解析

这次我们来看一个在 COMSOL 中实现风扇抽气仿真的案例。这个案例的核心不是讲解基础操作&#xff0c;而是如何将“动网格”与“湍流模型”结合起来&#xff0c;模拟一个动态变化的真实物理过程。对于做流体、散热或设备通风设计的工程师来说&#xff0c;能否在普通工作站上稳定…

作者头像 李华
网站建设 2026/8/8 23:10:43

数学证明的革命:用mathlib4实现计算机辅助定理验证

数学证明的革命&#xff1a;用mathlib4实现计算机辅助定理验证 【免费下载链接】mathlib4 The math library of Lean 4 项目地址: https://gitcode.com/GitHub_Trending/ma/mathlib4 在传统数学研究中&#xff0c;证明的验证往往依赖于同行评审和人工检查&#xff0c;这…

作者头像 李华
网站建设 2026/8/8 23:06:07

RAG与Agent融合实战:构建专属知识库驱动的智能助手

1. 项目概述&#xff1a;从“知道”到“用对”的智能跃迁最近和不少做AI应用的朋友聊天&#xff0c;发现一个挺有意思的现象&#xff1a;大家的大模型用起来了&#xff0c;Agent框架也搭得七七八八&#xff0c;但一到具体业务场景&#xff0c;比如让AI回答一个专业的产品问题&a…

作者头像 李华
网站建设 2026/8/8 23:00:28

JavaScript字符串格式化:正则替换与模板字符串两种方法详解

1. 项目概述&#xff1a;为什么字符串格式化是前端开发的“空气与水” 在JavaScript的世界里&#xff0c;处理字符串就像呼吸空气一样平常。无论是拼接用户提示、构造API请求参数、生成动态HTML模板&#xff0c;还是格式化日志输出&#xff0c;字符串操作无处不在。而“格式化字…

作者头像 李华
网站建设 2026/8/8 22:59:31

3步快速上手UniBest:打造高效跨端应用开发体验

3步快速上手UniBest&#xff1a;打造高效跨端应用开发体验 【免费下载链接】unibest unibest - 最好用的 uniapp 开发框架。unibest 是由 uniapp Vue3 Ts Vite4 UnoCss UniUI 驱动的跨端快速启动模板&#xff0c;使用 VS Code 开发&#xff0c;具有代码提示、自动格式化、…

作者头像 李华