精华帖分享|浅谈金融时间序列分析与股价随机游走

科技   财经   2024-06-27 17:00   江苏  

「精华帖分享」栏目,文章来源于量化小论坛精华帖,每周一更。原唯有论坛特定用户可阅读,现精选后分享,帮助大家了解更多量化相关内容,开拓投资交易思路。


本文来源于量化小论坛公共讨论区板块精华帖,作者为正扬,发布于2024年6月3日。











量化小论坛 

/bbs.quantclass.cn/

「量化小论坛」于2020年开放,为邢不行课程同学的交流论坛。由股票、B圈、分享会等不同板块组成,目前已有35000+帖子,5000+篇精华帖。

想了解更多论坛相关内容,可以加我微信xbx297,与我交流。


以下为精华帖正文:

01


时间序列分析是个很唬人的术语,实际上它也不是一个很容易接近的话题。我本科曾经短暂地学过一点点,又看到互联网上存在许多关于时许分析的操作谬误,因此特写本文给大家一些好上手的理解方式。


时间序列分析是统计学的一个分支,它旨在研究有时间顺序的数据,探索其内在结构和特性,从而进行描述、建模、预测和控制。而统计学作为一门核心科学,时序分析也继承其科学性,有很强的逻辑性。反映到具体实操场景,就是用户对使用的模型必须有清楚的认知,否则即使模型提供了预测值,也不知道如何使用。


在这里,我就以量化中最常见的股价/币价,来说明使用时序分析时你一定会遇到的种种困难(和可能的解法)。本文无法一语道破如何预测股价,只是希望揭开时间序列分析的面纱,让你感觉不再陌生。



02

时间序列


首先讲讲时间序列的分类,因为时序不仅仅在金融数据中使用,也在各行各业中广泛应用。销售数据、气象信息和GDP都是时间序列。下面这张图就说明了时间序列的多种变化,分别是周期性(房屋销售额存在时长和频率不确定的高低起伏),季节性(电力产值的冬夏两季的规律波动),趋势性(国债价格随天数增加而下降)和随机性(谷歌的股价波动)。图片中的数据其实包含多种时间序列性质,有兴趣的读者可以尝试从中再分离一种明显性质,具体答案见链接原文。



来源:https://otexts.com/fppcn/tspatterns.html


只要是按照时间顺序排列的离散数据都可以成为时间序列,而有了序列我们就可以对数据作统计分析,得到其均值(期望)和方差(二阶矩)。若对时间序列分类,则有平稳时间序列非平稳时间序列。一般而言,我们对平稳的时间序列更有兴趣,因为从字面理解,平稳则意味着我们可以推断规律。(如果想探索更严谨的定义,请自行搜索严格平稳和广义平稳)。当然,平稳并不一定代表一定有规律可推断,这一点在后面也会着重说明。


看到这里你已经知道,时间序列分析所需要的数据其实是非常苛刻的,而且上述图片的四种数据都不是平稳数据。回想一下,你是否曾经把这些原始数据放进时序模型里面去尝试建模呢?



03

金融时间序列


那我们不妨用大饼数据来看看,究竟如何处理价格走势,使其符合时间序列分析的要求。本章的所有技术细节你都可以跳过,只要看加粗的结论就行。


首先,我们有一张btc-usdt.csv,里面包含的close收盘价和volume成交量是我们的目标。先处理close,我们的做法是取其对数收益率。这样做有两个好处,首先相比百分比收益率,对数收益率可加;其次可以形成一个公式,yt=yt−1+Δyt.这个递推公式赋予了其推理逻辑。于是我们就把问题转化为:只要能预测Δyt,我们就可以预测整个价格的走势了。



大饼小时线收盘价(暴涨暴跌,非常不平稳,作为新手请凭感觉理解)



大饼对数收益率(相比收盘价,是不是大多数都集中在0之间?这样就看起来平稳多了)



如果你想了解测试时序平稳性的工具,请搜索Augmented Dickey–Fuller test. 以下结果可能需要至少本科概率论与数理统计的知识去理解。(别忘了问chatgpt辅助理解)这里的结果提示这个序列是平稳的。


ADF Test Results:
ADF Statistic: -14.11980992097059
p-value: 2.4361396630638024e-26
Critical Values:
1%: -3.439835148993393
5%: -2.865725696693157
10%: -2.568998987353403
Used lag: 3
Number of observations used: 692


1

随机游走


我们认为这个序列是一个平稳序列,但是不是就可以开始建模预测了呢?并非如此。


前文提到,平稳并不一定代表一定有规律可推断,因为白噪声也算是一种平稳。白噪声是完全随机的数据,统计学上是一个正态分布,没有任何算法可以告诉你下一个随机数是多少。前文中我们提到股价可以表示为yt=yt−1+Δyt,如果Δyt是白噪声,那么yt就是在前一期的值上再加一个随机数,请问它是能预测的吗?很明显,不行,这个模型也被称为随机游走(random walking),你能想到的布朗运动就是RW在二维空间中的形式。那么股价是随机游走吗?不幸的是,很大概率是的。 要验证股价随机游走,必须祭出统计学工具。这里我们会用到Ljung-Box Q检验,辅助自相关函数图作直观展示。


首先看Ljung-Box Q,其p值大于0.05,这意味着我们不能以 95% 的置信水平拒绝原假设,认为没有足够的证据说明时间序列不是白噪声。(此段需理解数理统计中的假设检验部分。)



