1、实验一:计算动态波动率 1)任选一只股票,分别利用简单加权移动平均法(SMA)、一般加权移动平均法(GMA)和指数加权移动平均法(EWMA)计算这只股票收益率在2018年至2022年这五年的动态波动率,分别将股票收益率与三种方法计算的倍动态波动率画在同一图形中,并比较三种计算方法的差异。其中,一般加权移动平均法前4天收益率数据的权重分别为0.1、0.2、0.3和0.4,指数加权移动平均法的衰减因子设为0.94。作图要求尽量与实验内容PPT中12页图形风格相符。 2)任选两只股票构成等权重的投资组合,利用指数加权移动平均法(EWMA)计算在2018年至2022年这五年间等权重投资组合的动态波动率,以及两只股票收益率间的动态相关系数。利用一页两图形式分别绘制动态波动率和动态相关系数的时序图,并结合实际情况进行分析。其中指数加权移动平均法的衰减因子设为0.94。作图要求尽量与实验内容PPT中12页图形风格相符。
时间: 2024-04-10 15:29:38 浏览: 28
好的,你的问题是关于计算动态波动率的实验。下面是对你的问题的回答:
1) 首先选择一只股票,然后使用简单加权移动平均法(SMA)、一般加权移动平均法(GMA)和指数加权移动平均法(EWMA)计算该股票在2018年至2022年这五年间的动态波动率。将股票收益率和这三种方法计算的动态波动率绘制在同一张图上,并比较三种计算方法之间的差异。对于一般加权移动平均法,前4天的收益率数据的权重分别为0.1、0.2、0.3和0.4;对于指数加权移动平均法,衰减因子设为0.94。绘制的图形应尽量与实验内容PPT中第12页的图形风格相符。
2) 选择两只股票构成等权重的投资组合,然后利用指数加权移动平均法(EWMA)计算该等权重投资组合在2018年至2022年这五年间的动态波动率,以及两只股票收益率之间的动态相关系数。绘制两张图,分别展示动态波动率和动态相关系数的时序图,并结合实际情况进行分析。指数加权移动平均法的衰减因子设为0.94。绘制的图形应尽量与实验内容PPT中第12页的图形风格相符。
希望以上回答能解决你的问题!如果还有其他问题,请随时提问。
相关问题
任选两只股票用Python使用日度交易行情信息构造10日简单移动平均线、动量和滚动波动率三个特征,分别画出时间序列图,附上完整代码
好的,我理解您的问题了。以下是我提供的Python代码,其中我选择了AAPL和IBM两个股票,使用了pandas和yfinance库来获取日交易数据,然后计算了10日简单移动平均线、动量和滚动波动率三个特征,并画出了时间序列图。
```python
import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
# 获取AAPL和IBM的交易数据
aapl = yf.download("AAPL", start="2020-01-01")
ibm = yf.download("IBM", start="2020-01-01")
# 计算10日简单移动平均线
aapl['SMA'] = aapl['Close'].rolling(window=10).mean()
ibm['SMA'] = ibm['Close'].rolling(window=10).mean()
# 计算动量
aapl['Momentum'] = aapl['Close'] - aapl['Close'].shift(1)
ibm['Momentum'] = ibm['Close'] - ibm['Close'].shift(1)
# 计算滚动波动率
aapl['Rolling Volatility'] = aapl['Close'].rolling(window=10).std()
ibm['Rolling Volatility'] = ibm['Close'].rolling(window=10).std()
# 画出时间序列图
plt.figure(figsize=(15,5))
plt.plot(aapl['Close'], label='AAPL Close')
plt.plot(aapl['SMA'], label='AAPL 10-day SMA')
plt.plot(aapl['Momentum'], label='AAPL Momentum')
plt.plot(aapl['Rolling Volatility'], label='AAPL Rolling Volatility')
plt.legend(loc='upper left')
plt.title('AAPL')
plt.show()
plt.figure(figsize=(15,5))
plt.plot(ibm['Close'], label='IBM Close')
plt.plot(ibm['SMA'], label='IBM 10-day SMA')
plt.plot(ibm['Momentum'], label='IBM Momentum')
plt.plot(ibm['Rolling Volatility'], label='IBM Rolling Volatility')
plt.legend(loc='upper left')
plt.title('IBM')
plt.show()
```
希望这个代码对您有所帮助。如果您有任何其他问题,请随时问我。
利用简单移动平均法处理数据怎么处理
利用简单移动平均法是一种常见的平滑时间序列数据的方法。它通过计算一系列连续时间窗口内数据的平均值来减少数据的波动性,从而更好地观察趋势。
下面是使用简单移动平均法处理数据的步骤:
1. 确定时间窗口的大小:选择一个合适的时间窗口大小,这将决定了平均值的计算范围。较小的窗口可以更敏感地反映数据的变化,但可能会过度拟合噪音;较大的窗口可以平滑噪音,但可能无法捕捉到较小的变化。
2. 计算移动平均值:在时间序列数据中,选择第一个时间窗口,计算该窗口内数据的平均值。然后,将窗口向后移动一个时间步长,并计算新窗口内数据的平均值。重复此过程,直到覆盖整个时间序列。
3. 应用移动平均值:将计算得到的移动平均值与原始数据对应位置进行对比。移动平均值可以作为新的时间序列数据,用于观察数据的趋势。
需要注意的是,简单移动平均法会引入一定的延迟,因为平均值是基于过去一段时间内的数据计算得出的。此外,移动平均法适用于平稳或趋势稳定的数据,对于具有明显的季节性或非线性趋势的数据,可能需要采用其他方法。
希望以上信息对你有帮助!如果你有任何其他问题,请随时提出。