问答交流

【数据问题】为啥又不对?anybody

由bqv93dy2创建,最终由bqv93dy2 被浏览 10 用户

method=1,2, 3

method int8 计算方式(1-算术平均; 2-总股本加权平均; 3-流通股本加权平均)

怎么弄的不对呢?

\

import dai
df = dai.query("""
    SELECT
        csic.date, csic.instrument, csp.name, csp.change_ratio, 
        csp.free_float_shares * csp.close / csp.adjust_factor as _free_market_cap, 
        m_lag(_free_market_cap, 1, pb:=csp.instrument, ob:=csp.date) as free_market_cap,       
        m_lag(csp.float_market_cap, 1, pb:=csp.instrument, ob:=csp.date) as float_market_cap,
        csird.change_ratio as industry_ret, csic.industry_name, 
    FROM cn_stock_industry_real_bar1d csird
    JOIN cn_stock_industry_component csic ON csird.date=csic.date AND csird.instrument=csic.industry_instrument
    JOIN cn_stock_prefactors csp ON csic.date=csp.date AND csp.instrument=csic.instrument
    WHERE csird.method = 1 AND csird.instrument='640602'
    ORDER BY csird.date""",
    filters={"date": ["2022-12-30", "2023-01-03"]}
).df()
df.dropna(inplace=True )
df
sum(df['change_ratio'])/len(df['change_ratio'])

评论
  • method 有2个值的结果每算出来
  • 另外建议平台指数权重保持采用自由流通市值的方式计算权重。因为上证指数等主流指数涨跌幅是按自由流通市值加权的。
{link}