电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

完整版)Python量化代码 VIP免费

完整版)Python量化代码 _第1页
1/12
完整版)Python量化代码 _第2页
2/12
完整版)Python量化代码 _第3页
3/12
完整版)Python量化代码importnumpyasnpimportpandasaspdimport___定义函数获取股票数据defget_stock_data(stock_code。index_code。start_date。end_date):paramstock_code:股票代码,例如‘sz’paramindex_code:指数代码,例如‘sh’paramstart_date:回测开始日期,例如‘1991-1-30'paramend_date:回测结束日期,例如‘2015-12-31’return:函数返回其他函数的各参数序列读取本地csv文件stock_data=pd.read_csv(r'G:\财通实\历史日线数据_样本%xxxxxxxx14年数据%292\all_trading____'。parse_dates=['date'])____csv(r'G:\财通实\历史日线数据_样本%xxxxxxxx14年数据%292\all_trading_data\indexdata\sh.csv'。parse_dates=['date'])生成日期序列date=pd.date_range('2016-01-01','2016-03-15')选取在日期范围内的股票数据序列并按日期排序stock_data=stock_data.ix[stock_data['date'].isin(date)。['date'。'change'。'adjust_price']]选取在日期范围内的指数数据序列并按日期排序date_list=list(stock_data['date'])首先,我们需要筛选出回测期间内的基准数据,并将其按日期排序和设置日期为索引。代码如下:___[benchmark['date'].isin(date_list)。['date'。'change'。'close']]benchmark.sort_values(by='date'。inplace=True)benchmark.set_index('date'。inplace=True)接下来,我们需要将回测用到的各个数据序列转换成list格式,并分别存储日期序列、账户价值序列、收益率序列、指数变化率序列和指数序列。代码如下:date_line=list(benchmark.index.strftime('%Y-%m-%d'))#日期序列capital_line=list(stock_data['adjust_price'])#账户价值序列return_line=list(stock_data['change'])#收益率序列indexreturn_line=list(benchmark['change'])#指数的变化率序列index_line=list(benchmark['close'])#指数序列接下来,我们定义一个计算年化收益率的函数。该函数需要传入日期序列和账户价值序列,然后输出回测期间的年化收益率。代码如下:defannual_return(date_line。capital_line):paramdate_line:日期序列paramcapital_line:账户价值序列return:输出在回测期间的年化收益率将数据序列合并成dataframe并按日期排序df=pd.DataFrame({'date':date_line。'capital':capital_line})df.sort_values(by='date'。inplace=True)df.reset_index(drop=True。inplace=True)rng=d_range(df['date'].iloc[0]。df['date'].iloc[-1]。freq='D')计算年化收益率最大单周期涨幅为:%f,最大单周期跌幅为:%f。这是计算收益波动率的函数。收益波动率函数需要输入日期序列和账户日收益率序列,并输出回测期间的收益波动率。我们使用pandas库中的DataFrame来处理数据,并使用math库中的sqrt函数计算波动率。计算beta值需要输入日期序列、账户日收益率序列和指数的收益率序列,并输出beta值。我们使用pandas库中的DataFrame来处理数据,并计算账户收益和基准收益的协方差除以基准收益的方差来得到beta值。计算alpha值需要输入日期序列、账户价值序列、指数序列、账户日收益率序列和指数的收益率序列,并输出alpha值。我们将数据序列合并成DataFrame并按日期排序。df=pd.DataFrame({'date':date_line。'capital':capital_line。'benchmark':index_line。'rtn':return_line。benchmark_rtn':indexreturn_line})df.sort_values(by='date'。inplace=True)df.reset_index(drop=True。inplace=True)生成日期序列rng=d_range(df['date'].iloc[0]。df['date'].iloc[-1]。freq='D')无风险利率取10年期国债的到期年化收益率rf=0.0284计算账户年化收益和基准年化收益annual____(df.iloc[-1]['capital']/df.iloc[0]['capital']。250/len(rng))-1annual_index=pow(df.iloc[-1]['benchmark']/df.iloc[0]['benchmark']。250/len(rng))-1计算贝塔值和alpha值beta=df['rtn'].cov(df['benchmark_rtn'])/df['benchmark_rtn'].var()alpha=(annual_stock-rf)-beta*(annual_index-rf)print('alpha:%f'%alpha)夏普比率函数def(date_line。capital_line。return_line):paramdate_line:日期序列paramcapital_line:账户价...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

完整版)Python量化代码

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部