全文链接:http://tecdat.cn/?p=31123
原文出处:拓端数据部落公众号
分析师:Yihan Mao
解决方案
本文为客户提供咨询,让个人购买人员了解美国国债期货的特性,以便于进行个人投资及管理。
任务/目标
由于国债期货的方便,可以快速交易,所以无论是用来投机还是用来对冲风险都有很好的作用效果。我们提取美国国债期货的数据,进行波动性,收益率上的分析,并进行价格预测。
数据源准备
用python(import YahooFinance)获取美国国债期货近10年的数据作为基本分析数据。同时,由于国债期货的价格受到许多宏观因素的影响,所以并且还需要找到一些其他的影响要素,这里我们提取GDP,CPI,Treasury Yield(收益率)并作为我们的特征。
特征转换
数据预处理。datetime换成标准时间,算出日logreturn(log收益),分别算出15,50,100天的SMA与RSI加入到特征。画出boxplot,通过图过滤掉outliers跟一些不正常的点。用pandas筛选数据,填补过滤掉空数据。
分析收益
画出日收益率,寻找聚集波动性强的点,进行进一步分析。通过图看出在哪一段时间日收益较高,并且寻找近期事件发生的影响。我们发现存在收益相对较高,有投资价值。
分析波动性
波动性可以考虑为标准差的表现。首先直观观察,画出短期SMA与长期SMA,交点较多的地方为潜在波动性强的地方。再画出Bollinger Bands,密集的地方为波动性大的地方。
将这段时间发生的事情结合在一起分析,可以看出人们在发生经济变动的时候会选择用此国债期货进行风险转移。
建模分析
Regression Model:
由于特征数据有多重因素,我们可以一个多重线性回归。 通过画图scatterplot matrix我们发现,很多之间并不是线性,而且存在变量之间的线性关系(由于目标是预测,所以可以忽略),所以我们进行Box-Tidewell Transformation. 然后选取训练集合跟预测集合,建立模型进行回归预测。
ARIMA:
由于国债期货不是商品类型,所以我们不考虑季节性的变化。(ARIMA模型是指将非平稳时间序列转化为平稳时间序列,然后将结果变量做自回归(AR)和自平移(MA)。)
首先画图查看是否存在自相关。用ADF test来检测是否平稳,如果不平稳我们对其进行差分处理,知道检测P-value<0. 然后用Ljung-Box Test 检测白噪声,如果不是白噪声证明可以预测此时间序列。
接下来定阶。Auto-select得知选择ARIMA(1,1,1). 我们建立模型。并对模型进行residual分析,得知模型良好。
同时看出residual可以看做normal分布。
我们选择前80%的数据为训练集合,后20%为测试集合,建立预测。
可以看出预测值与实际值近似。如果假设经济状况平稳,没有重大事情发生的状况下(eg.covid-19),可以参考其变化来进行投机,实际上仍需考虑多方面宏观因素。
随机森林:
用随机的方式建立一个由很多决策树组成的,每一棵树都只负责自己的部分。每一棵树来进行自己的分类运算,最后选择评分最高的来进行预测。
GARCH模型:
金融市场有杠杆效应。方差并不是恒定的,ARCH模型是一个很好的解决方法。
由于国债期货长达30年,很多宏观因素的变化对其有很大的影响。
预测取决于我们的目的,如果我们的目的仅仅是投机,我们只需要观察价格的变化走势,同时受到一些宏观因素的影响。比如我们还可以通过画出RSI的变化,来训练什么时候应该买入卖出。
同时根据交易量(Volume)的变化可以看出人们的活动状况,尤其是在宏观事件影响的时候。这个对于风险管理有很重要的参考价值。
改进:
可以根据每周工作日设置indicator变量,更好的反应时间因素。同时可以设置他们的相互作用(interaction effect)。
选取的宏观因素可以进一步增加。
关于作者
在此对Yihan Mao对本文所作的贡献表示诚挚感谢,他毕业于厦门大学(马来西亚分校),专长金融数学,数据分析可视化。
最受欢迎的见解
1.R语言对S&P500股票指数进行ARIMA + GARCH交易策略
2.R语言改进的股票配对交易策略分析SPY—TLT组合和中国股市投资组合
3.R语言时间序列:ARIMA GARCH模型的交易策略在外汇市场预测应用
8.R语言如何做马尔科夫转换模型markov switching model
标签:预测,ARIMA,python,模型,arima,波动性,国债,GARCH From: https://www.cnblogs.com/tecdat/p/17026332.html