我正在尝试对给定股票未来30天的波动性进行滚动预测(即预测时间t + 1,然后在预测t + 2时使用此预测,依此类推...)
我这样做是使用R的rugarch软件包,该软件包是我使用rpy2软件包在Python中实现的。 (我发现Python软件包的文档记录不清,更难使用。这些软件包中的大多数在R中也已经成熟得多)。
到目前为止,这是我的代码,该模型适用于直到我拥有的最后30天数据的股票回报的整个时间序列。 然后,我对我拥有的未见数据的最后30天进行滚动预测(我认为)。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from rpy2.robjects.packages import importr
import rpy2.robjects as robjects
from rpy2.robjects import numpy2ri
ticker = 'AAPL'
forecast_horizon = 30
prices = utils.dw.get(filename=ticker, source='iex', iex_range='5y')
df = prices[['date', 'close']]
df['daily_returns'] = np.log(df['close']).diff() # Daily log returns
df['monthly_std'] = df['daily_returns'].rolling