R语言对股票风险“溃疡指数”( Ulcer Index)曲面图可视化

简介: R语言对股票风险“溃疡指数”( Ulcer Index)曲面图可视化

目标函数的平滑度对于优化的成功至关重要。

可视化目标函数是一种检查平滑度的简便方法。

例如,让我们检查“溃疡指数”(  Ulcer Index)  ,这是一种风险度量,类似于“标准偏差”。

溃疡指数尝试通过衡量价格回撤来衡量持有交易或投资的压力。溃疡指数基于下降波动性有害、上升拨动性有利的概念。

不像金融行业通常用来衡量股票风险的标准差那样使用同样的权重来衡量上行波动和下行波动,溃疡指数使用了更加明智的方法。它声明投资者们往往只在乎股票的下行风险,并不在乎上行风险(因为在投资者做多的情况下,上行风险是有利的,相当于盈利)。

如果 Ulcer指数 是平滑函数,则可以使用例如非线性求解器轻松地将其用于优化。



#*****************************************************************
# 模拟数据
#*****************************************************************
load.packages('quantmod')


s = c(120,135,10) # 现货价格
r = c(0.15, 0.21,0.3) # 预期回报
sig  = c(0.12,0.36,0.17) # 预期标准差矩阵
r12 = 0.33 # 第一和第二资产之间的相关性
r13 = 0.3 #  第一和第三资产之间的相关性
r23 = 0.79 #第二和第三资产之间的相关性


# 构造相关矩阵
r = matrix(1,nr=3,nc=3)
r[upper.tri(rho)] = c(r12,r13,r23)




# 确保相关矩阵为正定义矩阵


rho = as.matrix(nearPD(rho, T)$mat)




#*****************************************************************
# 查看模拟价格
#*****************************************************************


plota.matplot(scale.one(xts.prices),main='Asset Perfromance')


#*****************************************************************
# 计算溃疡指数
#*****************************************************************
apply(cho,1, function(x) {
if(sum(x) > 1) NA
else
last(ulcer(x[1]*prices[,1] + x[2]*prices[,2] + 1-sum(x)*prices[,3])
}
)


#*****************************************************************
#可视化曲面 - 静态 3D 绘图
#*****************************************************************
persp(tem, tem, z,col='green',xlab='x',ylab='y'


上面的代码创建了一个很难研究的静态曲面图。

要创建可以用鼠标旋转的交互式3D图,使用:


#*****************************************************************
# 可视化曲面 - 交互式 3D 绘图,使用鼠标旋转
#*****************************************************************


persp3d(temp, temp, z,col='green',xlab='x',ylab='y')

溃疡指数 曲面光滑,是优化合适的选择。


相关文章
|
5月前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
5月前
|
数据可视化 数据挖掘 数据处理
R语言高级可视化技巧:使用Plotly与Shiny制作互动图表
【8月更文挑战第30天】通过使用`plotly`和`shiny`,我们可以轻松地创建高度互动的数据可视化图表。这不仅增强了图表的表现力,还提高了用户与数据的交互性,使得数据探索变得更加直观和高效。本文仅介绍了基本的使用方法,`plotly`和`shiny`还提供了更多高级功能和自定义选项,等待你去探索和发现。希望这篇文章能帮助你掌握使用`plotly`和`shiny`制作互动图表的技巧,并在你的数据分析和可视化工作中发挥更大的作用。
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
8月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
5月前
|
数据可视化
R语言可视化设计原则:打造吸引力十足的数据可视化
【8月更文挑战第30天】R语言可视化设计是一个综合性的过程,需要综合运用多个设计原则来创作出吸引力十足的作品。通过明确目标、选择合适的图表类型、合理运用色彩与视觉层次、明确标注与引导视线以及引入互动性与动态效果等原则的应用,你可以显著提升你的数据可视化作品的吸引力和实用性。希望本文能为你提供一些有益的启示和帮助。
|
8月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
8月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
8月前
|
移动开发 数据可视化
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
|
4月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
3月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
67 3