超短期汇率的预测研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超短期汇率的预测研究集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)
超短期汇率的预测研究
摘要:提出了一种适合超短期汇率预测的模型方法。实验数据通过网络获取,模型采用的是相空间重构与卡尔曼滤波计算的方法来对超短期汇率数据进行建模和预测,并与BP神经网络模型进行了比较。实验结果表明,所建立的模型方法能很好地跟踪即时汇率变化趋势,预测精度比较高,且算法运行速度比BP神经网络模型快得多。最后,给出了在.NET环境下实现了汇率在线预测的全部过程。
关键词:超短期汇率预测;数据获取;相空间重构与卡尔曼滤波;在线预测中图分类号:TP39;TP182文献标识码:A
文章编号:1001-9081(2007)04-1009-04
0引言
超短期汇率预测是指预测一天内汇率的变化趋势,它对外汇市场上的日常交易来说是非常必须的。目前,汇率交易是全球全天24h通过网络进行的,不同时段的交易获利不同。因此,对企业经营和个人炒汇来说,汇率即时数据的跟踪是十分有意义的。就目前汇率预测研究方法来看,最热门的工具是神经网络方法,神经网络具有很强的非线性逼近能力,是非线性系统研究的好方法。但是,神经网络是在学习输入输出样本的基础上获得的,灵活性高,但缺乏可靠的数学表达形式,而且现有的学习算法收敛速度比较低,难以满足在线学习的要求[1]。卡尔曼滤波是一种可用于非线性系统的滤波算法,具有最优估计性能,其递推计算形式及算法实现主要是矩阵的加减、乘除及求逆等计算量不大的特征,使其适合实时处理的需要。
根据以上的分析,本文利用卡尔曼滤波方法,提出了一种适合超短期汇率预测的模型。模型所采用的卡尔曼滤波器的初始状态通过相空间重构成技术得到。文中实现了银行网站即时汇率的接收及存储,为本文预测模型提供实验数据来源。
1实验数据的获取
1.1数据获取及存储
本文的数据是从某银行网页获取的,如图1所示,中国银行福建分行主页面的右下角(红圈圈住的地方)是汇率报盘。数据获取的目的就是获取此页面的汇率报盘数据并存入数据库中。获取的整个过程如图1所示。
1.2数据获取的界面及主要实现代码
2超短期汇率模型的建立
2.1相空间重构技术
在时间序列的分析中,决定序列的可观测因素很多。而且相互作用的动力学方程往往是非线性的,甚至是混沌的。同时,因测量精度的实际限制、计算的复杂性,以及可能存在的本质上的非确定性因素等多方面的困难,严重制约着人们对时间序列内在机制的理解。20世纪80年代以来,由于Takens[2]对Whitney早期在拓扑学方面工作的发展,使得深入分析时间序列的背景和动力学机制成为可能。在确定性的基础上,对序列动力学因素的分析,目前广泛采用的是延迟坐标状态空间重构法。一般来说,非线性系统的相空间可能维数很高,甚至无穷,但在大多数情况下维数并不知道。在实际问题中,对于给定的时间序列,通常是将其扩展到三维甚至更高维的空间中去,以便把时间序列中蕴藏的信息充分地显露出来,这就是延迟坐标状态空间重构法,其具体描述如下:
相空间重构的关键在于嵌入维数m和时滞τ的确定,目前,确定嵌入维数m 的常用方法有伪最近邻法、奇异值分解法;确定时滞τ的方法主要有自相关函数
法及互信息量法。但这些方法存在一定的缺陷。伪最近邻点法的结果会受到阈值的影响;奇异值分解的结果依赖于超空间维数的选择,利用奇异值分解法确定的m 不仅可能会随着超空间维数的不同而不同,而且可能会随着数据长度N的不同而不同;在相关维计算法中,取数据矢量间的欧氏距离值的第一个到达平稳时的m 估计嵌入维数。但矢量间的欧氏距离值可能达不到平稳,这时就无法求得m;另一方面,确定时滞的典型方法自相关和互信息法虽然具有计算量小等优点,但计算结果具有不一致性[3]。
2.2基于单步预测的卡尔曼滤波计算过程
卡尔曼滤波是一种统计估算方法,主要思路是:预测方程中的回归系数是随时间变化的。预测每向前延伸一步,都将预测结果与观测结果进行比较,其差别(预测误差)将以适当的方式反馈到回归系数的变化方程中去。通过利用前一时刻预测误差的反馈信息来及时修正预测方程,以提高下一时刻的预测精度。卡尔曼滤波方法不论预测次数(或量测次数)如何增加,不需要存储大量历史的量测数据,减少了计算机的存贮,而且只进行矩阵的加、减、乘、除和求逆运算,通常计算量不大,从而满足了应用滤波的实时性要求。
2.3预测模型的建立
在卡尔曼的应用中,输入向量过程:观测值={y(1),y(2),…,y(n)}。状态向量为x(n),滤波器是通过对状态向量的递推计算得到未来状态的估计值。因此,滤波器初始状态向量的选取对预测结果的影响具有关键的意义。大量的研究表明,经济时间序列是混沌的。可以用混沌时间序列的知识来确定滤波器初始状态向量的维数及向量分量的构成。对给定的汇率时间序列,求得序列的最优嵌入维数和最佳时滞,把最优嵌入维数作为滤波器初始状态向量的维数,把求得的最佳时滞作为初始状态向量分量的时间间隔。
3模型预测结果分析
以下为基于相空间重构与卡尔曼滤波对2006年5月26日13:55至23:58的1066条美元港币即时汇率的跟踪预测结果。为了对比研究,本文实现了BP神经网络模型,并把本文算法的预测结果与BP神经网络的预测结果进行了比较。图5为汇率真实值、本文算法预测值及BP神经网络预测值的对比图;图6为本文算法预测残差;图7为BP神经网络预测残差。为了更好地反映预测模型的效果,本文采用以下几个性能评价,其中ei为汇率实际值与预测值的绝对误差,si为汇率实际值。i=1∶1006,N=1066。
根据以上的实验结果可知,本文算法的预测效果良好,能很好地跟踪即时汇率的变化趋势。且算法运行速度快,能满足在线预测的实时性要求。卡尔曼滤波递推估计的方式使其在跟踪上具有很好的性能。而神经网络全局逼近的方式使其在超短期汇率预测中,实验精度比较低,收敛速度慢的缺陷也使神经网络预测模型不能实现即时汇率的在线预测。
4在线预测的实现过程
汇率在线预测的思想是:用户在页面上输入预测的汇率种类如美元欧元,请求预测某个数据的未来值,如明日开盘价、今日最高价、下个时刻的即时汇率值等。系统根据用户的选择,查询数据库,并把查询结果传送给预测模块,由预测模块完成预测后,把预测结果返回给用户。
图片图8汇率在线预测过程
实现上述在线预测的关键是解决Matlab与.NET的动态数据交换过程,本文采用MatlabWebServer接口程序matweb.exe来实现Matlab与.NET的动态数据交换。它是目前较新且简单可行的方法。MatlabWebServer的核心是作为CGI程序的