【matlab编程代做】基于MATLAB的股票指数预测算法仿真
- 格式:doc
- 大小:40.50 KB
- 文档页数:5
MATLAB中基于GARCH模型对股票指数的拟合与预测引言股票市场作为金融领域的重要组成部分,对经济发展起着重要的促进作用。
股票指数的波动情况直接反映了市场的风险状况,因此对股票指数的拟合与预测成为了投资者和决策者关注的重要问题。
而Generalized Autoregressive Conditional Heteroskedasticity (GARCH)模型,作为股票市场波动性预测的重要工具,可以有效地对股票指数的波动性进行建模和预测。
本文将介绍在MATLAB环境下使用GARCH模型对股票指数进行拟合与预测的方法和步骤。
一、GARCH模型简介GARCH模型是由Engle(1982)提出的一种用于描述时间序列波动性的模型,其主要思想是将波动性建模为过去的波动项和过去的波动性的函数。
GARCH模型可以被表示为:\[ \sigma^2_t = \omega + \alpha \epsilon^2_{t-1} + \beta \sigma^2_{t-1} \]二、股票指数数据的获取与预处理在MATLAB环境中,可以利用Datafeed Toolbox获取股票指数的历史数据。
假设我们以上证指数为例,可以使用以下代码获取上证指数的历史收盘价数据:```% 设置获取股票指数数据的参数c = ctp('datafeed');instrument = '000001.SH'; % 上证指数代码startdate = '01-Jan-2020'; % 起始日期enddate = '31-Dec-2020'; % 截止日期获取到的数据包括日期、开盘价、最高价、最低价、收盘价等信息。
在使用GARCH模型进行拟合和预测之前,还需要对股票指数数据进行预处理,包括对收盘价数据进行对数化处理以及计算股票指数收益率序列等操作。
```% 对收盘价数据进行对数化处理close_price = data.Close; % 获取收盘价数据log_close_price = log(close_price); % 对收盘价数据进行对数化处理% 计算股票指数的日收益率序列returns = diff(log_close_price); % 计算对数收盘价的一阶差分,得到日收益率序列```在MATLAB环境中,可以使用Econometrics Toolbox中的garch函数来对股票指数的收益率序列进行GARCH模型的拟合:```% 设置GARCH模型参数Mdl = garch('GARCHLags',1,'ARCHLags',1,'Distribution','Gaussian');% 拟合GARCH模型EstMdl = estimate(Mdl,returns);```通过上述代码,可以得到拟合好的GARCH模型EstMdl,其中包括了模型的参数估计结果以及残差序列的条件方差序列等信息。
文章编号:100124098(2003)022*******基于M A TLAB 的神经网络在股市预测中的应用Ξ侯木舟,韩旭里(中南大学信息科学与工程学院,湖南长沙 410083)摘 要:以道氏三大假说作为理论基础,设计一个三层BP 网络,并建立相应的数学模型,以M A TLAB 为工具,个股上海石化(600688)140天实际收盘价作为样本,对网络进行训练后,预测10天的收盘价,并计算出与实际收盘价的离差Q =0.0146,Q 已经小到几乎可以忽视的程度。
关键词:BP 神经网络;数学模型;M A TLAB ;离差中图分类号:F 830.9 文献标识码:A股市变化叵测,掌握其变化规律并预测其走势,一直是投资者梦寐以求的一件事。
但影响股市的因素太多,因此,要从理论上彻底弄清股市的变化机理将十分困难。
但股市确实隐含着规律性,因此出现了各种各样的学说和假说,有的甚至相互矛盾,但它们都从某个侧面反映了这种规律性,本文的理论基础是股市技术分析中道氏理论中的三大假设:①市场行为涵盖一切信息;②价格沿趋势移动;③历史会重演。
根据道氏三大假设,股市是可以预测的,至少是短期可预测的,但至今没有一个大家都满意的模型,本文试图以M A TLAB 的神经网络工具箱建模,并借助计算机快速处理大量数据的能力,在股市短期预测方面作一个尝试。
从数学上讲,股市的收盘价p =f (n )是日期n 的函数,但f (n )的解析式却无法求出。
由于三层BP 网络具有逼近任意函数的能力,设计一个三层BP 网络,并从Internet 上h ttp : www .stock star .com 网站下载了上海石化(600688)140个交易日的收盘价作为原始数据。
同时利用M A TLAB 的神经网络工具箱中的函数,140个交易日的收盘价作为样本(教师),对上述神经网络进行训练、仿真、并预测10天的收盘价。
计算其与实际收盘价离差,来验证BP 网络模型。
使用MATLAB进行股票价格预测股票市场一直以来都是人们关注的焦点,每个投资者都希望能够在股票交易中获得最大的利益。
然而,股票市场的波动性使得股票价格的预测成为一项困难的任务。
幸运的是,现代技术的进步使得利用计算机和数学模型来预测股票价格成为可能。
在本文中,我们将探讨使用MATLAB进行股票价格预测的方法和技术。
在进行股票价格预测之前,我们首先需要了解一些基本概念。
股票价格是由多个因素决定的,包括公司基本面、行业走势、市场心理等等。
这些因素的复杂性使得股票价格的预测非常困难。
然而,通过使用数学模型和历史数据,我们可以尝试预测未来的股票价格。
MATLAB是一种功能强大的数学软件,它提供了丰富的工具和函数,用于进行各种数学计算和数据分析。
对于股票价格预测,我们可以使用MATLAB中的统计工具箱和金融工具箱来实现。
在进行股票价格预测之前,我们首先需要收集历史股票价格数据。
这些数据可以通过各种途径获取,例如金融网站或数据提供商。
一旦我们获取到了历史股票价格数据,我们可以将其导入到MATLAB中进行分析和处理。
首先,我们可以使用MATLAB中的时间序列分析工具来对股票价格数据进行建模。
时间序列分析是一种用于处理时间相关数据的统计技术。
通过对股票价格数据进行时间序列分析,我们可以发现其中的一些模式和趋势。
例如,我们可以通过对数据进行移动平均或指数平滑来平滑价格波动。
这可以帮助我们识别出价格的长期趋势。
接下来,我们可以使用MATLAB中的回归分析工具来建立股票价格和其他因素之间的数学模型。
回归分析是一种用于研究变量之间关系的统计技术。
通过对多个因素进行回归分析,我们可以建立一个数学模型,用于预测未来的股票价格。
例如,我们可以考虑公司基本面指标、行业走势、市场心理等因素,并使用这些因素来预测股票价格。
除了使用时间序列分析和回归分析,我们还可以使用MATLAB中的神经网络工具箱来进行股票价格预测。
神经网络是一种模拟人脑神经系统的数学模型,可以用于模拟和预测复杂的非线性关系。
MATLAB中基于GARCH模型对股票指数的拟合与预测股票市场作为金融市场中最具波动性的一部分,在投资者中备受关注。
为了更好地理解和预测股票市场的波动情况,金融学家们开发了各种统计模型来对股票指数进行拟合和预测。
基于GARCH模型的方法因为其能很好地捕捉股票市场波动的特点而备受青睐。
本文将利用MATLAB软件来介绍如何使用GARCH模型对股票指数进行拟合和预测。
GARCH模型,即广义自回归条件异方差模型(Generalized Autoregressive Conditional Heteroskedasticity Model),是由Tim Bollerslev在1986年提出的一种用于描述时间序列波动性的模型。
GARCH模型的提出克服了传统的对等方差假设的限制,使得模型更适应于描述金融市场中存在的波动聚集现象。
GARCH模型能够对股票指数在不同时间点的波动进行建模,并且预测未来一段时间内的波动情况。
我们将使用MATLAB软件来拟合一个GARCH模型,以对股票指数的历史波动进行描述。
假设我们选择了道琼斯工业平均指数(Dow Jones Industrial Average)作为我们的研究对象。
我们需要通过MATLAB中的数据获取功能来获取道琼斯指数的历史数据。
接下来,我们可以利用MATLAB中的统计工具箱(Statistics and Machine Learning Toolbox)来拟合GARCH模型。
我们首先需要导入道琼斯指数的历史数据,并对其进行预处理,包括计算收益率、平方收益率等。
然后,我们可以使用MATLAB中的garch函数来拟合GARCH模型。
在拟合模型时,我们需要提供一个合适的GARCH阶数和条件异方差的分布类型。
在实际中,我们可以通过对不同参数组合的模型进行对比,来选择最合适的模型。
拟合完成后,我们可以得到GARCH模型的参数以及条件异方差的波动度。
这些参数可以帮助我们更好地理解道琼斯指数的波动特点。
基于MATLAB股票市场的线性预测摘要本毕业设计借助MATLAB的技术工具软件对股票价格的数据信号图进行分析,来构造一个线性预测器。
并用MATLAB生成一个豪华的界面,把线性预测的结果直观、明了的变现出来。
本设计内容在理解信号与系统基本原理的前提下,利用MATLAB设计了一个线性预测系统,该系统利用一个离散时间有限脉冲响应(FIR)滤波器来解决属于预测建模等问题。
这是一个基于MATLAB计算机仿真的股票线性预测模型,它用股票的开盘、收盘、最高、最低四种价位为源信号进行预测,可以用选择滤波器的阶数来调整它的精确度,能够做到预测误差最小。
本设计分为四个部分:第一部分介绍了股票预测的现实意义及发展现状;第二部分主要阐明线性预测的方法;第三部分简述MATLAB及图形用户界面的相关知识;第四部分给出预测过程及结果。
关键词:线性预测系统、MATLAB、离散时间有限脉冲响应(FIR)滤波器MATLAB-based linear prediction of the stock marketAbstract:This graduation project carries on the analysis with the aid of the MATLAB technical tool software to the stock price data signal chart, comes a structure linear predictor. And produces a luxurious contact surface with MATLAB, the linear prediction result direct-viewing, the perspicuity changes appears.This design content in the understanding signal and under the system basic principle premise, has designed a linear prediction system using MATLAB, this system uses a discrete time limited pulse to respond the (FIR) filter to solve belongs to questions and so on forecast modeling. This is one based on the MATLAB computer simulation stock linear prediction model, it uses the stock the opening price, closing, high, the lowest four kind of prices to carry on the forecast for the source signal, may use the selective filter the exponent number to adjust its precision, can achieve the forecast error to be smallest.This design divides into four parts: The first part introduced the stock forecast practical significance and the development present situation; Second part of main exposition linear prediction method; The third part summarizes MATLAB and the graphical user interface related knowledge; The fourth part gives the forecast process and the result.Key words:Linear predictive systems, MATLAB, discrete-time finite impulse response (FIR) filter目录第一章.绪论一.本设计研究的目的及意义 (1)二.主要研究内容及其发展现状 (2)三.论文的主要内容及章节安排 (2)第二章.股票线性预测方法一.关于线性预测及其FIR滤波器 (3)二.股票线性预测原理 (3)三.预测模型 (5)第三章. MATLAB及图形用户界面简介一.MATLAB简介 (7)二.GUI 图形用户界面简介 (9)三.GUI建立的两大方法及其比较 (10)第四章. MATLAB程序设计及预测结果一.主要程序编辑 (14)二.计算机仿真股票线性预测模型 (15)结论 (22)致谢 (23)参考文献 (24)附录 (25)前言随着计算机技术和信息科学的飞速发展,信号处理已经逐渐成为信息科学的重要组成部分。
使用Matlab进行股票市场分析与预测的方法总结股票市场作为金融市场的重要组成部分,对于投资者和交易者来说具有重要意义。
在过去的几十年里,随着数据处理和计算能力的不断提高,越来越多的工具和方法被用来进行股票市场分析与预测。
其中,Matlab作为一种强大的数学软件和编程环境,为股票市场的研究者提供了丰富的工具和函数。
本文将介绍一些使用Matlab进行股票市场分析与预测的常见方法,并讨论其优劣势。
一、数据获取与处理在进行股票市场分析与预测之前,首先需要获取并处理相关的数据。
Matlab提供了多种方式来获取和处理股票市场数据。
例如,可以使用Matlab的Finance Toolbox来下载和导入股票价格数据,也可以通过Matlab的Web API功能获取实时数据。
此外,Matlab还提供了一些函数和工具箱来处理数据,如数据清洗、填充缺失值、调整数据频率等。
对于大规模的数据集,使用并行计算功能可以提高数据处理的效率。
二、技术指标的应用技术指标是股票市场分析中常用的工具之一,它们基于历史数据计算出一系列指标,并用于预测股票价格的未来走势。
Matlab提供了许多用于计算和可视化技术指标的函数和工具箱,如移动平均线、相对强弱指标、布林带等。
使用这些指标可以帮助分析者识别市场趋势、判断买入或卖出的时机,并进行风险管理。
此外,Matlab还可以通过机器学习算法来自动选择和优化技术指标的参数,提高预测准确率。
三、基于统计模型的预测方法除了技术指标外,基于统计模型的预测方法也是股票市场分析的重要组成部分。
常见的统计模型包括ARIMA模型、GARCH模型等。
Matlab提供了许多函数和工具箱来拟合这些模型,并进行参数估计和预测。
使用这些模型可以对股票价格的未来走势进行建模和预测,帮助投资者制定交易策略。
此外,Matlab还支持多元时间序列模型和因子模型的建模与预测,使得分析者可以更好地理解股票市场的复杂性。
四、机器学习在股票市场分析中的应用近年来,机器学习在股票市场分析中的应用越来越广泛。
基于神经网络的股票价格走势预测及其MATLAB实现摘要伴随着我国经济的高速发展和广大投资者日益旺盛的需求,股票投资已经成为一种常见的投资手段,而股票价格预测也逐渐成为广大投资者关心和研究的重点问题。
股票价格的波动是一个高度复杂化的非线性动态系统,其本身具有诸如大规模数据、噪声、模糊非线性等特点。
针对这些特点本文在深入分析股票市场实际预测中所面临的关键问题和比较各种已有的股票预测方法的基础上,探讨运用神经网络这一人工智能工具,研究基于历史数据分析的股票预测模型。
神经网络是建立在对大规模的股票历史数据的学习仿真的基础上,运用黑盒预测方式找出股市波动的内在规律,并通过将其存储在网络的权值、阈值中,以此来预测未来短期或是中长期的价格走势。
关键字:神经网络,股票,预测,MATLAB工具箱ABSTRACTAlong with the economy growth and increasingly strong demand of many investors in our country, stock has become a common means of investment, and stock price forecast has greatly been one of the focuses of study topic. The change of stock price is a highly complicated nonlinear dynamic system, itself has many characteristics such as massive data, noise, fuzzy and nonlinear. This article analyses the key issues being existent in the real stock market prediction and compares various existing stock forecasting methods. We will try to research on stock price prediction model based on a neural network with huge historical data.Neural network is based on studying massive historical data, uses the black box of forecasting ways to find the internal disciplinarian of stock market, and stores them in the weights and valves values of the neural network for predicting the short-term or long-term trend in the future.KEYWORD:Neural networks, Stock, prediction, MATLAB toolbox目录摘要 (1)一.绪论 (3)1.1研究背景及意义 (3)1.2国内外研究的现状 (4)1.3 论文的研究方法及其框架结构 (5)二.股票预测的关键问题分析 (6)2.1 股票价格波动的因素以及预测的基本假设 (6)2.2股票预测的常用术语和技术指标 (8)2.3股票数据的特点 (11)三.神经网络的基本原理介绍 (12)3.1人工神经网络的定义和发展过程 (12)3.2 神经网络基本原理 (12)3.3 BP神经网络介绍 (15)3.4 神经网络的特点 (19)3.5 神经网络的在实际预测模型中的问题 (20)四.神经网络算法 (21)4.1 输出输入变量的选取 (21)4.2数据归一化处理 (22)4.3数据样本分类 (22)4.4网络初始化 (22)4.5 训练网络 (23)4.6网络仿真 (24)五.仿真实验 (24)4.1 单日收盘价对单日收盘价预测 (24)4.2 单日收盘价,成交量对单日收盘价预测 (25)4.3 多日收盘价,成交量对单日收盘价预测 (26)4.4 多日收盘价,成交量对多日收盘价预测 (27)六.结论和展望.............................................................................................. 错误!未定义书签。
matlab指数预测代码以下是一个基于MATLAB的简单指数预测代码示例: matlab.% 导入数据。
data = [1, 2, 4, 6, 9, 10, 13, 15, 16, 18]; % 设置指数平滑系数。
alpha = 0.2;% 初始化预测值。
forecast = zeros(size(data));% 计算初始预测值。
forecast(1) = data(1);% 进行指数平滑预测。
for i = 2:length(data)。
forecast(i) = alpha data(i) + (1 alpha) forecast(i-1);end.% 绘制原始数据和预测结果图像。
plot(1:length(data), data, 'b-o', 1:length(data), forecast, 'r-');legend('原始数据', '预测结果');xlabel('时间');ylabel('数值');title('指数预测结果');% 输出最终预测结果。
disp("最终预测结果,");disp(forecast(end));这段代码首先导入了需要进行指数预测的数据,然后设置了指数平滑系数alpha。
接着初始化了预测值数组,并计算了初始预测值。
接下来使用for循环进行指数平滑预测,根据公式 forecast(i) = alpha data(i) + (1 alpha) forecast(i-1) 更新预测值。
最后,使用plot函数绘制了原始数据和预测结果的图像,并输出最终预测结果。
请注意,这只是一个简单的指数预测代码示例,实际应用中可能需要根据具体情况进行参数调整和模型优化。
Matlab在股票市场预测中的实践技巧近年来,随着人工智能和大数据技术的快速发展,传统的金融市场分析方法已经不能满足投资者对市场变化的快速响应需求。
作为一种强大的计算科学软件,Matlab在股票市场预测中崭露头角。
在本文中,我们将介绍一些应用Matlab进行股票市场预测的实践技巧。
一. 数据获取与处理在使用Matlab进行股票市场预测之前,首要任务是获取和处理相关的股票数据。
由于股票市场的数据庞大且变化快速,需要确保所使用的数据准确可靠。
可以使用Matlab提供的数据接口,或者通过网络爬虫技术从各大金融网站获取数据。
获取到的数据往往需要进行清洗和处理,以消除噪音和异常值。
Matlab提供了一系列的函数和工具箱,可以帮助我们对数据进行处理和分析。
例如,可以使用滑动平均法平滑股票价格走势,或者使用移动标准差法判断股票波动性。
二. 特征工程在进行股票市场预测之前,需要从大量的数据中提取有价值的特征。
特征工程是一个复杂的过程,需要结合领域知识和专业技巧。
Matlab提供了一系列的数据处理函数和工具箱,可以帮助我们进行特征工程。
例如,可以使用技术指标如均线、相对强弱指标等提取市场趋势特征,或者使用波动率指标如布林带、波动率通道等提取市场波动性特征。
此外,还可以利用时间序列分析方法如自相关、偏自相关等提取市场的周期性特征。
通过不断尝试和优化,可以获得一组有效的特征,为接下来的建模和预测提供基础。
三. 建模与预测在进行股票市场预测之前,需要选择合适的建模和预测方法。
Matlab提供了丰富的数据分析和建模工具箱,包括统计分析、机器学习、深度学习等。
根据具体的问题和需求,可以选择合适的建模方法。
对于短期股票预测,可以使用时间序列模型如ARIMA、GARCH等。
这些模型适用于对市场趋势和周期性进行预测。
对于长期股票预测,可以使用机器学习和深度学习模型如支持向量机、随机森林、神经网络等。
这些模型适用于对复杂的非线性关系进行预测。
% 本程序的目的是模拟一个ARMA模型,然后进行时频归并。
考察归并前后模型的变化。
% 这个ARMA模型的一般形式用黑盒子模型表示为A(q)y(t)=C(q)e(t)。
q是滞后算子。
% 或者是:(1+a1*q^(-1)+a2*q^(-2)+a3^(-3)+a4*q^(-4))y(t)=(1+c1*q^(-1)+c2*q^(-2)+c3^(-3)+c4*q^(-4))e(t)% 这里多项式A和C都只写出4阶,因为一般的经济时间序列阶数都不高。
clear;clc;% ====================第一步,模拟一个ARMA模型并绘制ACF,PACF图========================%s首先设定ARMA模型的多项式系数。
ARMA模型中只有多项式A(q)和C(q),%把A(q)的系数都设为0就得到MA模型,把C(q)的系数都设为0就得到AR模型。
M=250;%要预测的点数xa3=textread('data/buy_price.txt');xa4=textread('data/buy_num.txt') ;xc3=textread('data/sell_price.txt');xc4=textread('data/sell_num.txt') ;% xa3=textread('data/data.mat');% xa4=textread('data/data.mat') ;% xc3=textread('data/data.mat');% xc4=textread('data/data.mat') ;lp=length(xa3);for i=1:1:lpa1(i) = -(0.5)^(1/3);a2(i) = (0.5)^(2/3);a3(i) = xa3(i);a4(i) = xa4(i);c1(i) = -(0.5)^(1/3);c2(i) = (0.5)^(2/3);c3(i) = xc3(i);c4(i) = xc4(i);endobv = 3000; %obv是模拟的观测数目。
% 本程序的目的是模拟一个ARMA模型,然后进行时频归并。
考察归并前后模型的变化。
% 这个ARMA模型的一般形式用黑盒子模型表示为A(q)y(t)=C(q)e(t)。
q是滞后算子。
% 或者是:(1+a1*q^(-1)+a2*q^(-2)+a3^(-3)+a4*q^(-4))y(t)=(1+c1*q^(-1)+c2*q^(-2)+c3^(-3)+c4*q^(-4))e(t)% 这里多项式A和C都只写出4阶,因为一般的经济时间序列阶数都不高。
clear;clc;% ====================第一步,模拟一个ARMA模型并绘制ACF,PACF图========================%s首先设定ARMA模型的多项式系数。
ARMA模型中只有多项式A(q)和C(q),%把A(q)的系数都设为0就得到MA模型,把C(q)的系数都设为0就得到AR模型。
M=250;%要预测的点数xa3=textread('data/buy_price.txt');xa4=textread('data/buy_num.txt') ;xc3=textread('data/sell_price.txt');xc4=textread('data/sell_num.txt') ;% xa3=textread('data/data.mat');% xa4=textread('data/data.mat') ;% xc3=textread('data/data.mat');% xc4=textread('data/data.mat') ;lp=length(xa3);for i=1:1:lpa1(i) = -(0.5)^(1/3);a2(i) = (0.5)^(2/3);a3(i) = xa3(i);a4(i) = xa4(i);c1(i) = -(0.5)^(1/3);c2(i) = (0.5)^(2/3);c3(i) = xc3(i);c4(i) = xc4(i);endobv = 3000; %obv是模拟的观测数目。
A = [1 a1 a2 a3 a4];C = [1 c1 c2 c3 c4];m = idpoly(A,[],C,[],[],1,1) %这样就生成了ARMA模型,把它存储在m中。
NoiseV ariance被设定为1,1也是默认值。
抽样间隔Ts设为1。
error = randn(obv,1); %作为其他影响因子。
e = iddata([],error,1); %用randn函数生成一个噪声序列。
存储在e中。
抽样间隔是1秒。
y = sim(m,e);get(y) %使用get函数来查看动态系统的所有性质。
r=y.OutputData; %把y.OutputData的全部值赋给变量r,r就是一个obv*1的向量。
%==========================第二步,绘制ARMA序列r的ACF和PACF图=======================figure(1)subplot(2,1,1)n=lp;[ACF,Lags,Bounds]=autocorr(r,n,2);x=Lags(2:n);y=ACF(2:n);h=stem(x,y,'fill','-');set(h(1),'Marker','.')hold onylim([-1 1]);a=Bounds(1,1)*ones(1,n-1);line('XData',x,'YData',a,'Color','red','linestyle','--')line('XData',x,'YData',-a,'Color','red','linestyle','--')xlabel('lags')ylabel('ACF')title('ACF with 2stds Bounds(i.e., approximate 95% confidence interval)')axis([0,n,-0.15,0.15]);subplot(2,1,2)[PACF,Lags,Bounds]=parcorr(r,n,2);x=Lags(2:n);y=PACF(2:n);h=stem(x,y,'fill','-');set(h(1),'Marker','.')hold onylim([-1 1]);b=Bounds(1,1)*ones(1,n-1);line('XData',x,'YData',b,'Color','red','linestyle','--')line('XData',x,'YData',-b,'Color','red','linestyle','--')xlabel('lags')ylabel('PACF')title('PACF with 2stds Bounds(i.e., approximate 95% confidence interval)')axis([0,n,-0.15,0.15]);%===============================函数的估计和拟合===============================%%============================第三步,对r进行m阶时频归并======================== %%这一步对前面得到的ARMA序列r进行m阶时频归并。
归并的方法是把每m个数据项加起来。
m = 3; % m=3对应于把月度数据归并为季度数据。
R = reshape(r,m,obv/m); % 把向量r 变形成m*(obv/m)的矩阵R.如果obv=3000,m=3,则R为3*1000的矩阵。
aggregatedr = sum(R); % sum(R)计算矩阵R每一列的和。
得到的1*(obv/m)行向量aggregatedr 就是时频归并后得到的序列。
%%=====================第四步,画出aggregatedr的ACF和PACF图以判断其模型============ figure(2)subplot(2,1,1)n=lp;bound = 1;[ACF,Lags,Bounds]=autocorr(aggregatedr,n,2);x=Lags(2:n);y=ACF(2:n);h=stem(x,y,'fill','-');set(h(1),'Marker','.')hold onylim([-bound bound]);a=Bounds(1,1)*ones(1,n-1);line('XData',x,'YData',a,'Color','red','linestyle','--')line('XData',x,'YData',-a,'Color','red','linestyle','--')xlabel('lags')ylabel('ACF')title('ACF with 2stds Bounds(i.e., approximate 95% confidence interval)')axis([0,n,-0.15,0.15]);subplot(2,1,2)[PACF,Lags,Bounds]=parcorr(aggregatedr,n,2);x=Lags(2:n);y=PACF(2:n);h=stem(x,y,'fill','-');set(h(1),'Marker','.')hold onylim([-bound bound]);b=Bounds(1,1)*ones(1,n-1);line('XData',x,'YData',b,'Color','red','linestyle','--')line('XData',x,'YData',-b,'Color','red','linestyle','--')xlabel('lags')ylabel('PACF')title('PACF with 2stds Bounds(i.e., approximate 95% confidence interval)')axis([0,n,-0.15,0.15]);%==================================================================figure(3);plot(y),title('rate');%========================================================================== %====addpath('function');load data/data.mat;x=Ibov; % 步骤一:加载数据d=1000; % 定义预测的起始点m=3; % 定义维数k=20; % 用于预测的前面的数据个数,选取的个数越多,则预测越精确!!!!method_1='correlation';method_2='absolute_distance';[OutSample_For_Corr,InSample_For_Corr,InSample_Res_Corr]=nn(x,d,m,k,method_1); [OutSample_For_Abs,InSample_For_Abs,InSample_Res_Abs]=nn(x,d,m,k,method_2);plot([x(d+1:end),InSample_For_Corr]);xlabel('时间');ylabel('指数');title(['股价指数预测(预测使用前向数据=',num2str(k),' 预测数=',num2str(d),')']);。