R语言收益率和波动性模拟股票价格COMP226带自测题

2个月前 (11-17 23:56)阅读4回复0
王富贵
王富贵
  • 管理员
  • 注册排名5
  • 经验值97460
  • 级别管理员
  • 主题19492
  • 回复0
楼主

全文链接:tecdat.cn/?p=29581

在本工做表中,我们将研究价格、收益率和颠簸性。颠簸性凡是用收益率的均方差来权衡,例如夏普比率的分母,它被用做风险的权衡原则。我们将利用股票价格的均匀对数收益率和颠簸性(对数回报的均方差)来模仿股票价格。

价格和收益率

library(quantmod)

getSymbols("AAPL")

price_AAPL - Ad(AAPL)

plot(price_AAPL, main = "AAPL prices")

复造代码

我们留意到的第一件事是,那个价格序列似乎不是平稳的,也就是说,没有明显的均匀价格(因而议论价格的均方差现实上没有意义)。利用那种非平稳时间序列长短常有问题的——时间序列阐发的大部门集中在平稳时间序列上;在实词时间序列中利用时间序列的第一步凡是是导出平稳时间序列,也就是说,一个随时间改变具有恒定均值和均方差的时间序列。因为价格不是平稳的,我们将留意力转向股票的收益率。

returns_AAPL - diff(log(price_AAPL))

plot(returns_AAPL, main = "AAPL % returns")

复造代码

展开全文

请留意,在收益率图中有一些聚类,不是在收益率的符号中(那对交易AAPL股票间接有用),而是在收益率的幅度中,也就是说,明天的收益率可能在幅度上与今天的收益率类似(无论是正的仍是负的)。除此之外,收益率比价格不变得多。让我们看看它们的柱状图。

hist(returns_AAPL, breaks = 100, col="brown")

复造代码

操练

查抄当我们利用简单收益率而不是对数收益率时,我们适才看到的两个数字能否十分类似

解答

library(TTR)

dev.off()

复造代码

请留意,简单的收益率曲方图十分类似,但不完全不异。

收益率的散布似乎有点像正态(高斯)散布。像布莱克-斯科尔斯期权订价公式如许的模子是基于收益率现实上是对数正态散布的假设。事实上,那只是对现实的近似——现实股价收益率比正态散布所表示的更有可能呈现极值(也就是说,现实回报散布有肥尾)。

独立性怎么样?

那些收益率在时间上是彼此独立的吗?那里有一个快速的办法来部门答复那个问题:

acf(returns_AAPL[-1], main = "Autocorrelation of returns")

复造代码

该自相关查抄给定周期与将来周期之间的相关性。

请留意,持续收益率之间似乎没有任何自相关。然而,我们已经留意到收益率幅度的一些聚类,那凡是被称为颠簸率聚类。利用acf反复上面的图表,但利用收益率的绝对值(利用函数abs()获得)。你如今将察看到自相关。

解答

acf(abs(returns_AAPL[-1]), main = "Autocorrelation of absolute returns")

dev.off()

复造代码

请留意下面新图中的自相关。

那些回报的均匀值和均方差是几?

mu

[1] 0.001369495

sigma

[1] 0.02572958

复造代码

什么是颠簸性?

定义

颠簸率是收益率的年化均方差。20的颠簸率意味着一年后资产价格从现值下跌或上涨超越20%的可能性约为三分之一。那是基于收益率是对数正态散布的假设,那不是实的,但它仍然是一个有用的建模假设,至少做为起点。在R中,给定一系列每日价格,对数回报的年化均方差的计算如下:

sqrt(252) * sd(diff(log(priceSeriesDaily))) * 100

复造代码

利用收益率模仿股票价格

似乎对数收益率有一个不变的均值和均方差。让我们假设它们现实上是正态散布的,所以模仿股票价格的目标。假设对数收益率正态散布为均方差μ和均方差sigma。那么我们若何模仿价格?回想一下对数收益率的定义:

从头安放我们得到

因而,我们将利用以下办法来模仿股票价格:

1.设置一个初始化价格(鄙人面的代码中是100)。2.从正态散布中绘造一个随机数,均匀μ和均方差sigma是模仿的参数。那个数字将代表日记返回。3.对日记返回停止指数运算,并将其与之前的价格相乘以获得新的价格。4.反复步调2.和3.停止许多模仿步调。

操练

施行上述步调以模仿价格过程并生成单个模仿价格轨迹,并绘造它以生成如下图的图形:

解答

plot(p, type = "l"

dev.off()

复造代码

操练

将上一个操练中的模仿代码包拆在一个函数中,并利用它来产生6种差别的模仿价格轨迹。利用

par(mfrow=c(3,3))

复造代码

将它们放在3×3的网格中,以即可以曲不雅地比力。它们可能会产生如下内容:

解答

par(mfrow=c(3,3))

for (i in 1:6) dotion(simNumber=i)

dev.off()

复造代码

更受欢迎的观点

1.R语言对S&P500股票指数停止ARIMA + GARCH交易战略

2.R语言改良的股票配对交易战略阐发SPY—TLT组合和中国股市投资组合

3.R语言时间序列:ARIMA GARCH模子的交易战略在外汇市场预测应用

4.TMA三均线期指高频交易战略的R语言实现

5.r语言多均线量化战略回测比力

6.用R语言实现神经收集预测股票实例

7.r语言预测颠簸率的实现:ARCH模子与HAR-RV模子

8.R语言若何做马尔科夫转换模子markov switching model

9.matlab利用Copula仿实优化市场风险

0
回帖

R语言收益率和波动性模拟股票价格COMP226带自测题 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息