拓端tecdat|R语言资产配置: 季度战术资产配置策略研究
原文链接:http://tecdat.cn/?p=19252
原文出处:拓端数据部落公众号
概要
有人已经表示有必要在战术资产配置(Tactical Asset Allocation, 简称TAA)策略中使用共同基金而不是ETF。不是使用半月更新(每月两次),而是每季度更新,因为许多平台不允许更频繁地交易共同基金。因此,我们着手开发共同基金的TAA策略。
对于此TAA策略,我从八个不同的资产类别中选择了八个共同基金。每个共同基金的要求都包括与ETF的高度相关性,因此ETF可以根据需要替换共同基金。
我使用回测结果开发共同基金的战术策略。尽管共同基金的历史可以追溯到1996年及以后,但回测只能追溯到2003年。
#*****************************************************************
# 载入历史数据
#*****************************************************************load.packages('quantmod')data <- new.env()
getSymbols.extra(tickers, src = 'yahoo', from = '1970-01-01', env = data, set.symbolnames = T, auto.assign = T)
for(i in data$symbolnames) data[[i]] = adjustOHLC(data[[i]], use.Adjusted=T)# 检查数据plota.matplot(scale.one(data$prices)
#*****************************************************************
# 设置
#*****************************************************************
data$universe = data$prices > 0frequency = 'quarters'
# 查找期末,可以是“周”,“月”,“季度”,“年”commission = list(cps = 0.01, fixed = 10.0, percentage = 0.0)#价格滞后1天#prices = mlag(prices)
#*****************************************************************
# 每个重新平衡期间权重相等#******************************************************************data$weight[period.ends,] = ntop(prices[period.ends,], n)
策略:
根据每个季度选择排名最高的资产,5个月和20天的总收益率各占50%。必须通过过滤器才能选择排名第一的共同基金,在任何给定期间内。过滤器是3个月的移动平均线。
# 计算3个月移动平均值sma = bt.apply.matrix(prices, SMA, 3*21)# 如果价格跌破3个月移动平均线,请套现go2cash = prices <= smago2cash.d = ifna(go2cash, T)# 计算几个月的移动平均值sma = bt.apply.matrix(prices, SMA, 3, periodicity='months')go2cash = prices <= smago2cash.m = ifna(go2cash, T)# 以下所有逻辑均在period.ends完成#*****************************************************************
# 排名总分#*****************************************************************
# 分配# 如果资产高于其3个月移动平均值,则进行分配weight = iif(go2cash.d, 0, target.allocation)# 否则,它的权重分配给现金data$weight[period.ends,] = weight# 相同,但使用每月移动平均线触发data$weight[period.ends,] = weight#*****************************************************************
# 将总分的每个部分排在第一位#*****************************************************************
# 目标分配# 如果资产高于其3个月移动平均线,则进行分配weight = iif(go2cash.d, 0, target.allocation)#否则,它的权重分配给现金weight$CASH = 1 - rowSums(weight)data$weight[] = NAdata$weight[period.ends,] = weight#相同,但使用每月移动平均线触发现金weight = iif(go2cash.m, 0, target.allocation)
weight$CASH = 1 - rowSums(weight)#*****************************************************************
# 报告
#*****************************************************************plotbt(models)
print(plotstrategy(models))
ew QTS.d QTS.m QTS.RANK.d QTS.RANK.m
时期 Jun1996 - Mar2015 Jun1996 - Mar2015 Jun1996 - Mar2015 Jun1996 - Mar2015 Jun1996 - Mar2015
复合增长率 8.13 16.08 19.32 16.57 20.12
夏普比率 0.67 0.91 1.07 0.96 1.15
DVR 0.61 0.76 0.81 0.82 0.86
波动性 12.89 18.28 17.99 17.54 17.32
MaxDD -44.61 -26.78 -26.78 -25 -19.39
AvgDD -1.55 -3.09 -3.01 -2.87 -2.77
风险价值 -1.16 -1.79 -1.75 -1.71 -1.69
条件风险价值 -1.96 -2.82 -2.72 -2.71 -2.61
Exposure 99.98 99.98 99.98 99.98 99.98
假设每个季度只选择一个最优基金,那么该策略对输入参数很敏感。
最后,让我们查看各个时期:
dates.range = c('2002-12-31::2014-08-15', '::2002-12-31', '2014-08-15::')print(plot(models1))
}
总之,本文开发的共同基金策略可能对那些必须使用共同基金且只能按季度交易的投资者有所帮助。ETF重复了这种策略,因此,希望减少交易(仅按季度)的投资者可能也会发现此策略有用。
最受欢迎的见解
1.用机器学习识别不断变化的股市状况—隐马尔科夫模型(HMM)的应用
2.R语言GARCH-DCC模型和DCC(MVT)建模估计
3.R语言实现 Copula 算法建模依赖性案例分析报告
4.R语言COPULAS和金融时间序列数据VaR分析
5.R语言多元COPULA GARCH 模型时间序列预测
6.用R语言实现神经网络预测股票实例
7.r语言预测波动率的实现:ARCH模型与HAR-RV模型
8.R语言如何做马尔科夫转换模型markov switching model
9.matlab使用Copula仿真优化市场风险
拓端tecdat|R语言资产配置: 季度战术资产配置策略研究相关推荐
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- 拓端tecdat荣获2022年度51CTO博主之星
相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...
- 拓端tecdat|bilibili视频流量数据潜望镜
最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...
- R语言量化技术分析的百度指数关注度交易策略可视化
全文链接:http://tecdat.cn/?p=31556 传统的经济理论认为股票市场是有效的,价格波动是对市场信息的反应,投资者能够及时处理所有实时信息并做出最优决策(点击文末"阅读原文 ...
- R语言广义加性模型GAMs分析温度、臭氧环境数据绘制偏回归图与偏残差图
最近我们被客户要求撰写关于广义加性模型的研究报告,包括一些图形和统计输出. 视频:R语言广义相加模型(GAM)在电力负荷预测中的应用 拓端tecdat:R语言广义相加模型(GAM)在电力负荷预测中的应 ...
- R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
最近我们被客户要求撰写关于信用风险敞口的研究报告,包括一些图形和统计输出. 在之前的课堂上,我们已经看到了如何可视化多元回归模型(带有两个连续的解释变量).在此,目标是使用一些协变量(例如,驾驶员的年 ...
最新文章
- 【JDK源码】java.util.concurrent.atomic包常用类详解
- xenserver 虚拟机扩容lvm磁盘分区的方法_Linux磁盘扩容
- 巧用apply让javascript函数仅执行一次
- P1236-Network of Schools(学校网络)【最强联通块,Kosaraju】
- 光纤收发器的AB端可随便连接吗?
- caffe开始训练自己的模型(转载并验证过)
- QML工作笔记-PC端和Android端布局错位问题
- Maven常用命令-创建Java项目
- mnist数据集_探索Tensorflow2中神经网络算法——基于Mnist数据集(一)
- Oracle【IT实验室】数据库备份与恢复之三:OS备份/用户管理的备份与恢复
- myeclipse8.5 配置pydev环境
- http动态代理转socks5怎么获取?
- 求助fax4j,发送和接收传真
- AD 中快速查找隐藏NC元器件方法
- 【Linux】 浅谈 NCSI 及其在 Linux 上的实现
- 剑网3手游微信52服务器灵霄峡,剑网3指尖江湖灵霄峡宝箱位置详解攻略
- 联想小新22H2版跳过联网方法最新方法
- ocr人脸识别是什么原理,ocr的工作原理是什么
- 短线量化股票金股和长线量化金股有什么区别?
- php301劫持,PR劫持的定义和方法
热门文章
- 美团多渠道打包方案详解,速度快到白驹过隙 1
- [C/C++] C/C++延伸学习系列之STL及Boost库概述
- PLSC(Partial Least Square Correlation)偏最小二乘相关
- xen-tools虚拟机快速部署
- perl删除Windows下的图片缓存缩略图(Thumbs.db)
- EasyAndroid基础集成组件库之:EasyReflect 优雅的反射功能库
- CHAPTER 28 VMX SUPPORT FOR ADDRESS TRANSLATION
- 【欧洲AI复兴】马克龙:法国AI要赶美超中!
- Thrift 的原理和使用
- MAC 上的 Live Writer : ecto