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

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

我们需要完成以下问题

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

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

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

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

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

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

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

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

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


ARIMA模型建立流程



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


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

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


点击标题查阅往期内容


R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格


01

02

03

04

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

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

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

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

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

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

相关文章
|
10天前
|
机器学习/深度学习 人工智能 PyTorch
200行python代码实现从Bigram模型到LLM
本文从零基础出发,逐步实现了一个类似GPT的Transformer模型。首先通过Bigram模型生成诗词,接着加入Positional Encoding实现位置信息编码,再引入Single Head Self-Attention机制计算token间的关系,并扩展到Multi-Head Self-Attention以增强表现力。随后添加FeedForward、Block结构、残差连接(Residual Connection)、投影(Projection)、层归一化(Layer Normalization)及Dropout等组件,最终调整超参数完成一个6层、6头、384维度的“0.0155B”模型
200行python代码实现从Bigram模型到LLM
|
25天前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
274 0
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
2月前
|
数据采集 自然语言处理 JavaScript
Playwright多语言生态:跨Python/Java/.NET的统一采集方案
随着数据采集需求的增加,传统爬虫工具如Selenium、Jsoup等因语言割裂、JS渲染困难及代理兼容性差等问题,难以满足现代网站抓取需求。微软推出的Playwright框架,凭借多语言支持(Python/Java/.NET/Node.js)、统一API接口和优异的JS兼容性,解决了跨语言协作、动态页面解析和身份伪装等痛点。其性能优于Selenium与Puppeteer,在学术数据库(如Scopus)抓取中表现出色。行业应用广泛,涵盖高校科研、大型数据公司及AI初创团队,助力构建高效稳定的爬虫系统。
Playwright多语言生态:跨Python/Java/.NET的统一采集方案
|
5月前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
669 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
2月前
|
前端开发 JavaScript API
Webview+Python:用HTML打造跨平台桌面应用的创新方案
本文系统介绍了使用PyWebView库结合HTML/CSS/JavaScript开发跨平台桌面应用的方法。相比传统方案(如PyQt、Tkinter),PyWebView具备开发效率高、界面美观、资源占用低等优势。文章从技术原理、环境搭建、核心功能实现到性能优化与实战案例全面展开,涵盖窗口管理、双向通信、系统集成等功能,并通过“智能文件管理器”案例展示实际应用。适合希望快速构建跨平台桌面应用的Python开发者参考学习。
191 1
|
2月前
|
数据采集 数据可视化 数据挖掘
基于Python的App流量大数据分析与可视化方案
基于Python的App流量大数据分析与可视化方案
|
3月前
|
算法 数据安全/隐私保护
基于GARCH-Copula-CVaR模型的金融系统性风险溢出效应matlab模拟仿真
本程序基于GARCH-Copula-CVaR模型,使用MATLAB2022A仿真金融系统性风险溢出效应。核心功能包括计算违约点、资产价值波动率、信用溢价及其直方图等指标。GARCH模型用于描述资产收益波动性,Copula捕捉依赖结构,CVaR度量极端风险。完整代码无水印输出。 具体步骤:首先通过GARCH模型估计单个资产的波动性,再利用Copula方法构建多资产联合分布,最后应用CVaR评估系统性风险。程序展示了详细的运行结果和图表分析,适用于金融市场风险量化研究。
|
3月前
|
算法 数据挖掘 数据安全/隐私保护
基于CS模型和CV模型的多目标协同滤波跟踪算法matlab仿真
本项目基于CS模型和CV模型的多目标协同滤波跟踪算法,旨在提高复杂场景下多个移动目标的跟踪精度和鲁棒性。通过融合目标间的关系和数据关联性,优化跟踪结果。程序在MATLAB2022A上运行,展示了真实轨迹与滤波轨迹的对比、位置及速度误差均值和均方误差等关键指标。核心代码包括对目标轨迹、速度及误差的详细绘图分析,验证了算法的有效性。该算法结合CS模型的初步聚类和CV模型的投票机制,增强了目标状态估计的准确性,尤其适用于遮挡、重叠和快速运动等复杂场景。
|
6月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
293 73
|
3月前
|
算法 数据处理 数据安全/隐私保护
分别通过LS和RML进行模型参数辨识matlab仿真
本程序通过最小二乘法(LS)和递归最大似然估计(RML)进行模型参数辨识,并在MATLAB2022A中仿真。仿真输出包括参数辨识误差及收敛值。程序展示了两种方法的参数估计值及其误差收敛情况,适用于控制系统设计与分析。最小二乘法适合离线批量处理,而RML则适用于实时在线处理。核心代码实现了LS辨识,并绘制了参数估计值和误差变化图。

热门文章

最新文章

推荐镜像

更多