通达信涨停股中的“封单占流通Z”该怎么计算?自由流通股本到底是个什么鬼?

背景

朋友的打板策略要计算通达信中的这个“封单占流通Z”指标,但怎么算都不对,计算出来的数值比实际中的往往来的小。

如下图:

流通股本

查看通达信的说明,这个流通Z其实是自由流通股本,并不是通常行情软件界面的“流通股本”。

为什么这个“流通股本”要打引号呢?因为在这些行情软件中,这个数据并不是真的流通股本。流通股本包括两部分:无限售条件的流通股本  和  有限售条件的流通股本,而软件中这个界面显示“流通”其实是无限售条件的流通股本。

验证一下把:

从掘金数据中获取流通股本和无限售条件流通股本,看下具体的数值:

类型数量
流通股本(circ_shr)5681544596
无限售条件流通股本(ttl_shr_unl)5613049012

是吧,截图中显示的“流通”是56.1亿,对应的就是这个无限售条件流通股本。

注:上述数据为002195在2024-12-03的数据,无限售条件流通股本在掘金中的字段名称为ttl_shr_unl,可以通过股本函数查询,例如:

stk_get_daily_basic_pt(symbols=['SZSE.000001', 'SZSE.300002'], fields='circ_shr,ttl_shr_unl',trade_date=None, df=True)

自由流通股本

但通过无限售条件流通股本计算出来的封单占流通Z与实际不符,往往偏低很多。

在网上查找相关定义,如百度百科上的定义:

可以发现,这个自由流通股实在非限售流通股本的基础上进一步剔除了5%以上持股的股本。

怪不得计算出来的结果会偏低,原来是分母算多了。

那就将5%以上持股的股本剔除掉,正好掘金数据有十大股东数据,可以找出5%持股数据:

# 自由流通市值
mv = stk_get_daily_basic_pt(symbols=code, fields='circ_shr,ttl_shr_unl', trade_date=current_date_str, df=True)
for i in range(len(mv)):
    index = mv.index[i]
    code = mv.loc[index,'symbol']
    top_sh = stk_get_top_shareholder(symbol=code, start_date=current_date_str, end_date=current_date_str,tradable_holder=True)
    if not top_sh.empty:
        top_sh = top_sh[top_sh['share_ratio2']>5]
        top_sh_value = sum(top_sh['share_ratio2'])*0.01
    else:
        top_sh_value = 0
    mv.loc[index,'real_ttl_shr_unl'] = mv.loc[index,'ttl_shr_unl']*(1-top_sh_value)

我们将剔除5%比例的数据更新到上面的表格中对比下:

类型数量
流通股本(circ_shr)5681544596
无限售条件流通股本(ttl_shr_unl)5613049012

剔除5%以上持仓的

无限售条件流通股本

5065804798

那再来计算下“封单占流通Z”,封单是680429手,680429*100/5065804798=0.013431~=1.34%。

完美! 跟通达信上的数据能够对得上!

PS:掘金研学会员/策略代写,可以找我,有优惠~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值