量化交易软件策略:利用指数平滑法进行时间序列预测

简介

目前较为知名的预测方法林林总总,这些方法仅基于时间序列过去值的分析,也就是说,其采用的原则通常用于技术分析。这些方法主要使用外推方案,其中在某特定时间延迟处识别的序列属性超出了其限制。

同时,它还假定未来的序列属性与过去和当前相同。一种更为复杂的外推方案在预测中不太常用,该方案涉及到对于序列特性中变化动态的研究,并适当注意到预测区间内的此类动态。

基于外推的最具知名度的预测方法,可能就是采用 自回归求和移动平均线模型 (ARIMA) 的方法。而上述方法之所以流行,主要是因为 Box 和 Jenkins 的作品中提出并开发了求和 ARIMA 集成模型。当然,除了 Box 与 Jenkins 引入的模型之外,还有其他模型和预测方法。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

本文将简单介绍一下更简单的模型 - 由 Holt 和 Brown 早在 Box 与 Jenkins 作品问世之前就提出的 指数平滑模型。

尽管还有更加简单明晰的数学工具,但利用指数平滑模型预测产生的结果通常与使用 ARIMA 模型的结果差不多。这毫不奇怪,因为指数平滑模型就是 ARIMA 模型的一个特例。换句话说,本文研究的每种指数平滑模型都有一个对等的 ARIMA 模型。但本文不会研究这些等效模型,大家了解下就好。

我们都清楚,在每种特定情况下进行预测都需要一套独有的方法,而且通常都涉及到大量的流程。

例如:

  1. 缺失值与离群值时间序列分析。上述值的调整。

  2. 趋势及其类型的识别。序列周期性的确定。

  3. 序列稳定性的检查。

  4. 序列预处理分析(取对数、差分等)。

  5. 模型选择。

  6. 模型参数确定。基于选定模型的预测。

  7. 模型预测精确度评估。

  8. 选定模型误差分析。

  9. 确定选定模型是否合适,如有必要,更换模型并返回前项。

很明显,这还远非有效预测所需操作的完整列表。

要强调的是,模型参数确定和预测结果的获取,只是总体预测过程中的一小部分。但要在一篇文章里通过一种方式涵盖与预测相关的全部问题,似乎是不可能的。

因此,本文仅论述指数平滑模型,且使用未预处理过的货币报价作为测试序列。当然,随之而来的问题,本文中并不会一一作答,而只会涉及那些对于模型的研究有必要的问题。

1. 稳定性

外推法概念本身就恰当地暗示了所研究过程的未来发展与过去和现在别无二致。换句话说,它涉及到的是过程的稳定性。从预测的角度来看,平稳的过程极具吸引力,但遗憾的是它并不存在,因为任何实际过程在其发展的过程中都会面临变化。

在实际过程中,随着时间的推移,无论是预期、方差还是分布都会出现显著差异,但特性变化非常慢的过程可能归结于平稳的过程。这里所说的“非常慢”,是指过程特性在有限观测区间内的变化似乎无关紧要、可以忽略。

很明显,可用的观测区间越短(短样本),就越有可能对过程整体的稳定性做出错误决定。另一方面,如果我们更想了解过程以后的状态,同时计划做一个短期预测,则在某些情况下减少样本量可能会提高预测精确度。

如果过程有所变化,在观测区间内确定的序列参数就会有所不同,并超过其限制范围。因此,预测区间越长,序列特性变异对于预测误差的影响就越强。有鉴于此,赫兹量化必须将自己局限于单纯的短期预测;预测区间内如有大幅缩减,则能预计缓慢变化的序列特性,而不会导致相当大的预测误差。

此外,序列参数的变异还会导致按观测区间进行估测时获取的值采用平均值,因为此区间内的参数未能保持恒定。因此,获得的参数值不再与此区间的最后时刻相关,但却会由此反映出某个特定的平均值。遗憾的是,要完全消除这种恼人的现象是不可能的。但是,只要模型参数估计(研究区间)中涉及到的观测区间长度缩减到可能的程度,就能减少这种现象的发生。

同时,研究区间并不能无限制地缩短,因为极度缩减一定会降低序列参数估计的精确度。要在序列特性变异相关误差的影响与由于研究区间内极端缩减导致的误差增加之间寻求一种折中。

上述所有内容均完全适用于利用指数平滑模型所做的预测,因为它们像 ARIMA 模型一样,都是基于过程稳定性的假设。但是,为简单起见,下文中我们还是按照惯例,假设研究中的所有序列参数在观测区间内都会发生缓慢且可忽略的变化。

因此,本文要处理的是基于指数平滑模型、与带有缓慢变化特性的序列短期预测相关的问题。这里所说的“短期预测”是指提前一个、两个或更多时间区间进行的预测,而不是经济学中通常所理解的短于一年周期的预测。

2. 测试序列

到撰写本文时,此前保存的针对 M1、M5、M30 和 H1 的 EURRUR、EURUSD、USDJPY 和 XAUUSD 报价均已用到。每一份保存文件中都包含了 1100 个 "open" 值。最早的值位于文件开头,而最新值则位于文件末尾。文件中保存的最后一个值,对应的是文件创建的时间。包含测试序列的文件均利用 HistoryToCSV.mq5 脚本创建。而其借以创建的数据文件和脚本则位于本文末尾处的 Files.zip 存档中。

前面提到过,本文使用的已保存报价均未经过预处理&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值