统计指标包括:总收益,年化收益,夏普比率,平均每日涨幅,最大回撤。
基于上篇Strategy类run_simulation后将res_df存储到本地的一个csv文件中,然后读取csv后计算这些统计指标,具体实现如下。
def annual_return(df):
change = df['capital_market_value'].iloc[-1]/df['capital_market_value'].iloc[0]-1
annual = pow(change+1, 250/len(df)) - 1
print('总收益为%f,年化收益为%f\n' % (change, annual))
def sharp_ratio(df):
from math import sqrt
rf = 0.0284
change = df['capital_market_value'].iloc[-1] / df['capital_market_value'].iloc[0]
annual = pow(change, 250 / len(df)) - 1
volatility = df['profolio_daily_return'].std() * sqrt(250)
sharp = (annual - rf)/volatility
print('sharp ratio is %f\n'%sharp)
def average_change(df):
ave = df['profolio_daily_return'].mean()
print(