【指标定制】为啥又不对?anybody

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'])