量化投资|A股涨跌停板计算方法


现在A股市场有沪深主板,创业板,科创板和北交所股票,这个交易所股票的涨跌停板幅度又有不同,例如:沪深主板的st股票为5%,其余涨跌幅为10%,创业板和科创板为20%,北交所股票为30%。所以在量化回测中必不可免的要将这样股票的计算进行分类。注计算时要考虑上市前几天不设涨跌幅,此代码有期限要求,具体代码如下:

def Calculate_the_stock_price_limit(df):
    """
    计算每个交易日股票的涨跌停板,股票类型包括主板、创业板、ST股、科创板和北交所上市的股票,
    涨跌停要按严格的四舍五入进行计算。
    :return:
    """
    # 计算涨停板
    df.loc[df['股票代码'].str.startswith('sh60'),'涨停板']=df['前收盘价']*1.1
    df.loc[df['股票代码'].str.startswith('sh68'),'涨停板'] = df['前收盘价'] * 1.2
    df.loc[df['股票代码'].str.startswith('sz0'), '涨停板'] = df['前收盘价'] * 1.1
    df.loc[df['股票代码'].str.startswith('sz30')&(df['交易日期'] > pd.to_datetime('2020-08-23')), '涨停板'] = df['前收盘价'] * 1.2
    df.loc[df['股票代码'].str.startswith('bj4')|df['股票代码'].str.startswith('bj8'),'涨停板']=df['前收盘价'] * 1.3
    df.loc[df['股票名称'].str.startswith('ST'), '涨停板'] = df['前收盘价'] * 1.05
    # 涨停板小数点后两位需要精确的四舍五入
    df['涨停板']=df['涨停板'].apply(lambda x: float(Decimal(x * 100).quantize(Decimal('1'), roundin

本主题为课程学员专享,成为股票量化投资课程学员后可免费阅读

成为学员
最新回复 ( 0条评论 )


官方微信
码力十足学量化
Powered by Xiuno BBS 4.0.7

官方微信