Lungbox Test Results:
lb_stat lb_pvalue
10 18.05919 0.053973


2

自相关函数


我们用另一个更直观的方式看:自相关函数。它表示某时刻的数据与其前n项数据的自相关关系。第一根柱表示,它与自身的相关性为1,从第二项开始相关性迅速降为0左右,在置信区间内,说明它与其滞后项没有自相关。因此我们大致判定,这个数列是一个白噪声数列。我们没有办法用时间序列去推测btc-usdt的未来走势。




04

模型




这里就可以看出它的原值就包含很强的周期性特征了。我们进一步分析:


ADF Test Results:
ADF Statistic: -10.56484687260585
p-value: 7.563340881893284e-19
Critical Values:
1%: -3.439974756130998
5%: -2.865787205712192
10%: -2.569031757724822
Used lag: 13
Number of observations used: 682


ADF检验表明该序列是平稳序列。这个结论和随机游走模型相同。


Ljungbox Test Results:
lb_stat lb_pvalue
10 90.340146 4.585370e-15


Ljung Box Q检验表明p value接近0,远小于0.05,因此拒绝该序列为白噪声。说明这个数列是有时序关系的。



ACF图表明,当前项与滞后1项存在负的自相关关系,即滞后1期正值则当期大概率负值,即该小时放量则下个小时更可能缩量。



Partial ACF图,用于判断ARMA模型阶数,这里不展开,具体可问chatgpt。


1

建模过程


接下来我们就进入建模过程了,由以上ACF和PACF图推断,我们使用ARMA(1,1)模型。



输出模型结果:




所以这个时间序列ARMA(1,1)的模型即为yt=0.0006+0.5460yt−1+ϵt−0.9789ϵt−1.


此外,关注模型的诊断数据,Ljung-Box在此检测残差,发现p值大于0.05,提示残差不含时序特征,说明我们成功提取了时间序列特征。Heteroskedasticity检测波动,也不显著。最后Jarque-Bera检测提示残差分布显著偏离正态分布,可能需要在预测时加以修正。


2

预测


基于这个结果,我们可以对未来数据进行预测了。但是请问,此处可以预测未来多少期数据?我的答案是1期,最多两2期。因为超出这个限度,我们会基于我们的预测值再去预测未来(别忘了ACF函数只有1期自相关关系),会导致误差显著增大。


以下是预测的结果:

2021-04-30 07:00:00 0.085933



05

结语


到此,我们就做完了对某个时间序列的对数变化率的时间序列分析。我一直认为时间序列模型是一个工具,但时间序列分析是一门科学。工具可以对任何正确格式的输入都产生一个结果,但你需要用科学和逻辑去分析这个结果的合理性,否则这个结果只能图一乐。


本文有许多不详尽之处,有的是想照顾看热闹的朋友从而写得更直白一些,有的可能是我真的已经忘了QAQ。如大佬们发现错误欢迎在评论区指正。


最后祝大家都能写代码赚大钱!^^


对量化小论坛感兴趣的同学,可以加我微信xbx297,与我交流。


也欢迎大家来论坛发帖交流,原创帖如被加精,也可获得葫芦奖励。


长按查看葫芦介绍



往期文章推荐

300W才能开通,A股自动交易公平吗?散户如何实现程序化交易?| 附A股程序化交易实盘演示

趋势之王or虚有其表?Python量化25种均线用法,哪些有用,哪些没用?

低风险、高收益?可转债缘何走上神坛?网红可转债策略能赚钱吗? | 附Python量化选债代码

抱最狠的团,亏最多的钱?Python量化散户抱团,揭秘A股股东户数秘密 | 附代码

以前嗤之以鼻,现在逐字学习!用Python量化缠论,一键自动生成交易信号 |  附代码

技术指标消亡史:从独领风骚到泯然众人 | 量化交易者如何看待技术指标,技术分析还能用吗?|  邢不行

微盘股还能买吗?量化轮动策略轻松跑赢指数12倍?!只会买指数ETF也能做量化?| 邢不行

大A为何频繁跳水,Python量化1200W条交易数据给你答案!| 邢不行

A股贵如金?Python量化验证AH股溢价效应,跟着买15年18倍?| 附策略代码

跟着基金买,别墅靠大海?买基金重仓股票,会破产吗?| 附最新选股结果 |【邢不行】

抓了几千万条热门股数据,用Python量化验证后发现结果竟然...... | 【邢不行】

当我们谈论量化时,我们在谈论什么?量化投资常见策略有哪些?| 融券T0和高频交易详解|【邢不行】

散户反着买,别墅靠大海?股票上了龙虎榜还能买吗?【邢不行】

量化交易一定是机器人+自动化+高频交易吗?| 常见量化交易误区合集,新手脱坑入门指南 | 【邢不行】

抄底总在半山腰?抄底A股的时机何时到来?|【 邢不行】

投资不识筹码峰,炒遍A股也枉然?| 如何用python计算筹码分布数据 |【邢不行】

烂板如何出妖股?每天买炸板股票,不亏反赚100倍?| 【邢不行】

跟着社保买,别墅靠大海?跟着国家队炒股,还会亏钱吗?| 附最新选股结果【邢不行】

邢不行
专注股票、B圈、期货、期权的量化交易,欢迎交流。
 最新文章