当前位置: 首页 > 工具软件 > AKShare > 使用案例 >

akshare做因子分析

谢清野
2023-12-01
import pandas as pd
import akshare as ak

df = ak.stock_zh_a_daily(symbol='sh600309')
print(df)
df['code']='600309'
df1 = ak.stock_zh_a_daily(symbol='sz000001')
print(df)
df1['code']='000001'
df=df.append(df1)
df=df.sort_values(by='date')
#df = pro.daily(ts_code='000001.SZ,600000.SH', start_date='20200101', end_date='20201231')
df.index = pd.to_datetime(df['date'])
df.index.name = None
df.sort_index(inplace=True)
# MultiIndex,level0为日期,level1为股票代码,assets为get_clean_factor_and_forward_returns所需的因子数据格式
assets = df.set_index([df.index, df['code']], drop=True)
# column为股票代码,index为日期,值为股票收盘价
close = df.pivot_table(index='date',columns='code',values='close')
close.index = pd.to_datetime(close.index)
#接下来使用alphalens工具对数据进行分析,这里我们使用股票涨跌幅(字段名为pct_chg)作为因子数据
from alphalens.utils import get_clean_factor_and_forward_returns
from alphalens.tears import create_full_tear_sheet
# 需要将pct_chg做shift处理,否则将使用未来数据
ret = get_clean_factor_and_forward_returns(assets[['volume']].shift(2),close)
create_full_tear_sheet(ret, long_short=False)

 类似资料: