最近我们被客户要求撰写关于投资组合的研究报告,包括一些图形和统计输出。

动量和马科维茨投资组合模型使 均值方差优化 组合成为可行的解决方案。通过建议并测试:

  • 增加最大权重限制
  • 增加目标波动率约束

来控制 均值方差最优化的解。

下面,我将查看8个资产的结果:

首先,让我们加载所有历史数据

#*****************************************************************
# 加载历史数据#*****************************************************************load.packages('quantmod')# 加载保存的原始数据
#
load('raw.Rdata')getSymbols.extra(N8.tickers, src = 'yahoo', from = '1970-01-01', env = data, raw.data = for(i in data$symbolnames) data[[i]] = adjustOHLC(data[[i]]

接下来,让我们测试函数

#*****************************************************************
# 运行测试,每月数据
#*****************************************************************plot(scale.one(data$prices))

prices = data$pricesplotransition(res[[1]]['2013::'])

接下来,让我们创建一个基准并设置用于所有测试。

#*****************************************************************
# 建立基准
#*****************************************************************
models = list()    commission = list(cps = 0.01, fixed = 10.0, percentage = 0.0)data$weight[] = NAmodel = brun(data, clean.signal=T, 

接下来,让我们获取权重,并使用它们来进行回测

#*****************************************************************
#  转换为模型结果
#*****************************************************************
CLA = list(weight = res[[1]], ret = res[[2]], equity = cumprod(1 + res[[2]]), type = "weight")obj = list(weights = list(CLA = res[[1]]), period.ends

我们可以复制相同的结果

#*****************************************************************
#进行复制
#*****************************************************************
weight.limit = data.frame(last(pric
obj = portfoli(data$prices, periodicity = 'months', lookback.len = 12, silent=T, const.ub = weight.limit,urns,1) + colSums(last(hist.returns,3)) + colSums(last(hist.returns,6)) + colSums(last(hist.returns,12))) / 22ia},min.risk.fns = list()

另一个想法是使用Pierre Chretien的平均输入假设

#*****************************************************************
# 让我们使用Pierre的平均输入假设
#*****************************************************************
obj = portfolio(data$prices, periodicity = 'months', lookback.len = 12, sicreate.ia.fn =  create.(c(1,3,6,12), 0),min.risk.fns = list(TRISK.AVG = target.risk.portfolio(target.r)

最后,我们准备看一下结果

#*****************************************************************
#进行回测
#*****************************************************************plotb(models, plotX = T, log = 'y', Left

layout(1)
barplot(sapply(models, turnover, data)  

使用平均输入假设会产生更好的结果。

我想应该注意的主要观点是:避免盲目使用优化。相反,您应该使解决方案更具有稳健性。


R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现相关推荐

  1. 利用python构建马科维茨_R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现...

    动量和马科维茨投资组合模型使 均值方差优化 组合成为可行的解决方案.通过建议并测试: 增加最大权重限制 增加目标波动率约束 下面,我将查看8个资产的结果: 首先,让我们加载所有历史数据 #****** ...

  2. 动量和马科维茨Markowitz投资组合(Portfolio)模型实现

    原文链接:http://tecdat.cn/?p=17931  动量和马科维茨投资组合模型使 均值方差优化 组合成为可行的解决方案.通过建议并测试: 增加最大权重限制 增加目标波动率约束 来控制 均值 ...

  3. R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms  )构建回归模型.通过method参数指定算法名称.通过trainControl函数控 ...

  4. R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程

    R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型.通过method参数指定算法名称.通过trainControl函数控制训练过程 目录

  5. R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数

    R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录

  6. R语言使用lm函数拟合多元线性回归模型、假定预测变量没有交互作用(Multiple linear regression)

    R语言使用lm函数拟合多元线性回归模型.假定预测变量没有交互作用(Multiple linear regression) 目录

  7. R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化

    R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...

  8. R语言决策树、bagging、随机森林模型在训练集以及测试集的预测结果(accuray、F1、偏差Deviance)对比分析、计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况

    R语言决策树.bagging.随机森林模型在训练集以及测试集的预测结果(accuray.F1.偏差Deviance)对比分析.计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况 ...

  9. R语言使用for循环绘制多个模型的DCA(Decision Curve Analysis)曲线并保存特定分辨率的DCA曲线的结果文件

    R语言使用for循环绘制多个模型的DCA(Decision Curve Analysis)曲线并保存特定分辨率的DCA曲线的结果文件 目录

最新文章

  1. mysql数据库三级分类_5.在 MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是?...
  2. java php 单点登陆,cas实现单点登录,登出(java跟php客户端)(转)
  3. 淘宝文件系统大文件结构
  4. iOS 判断纯汉字,还是是否含有汉字
  5. 使用 SAP UI5 CLI 命令行工具构建和运行 SAP UI5 应用
  6. UITabBarController的基本原理及使用(一)
  7. 算法导论2.1-2.3 部分答案
  8. Python基础2(2017-07-18)
  9. SQL 2005数据库转为2000的终极解决方案
  10. linux能力集机制,linux能力机制
  11. java json 嵌套解析_我们如何解析Java中的嵌套JSON对象?
  12. 某云,下载.ncm格式自动转换为flac、MP3格式工具
  13. 【贴图操作】怎么用sp啊?
  14. Java实现二维码扫码授权登陆
  15. linux修改文件类型和权限
  16. 微服务实现网关统一鉴权-接口级别
  17. Mac版 微信 撤回消息拦截两种方法
  18. GMM-EM in Mnist
  19. 【Spring注解驱动开发】使用@Autowired@Qualifier@Primary三大注解自动装配组件,你会了吗?
  20. 3D目标检测——代码理解——Second代码:数据处理kitti_dataset.py的理解

热门文章

  1. Justice(hdu6557)
  2. 如何用css绘制一个三角形?
  3. LeetCode 1710. 卡车上的最大单元数
  4. 分享我的Android蓝牙开源作品—HBluetooth
  5. pdf 生成文件工具类
  6. [ 李超线段树 ] BZOJ3165
  7. 简单几步轻松查看手机生产日期,换屏哥上门维修喊你一起来学习
  8. Oracle基础之保留字和关键字
  9. Java笔记——文件操作I/O 02
  10. 使用NCR防范xss。