股票的涨跌幅规则
众所周知A股股票的涨跌幅是有限制的。目前创业板和科创板的涨跌幅涨跌幅限制比例为20%,沪深交易所A股主板的涨跌幅限制为10%,也就是说股票当天最高价为上一日收盘价的1.1倍,最低价为上一日收盘价的0.9倍。当然也有一些特殊情况比如新股上市首日,增发股票,暂停上市后恢复上市首日,当然这些不是今天的重点,我本身也不是很明白就不科普了。
在tushare上可以提取涨停价的相关数据
tushare可直接获取涨跌停价格:https://tushare.pro/document/2?doc_id=183
但是获取该数据需要2000积分,下面分享一下如何利用日线数据计算涨跌停价格(只需要知道股票前一天的收盘价)
计算逻辑
以A股主板的涨跌幅限制为10%为例:
当天股票涨停价等于前一天收盘价*1.1四舍五入保留两位小数,同理跌停价等于前一天收盘价乘以0.9四舍五入保留两位小数
代码
from decimal import *
def up_down_limit(data):
up,down = [],[]
for i in data['pre_close']:
#Decimal模块可以进行精确的四舍五入,使用round可能会出现一下情况:
# round(1.265,2)->>1.26
#round(2.265,2)->>2.27
up.append(float(Decimal(i * 1.1).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)))
down.append(float(Decimal(i * 0.9).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)))
data['up_limit_p'] = up
# 计算自己定义的跌停价
data['down_limit_p'] = down
return data
pro = ts.pro_api('你的token')
# 获取股票的日线数据
TS_data = pro.daily(ts_code='603917.SH', start_date='20220101')
data_with_limit_up_down=up_down_limit(TS_data):
#