ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:71.06KB ,
资源ID:14979107      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14979107.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(译 量化投资教程投资组合优化与 R 实践上Word格式文档下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

译 量化投资教程投资组合优化与 R 实践上Word格式文档下载.docx

1、:p_load(fImport, PerformanceAnalytics, stringb, tidyverse)# 将股票数据加载到一个时间序列对象的函数importSeries = function(symbol,from,to) # 从雅虎读取金融数据 input = yahooSeries(symbol,from = from, to = to)# 列名调整 adjClose = symbol %.% .Adj.Close inputReturn = symbol %.% .Return CReturn = symbol %.% .CReturn# 计算收益率并生成时间序列 inpu

2、t.Return = returns(input,adjClose) colnames(input.Return)1 = inputReturn input = merge(input,input.Return)# 计算累积收益率并生成时间序列 input.first = input,adjClose1 input.CReturn = fapply(input,adjClose, FUN = function(x) log(x) - log(input.first) colnames(input.CReturn)1 = CReturn input = merge(input,input.CRe

3、turn)# 删掉一些无用数据来释放内存 rm(input.first, input.Return, input.CReturn, adjClose, inputReturn, CReturn)# 返回时间序列 return(input)计算年化收益、标准差和夏普比率。# 获取短期、中期和长期政府债券的收益率序列from = 2001-01-01to = 2011-12-16tlt = importSeries(tlt,from,to)shy = importSeries(shyief = importSeries(iefmerged = merge(tlt,shy) % merge(ief)

4、vars = c(tlt.Return, shy.Returnief.Return)# 计算年化收益率 (t = table.AnnualizedReturns(merged,vars, Rf = mean(merged, na.rm=TRUE)# tlt.Return shy.Return ief.Return# Annualized Return 0.0810 0.0303 0.0684# Annualized Std Dev 0.1403 0.0173 0.0740# Annualized Sharpe (Rf=3%) 0.3496 -0.0086 0.4974结果如下:标的tlt.Re

5、turnshy.Returnief.Return年化收益率0.07720.14040.3378年化波动率0.02830.0173-0.0086年化夏普率 (Rf=2.81%)0.06450.07400.4729杠铃策略如果你经常看娱乐投资电视台,你应该听到过 “杠铃策略” 这个术语。这是指一个极端的投资组合配置方案。所有的权重都是极端情况,极端大或者极端小,类似一个杠铃的形状。针对政府债券的投资组合而言,这将意味着购买的债券要么是长期债券或短期债券而不是持有中期债券。那么什么样的风险收益情况下适合采用这个策略?首先, 将风险定义为投资组合的方差。虽然有各种各样的理由不使用方差来界定风险,但它是

6、从最古老的 50 年代开始这种类型的分析都是全新的,定义收益为预期收益。在上面的表中,年收益率表示持有资产的预期收益为 1 年,标准差的平方及方差表示风险。假设投资组合只包括持有长期和短期债券,便于需要计算投资组合的预期收益和风险。收益的计算是很容易的, 这是两种持仓的加权平均收益,权重就是每个资产的投入资本百分比。Rp=WTLTRTLT+WSHYRSHYRp=WTLTRTLT+WSHYRSHYs.t.WTLT+WSHY=1s.t.WTLT+WSHY=1显然这两种资产具有相关性 (在马科维茨于 1952 年的博士论文发表之前, 投资经理不了解相关性并且默认假设为 1 - 马科维茨因此获得了诺贝

7、尔奖)。假设收益是正态分布的,那么投资组合方差将是:Vp=W2TLT2TLT+W2SHY2SHY+WTLTWSHYTLTSHYCorr(TLT,SHY)Vp=WTLT2TLT2+WSHY2SHY2+WTLTWSHYTLTSHYCorr(TLT,SHY)风控模型基于上述知识改变持仓权重并为杠铃策略建立风险收益模型。# 检查相关性corr = cor(merged,vars,use = complete.obsc = corr,# 假设一个杠铃策略是持有长期和短期资产# 定义风险、收益ws = NULLwt = NULLmu = NULLsigma = NULL# 50个观察 n=50# 遍历杠铃

8、策略的权重rTLT = tAnnualized ReturnrSHY = tsTLT = tAnnualized Std DevsSHY = tfor (i in 0:n)wsi = i/n; wti = 1-wsi; mui = wsi * rSHY + wti * rTLT sigmai = wsi*wsi*sSHY*sSHY + wti*wti*sTLT*sTLT + wsi*wti*sSHY*sTLT*c ws = c(ws,wsi) wt = c(wt,wti) mu = c(mu,mui) sigma = c(sigma,sigmai) #风险收益的数据集rrProfile = d

9、ata.frame(ws=ws,wt=wt,mu=mu,sigma=sigma)注意, 上面的方程是二次的,可以配合刚刚创建的点画出抛物线。注意,通常收益数据会放在 X 轴上,而把拟合方差 (风险) 数据作为因变量放在 Y 轴。# 为模型拟合一个二次函数fit = lm(rrProfile$sigma rrProfile$mu + I(rrProfile$mu2)接下来,在图上添加拟合线。# 得到回归系数coe = fit$coefficients# 得到每个回归预测的风险值muf = NULLsfit = NULLfor (i in seq(0,.08,by=.001) muf = c(mu

10、f,i) s = coe1 + coe2*i + coe3*i2 sfit = c(sfit,s)# 绘图plot(rrProfile$sigma, rrProfile$mu, xlim=c(0,.022), ylim=c(0,.08), ylab=Expected Yearly Return xlab=Expected Yearly Variance main=Efficient Frontier for Government Bond Portfolios# 画出预测边值lines(sfit,muf,col=redtseries 包中的 portfolio.optim 比较而言更好用。只需

11、要输入预期收益率, 该函数会直接返回出来最优组合权重。在最低预期收益率 (比如 100% 持有 SHY) 到最高预期收益率 (比如 100持有 TLT) 之间修改输入的收益。注意,portfolio.optim 会使用日收益率做计算,因此代码将不得不做一些处理并假设一年有 255 个交易日。# 添加第三个标的#除非想做一个格点搜索,否则就需要对每个级别的收益减少风险来优化投资组合。# portfolio.optim 在时间序列中不能有 NA 值。m2 = removeNA(merged,vars)wSHY = NULLwIEF = NULLwTLT = NULLer = NULLeStd =

12、NULL# 在收益水平之间不断循环搜索找到最优的投资组合,包括最小值(rSHY)和最大值(rTLT)# portfolio.optim 使用日收益数据,因此不得不做出相应的调整for (i in seq(rSHY+.001),(rTLT-.001),length.out=100) pm = 1+i pm = log(pm)/255 opt = tseries:portfolio.optim(m2,pm=pm) er = c(er,exp(pm*255)-1) eStd = c(eStd,opt$ps*sqrt(255) wTLT = c(wTLT,opt$pw1) wSHY = c(wSHY,opt$pw2) wIEF = c(wIEF,opt$pw3)Efficient Frontier

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1