导入包:
import pandas as pd
import numpy as np
import akshare as ak
import numpy as np
import pandas as pd
import pyfolio as pf
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('seaborn-darkgrid')
plt.rcParams['figure.figsize'] = (10,7)
import akshare as ak
import warnings
import talib as ta
warnings.filterwarnings('ignore')
from alphalens.utils import get_clean_factor_and_forward_returns
from alphalens.tears import create_full_tear_sheet
获得期货指数数据:
a = ['V0','M0','SC0','C0','AL0','AU0']
last2 = pd.DataFrame()
for i in a:
fin3 = ak.futures_zh_daily_sina(symbol=i)
fin3['date'] = pd.to_datetime(fin3['date'], format='%Y-%m-%d')
fin3['code'] = i
fin3['rsi'] = ta.RSI(fin3.close,100)
last3=fin3
last2 = last2.append(last3)
assets=last2
assets = last2.set_index([last2.date,last2.code], drop=True)
assets.rename(columns= {'code':'code2'},inplace=True)
assets
获得价格:
# column为股票代码,index为日期,值为股票收盘价
assets = assets.iloc[:,1:]
close = assets.pivot_table(index='date',columns='code2', values='close')
close.index = pd.to_datetime(close.index)
close.index.name = None
close
因子分析:
ret = get_clean_factor_and_forward_returns(assets[['rsi']],close,max_loss=1.0,periods=(5,10,20))
create_full_tear_sheet(ret, long_short=True)