Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测

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

原文出处:拓端数据部落公众号

分析师:Xingming Xu

基于当前统计的股票数据选择最优的选股方案和投资组合方案,以及预测股票价格未来一段时间的走向趋势以及波动程度,具有很大的实用价值

我们需要完成以下问题

问题一:投资者购买目标指数中的资产,如果购买全部,从理论上讲能够完美跟踪指数,但是当指数成分股较多时,购买所有资产的成本过于高昂,同时也需要很高的管理成本,在实际中一般不可行。

(1)在附件数据的分析和处理的过程中,请对缺损数据进行补全。

(2)投资者购买成分股时,过多过少都不太合理。对于附件的成分股数据,

请您通过建立模型,给出合理选股方案和投资组合方案。

问题二:尝试给出合理的评价指标来评估问题一中的模型,并给出您的分析结果。

问题三:通过附件股指据和您补充的数据,对当前的指数波动和未来一年的指数波动进行合理建模,并给出您合理的投资建议和策略。

针对问题一:分析投资者在给定十支股票中的最优选股方案和投资组合。首先,分别根据每支股票开盘价、最高价、最低价和收盘价确定其收益率和风险率,并从中剔除劣质股票,在剩余的股票中进行投资组合的最优化分析,优化指标分为三种:给定收益水平最小化风险;给定风险水平最大化收益;设定用户偏好系数,最优化给定复合指标。使用MATLAB软件进行求解,优化结果为:在倾向最大化收益时,七号股票在投资中占比较大,而倾向降低投资风险时,则在几个股票中进行选择。

针对问题二:对问题一中的模型进行评估。问题一中我们定义了分别利用开盘价、最高价、最低价以及收盘价计算股票收益率和风险率的最优化模型,现在我们来评估使用哪种指标的模型更加贴近真实情况。我们利用灰色关联分析方法来判断每一支股票的成交量与对应四种价格的关联程度的相对高低。通过建立模型可以得到十支股票的关联度的排序表,发现十支股票的成交量均与当日最高价的关联程度最高,因此,我们第一问中的模型中,使用最高价确定收益率和风险率最贴近实际。

针对问题三:对当前指数波动以及未来一年的指数波动进行预测,由于股票数据符合时间序列的特征,因此我们选用ARIMA模型进行股票数据的拟合和预测,并利用MAPE和RASE 指标对拟合程度进行评估。编写Python代码建立模型,并对模型进行训练,通过参数诊断后可以对未来数据进行预测,并且根据预测数据对不同类型的投资人群给予相应的投资建议。

ARIMA模型建立流程

Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第1张图片

abc002 预测结果以及拟合准确度

abc007号股票和abc010号股票预测走势

Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第2张图片

Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第3张图片

由评估结果,发现MAPE指标均不超过9%,且RMSE为1.0273,故拟合良好,可以预测该股票大体走势以及波动范围。

通过上述模型对全部十支股票进行预测,可以发现未来出现明显涨势的股票是abc007和abc008,未来出现明显跌势的是abc009和abc010,abc001、abc002、abc006呈现轻微涨势但波动范围较大,abc003呈现轻微跌势且波动范围较大,abc004、abc005无明显涨跌趋势,但波动范围较大。取典型股票预测趋势见下图:

Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第4张图片

Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第5张图片

因此,我们给出的投资建议是:

① 若资金充足,且风险厌恶程度高,则将大部分资金用于投资abc007号股票,少量资金用于投资abc008、abc001、abc002号股票用来降低风险;

② 若资金充足,且风险厌恶程度低,则将全部资金用于投资abc007号股票;

③ 若资金较少,且风险厌恶程度高,则可以购买能力范围内abc007号股票数只,其余资金用于投资abc001和abc008号股票;

若资金较少,且风险厌恶程度低,可以购买能力范围内abc007号股票数只,其余资金投资abc002、abc004、abc006号股票。

关于作者

Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第6张图片

在此对Xingming Xu对本文所作的贡献表示诚挚感谢,他在北京航空航天大学完成了电子信息专业学位,擅长数据采集,数学建模。


Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测_第7张图片

最受欢迎的见解

1.[](http://tecdat.cn/r%e8%af%ad%e...)用机器学习识别不断变化的股市状况—隐马尔科夫模型(HMM)的应用

2.[](http://tecdat.cn/r%e8%af%ad%e...)R语言GARCH-DCC模型和DCC(MVT)建模估计

3.[](http://tecdat.cn/r%e8%af%ad%e...)R语言实现 Copula 算法建模依赖性案例分析报告

4.[](http://tecdat.cn/r%e8%af%ad%e...)R语言COPULAS和金融时间序列数据VaR分析

5.[](http://tecdat.cn/r%e8%af%ad%e...)R语言多元COPULA GARCH 模型时间序列预测

6.[](http://tecdat.cn/r%e8%af%ad%e...)用R语言实现神经网络预测股票实例

7.[](http://tecdat.cn/r-%e8%af%ad%...)r语言预测波动率的实现:ARCH模型与HAR-RV模型

8.[](http://tecdat.cn/r%e8%af%ad%e...)R语言如何做马尔科夫转换模型markov switching model

9.matlab使用Copula仿真优化市场风险

你可能感兴趣的:(数据挖掘深度学习人工智能算法)