可以度量金融泡沫的对数周期幂律,香吗?

发现金融泡沫并预测到其何时破裂是很多从事金融行业的人的梦想。如今中国股市也成为了热门的话题,然而,资本狂欢之后是股灾,多少人因此从千万富翁炒股变成百万富翁,预测泡沫是所有人的梦想。我们的主角Sornette教授登场了。Didier Sornette是一位受过培训的统计物理学家和地球物理学家,目前在瑞士联邦理工学院苏黎世分校(Swiss Federal Institute of Technology in Zurich)任金融学教授,主讲创业风险。他似乎并没有因外界对这种综合学科研究方法的热情有所减弱而感到烦恼。相反,他还在做自己大部分职业生涯一直在做的事:不仅在主要物理期刊上发表文章,还在领先的金融期刊上发表文章。Sornette教授开始尝试着解答这个问题——不是通过传统的金融学方法,而是将物理学思想引入其中。作为2004年出版的《股市为什么会崩盘》(Why Stock Markets Crash)一书的作者,Sornette教授实质上是希望更深刻地理解泡沫的形成和发展。在对复杂体系的分析中,他独自——或者是和极少数几个人一起——引领着三个并行领域:纯物理学、应用经济学和计量经济学,以及市场从业人员。在《股市为什么会崩盘》一书中,Sornette教授全面分析了一个由其提出的预测市场泡沫的模型——对数周期幂律(LPPL)模型。该模型对之后许多次市场泡沫都进行了准确的预测,由于该模型由Johansen,Ledoit和Sornette共同提出并完善,因此也被称为JLS模型。我们来聊一聊它。

什么是对数周期幂率模型?
作为纯物理学家的Sornettee教授不甘于仅仅在物理学领域有所建树,他还看到了金光闪闪的华尔街,在那里,各类炼金术师在寻找各种允许少数人持续获利的方法。于是,Sornettee教授在金融领域的跨界之旅开始了。他脑洞大开,想将物理学模型延伸到金融学领域中,而他找到的第一把金光闪闪的钥匙叫做易辛模型——一种描述物质铁磁性的经典模型。简单地说,易辛模型认为单个原子的磁矩只可能有两种状态,+1(自旋向上)或者-1(自旋向下),原子以某种规则排列着,并存在着交互作用,使得相邻之间的原子的自旋互相影响。Sornette教授的眼睛仿佛一下子充满了光芒,他仿佛看到了美元纸币上的林肯在向他招手。受易辛模型启发,Sornette教授认为在金融市场中,投资者也只具有两种状态,即买或者卖。同时,投资者的交易行为取决于其他投资者的决策及外部因素的影响,这与易辛模型是多么的相似!

假想我们处于这样的一个市场中:资产没有派息、银行利率为零、市场极度厌恶风险,并且市场有着充足的流动性。显然,在这个市场中的金融资产没有任何价值,也就是其基础价值为零。在这样的框架内,市场中出现两类投资者,如上文所说,一类是理性投资者,一类是非理性的噪声投资者。后者具有羊群效应,使得金融资产价格偏离其基础价值,在没有足够的做空机制下,该结果导致理性投资者也不得不跟随噪声投资者的行为,通过享受泡沫来获得收益。最终当趋势达到某一临界值时,大量投资者没有足够的头寸维持该趋势,于是手中的卖单导致了市场的崩盘。那么这是一个怎样的趋势呢?Sornette教授考虑了自激励的正反馈过程的思想,而该过程会导致大量交易者的行为方式逐渐趋于一致。在经过一些推导之后,Sornette教授发现该趋势是按对数周期幂律(LPPL)增长,这里给出唯一的也是最重要的公式。

这是他的标准样式:其中蓝色线代表标普500走势,绿色线代表LPPL确信值

看起来确实在最高峰区域检测到了泡沫可能破裂。然而这个东西真的好用吗?是否是in sample testing 产生的这种神奇效果?

我的尝试

我取沪深300指数一端最显著的牛市区间 20050603 – 20071003来做试验。
其中20050603–20070301数据用来做训练,之后的数据做验证。同时为了更好地观察随着大顶越来越接近,模型提示的critical time是否会递减,从20071003开始按交易日颗粒度进行增量滚动训练、预测。

过程代码

from lppls import lppls, data_loader
import numpy as np
import pandas as pd
%matplotlib inline
import time
import datetime
import matplotlib.pyplot as plt
enddate=''.join(str(datetime.date.today()).split('-'))
import tushare as ts
pro = ts.pro_api('保密')# read example dataset into df
data = ts.pro_bar(ts_code='000300.SH', asset='I', start_date='20050603', end_date='20071003',adj='qfq').sort_values('trade_date')
# convert index col to evenly spaced numbers over a specified interval
time = np.linspace(0, len(data)-1, len(data))
# create list of observation data, in this case,
# daily adjusted close prices of the S&P 500
price = [p for p in data['close']]
# create Mx2 matrix (expected format for LPPLS observations)
observations = np.array([time, price])tested=pd.DataFrame()
count=0
for i in data[data.trade_date>'20070301'].trade_date.values:test_data=data[data.trade_date<=i]time = np.linspace(0, len(test_data)-1, len(test_data))# create list of observation data, in this case, # daily adjusted close prices of the S&P 500price = [p for p in test_data['close']]# create Mx2 matrix (expected format for LPPLS observations)observations = np.array([time, price])# the literature suggests 25MAX_SEARCHES = 100# instantiate a new LPPLS model with the S&P 500 datasetlppls_model = lppls.LPPLS(use_ln=True, observations=observations)# fit the model to the data and get back the paramstc, m, w, a, b, c = lppls_model.fit(observations, MAX_SEARCHES, minimizer='Nelder-Mead')# visualize the fit#lppls_model.plot_fit(observations, tc, m, w)count+=1print('calculating {}th data in {}datas'.format(count,len(data[data.trade_date>'20070301'].trade_date.values)))tested=tested.append(pd.DataFrame({'date':i,'critical_time':tc,'critical_time2':tc-len(time),'m':m,'w':w,'a':a,'b':b,'c':c},index=[i]))

有很多不收敛的情况

plt.figure(figsize=(15, 8))
(tested['critical_time2']).plot()
(data.set_index('trade_date').loc['20070301':]['close']/10).plot()

上结果。橙色线为沪深300指数2007的走势,蓝色线为滚动计算的critical time(预示着当前时间离泡沫顶的天数)
可以看出,有些时候在大跌前critical time会下降,但胜率不是很高。模型在2007年9月28日这个时间节点上认为泡沫顶会出现在从当前算起的106个交易日。

而我们已经知道结果了,实际上这个泡沫顶发生在2008年1月15日。也就是71个交易日后。计算结果滞后30天左右。

可以度量金融泡沫的对数周期幂律相关推荐

  1. 对数周期幂率模型(LPPL)

    什么是对数周期幂率模型 对数周期性幂律模型由Johansen和Sornette提出.Johansen-Ledoit-Sornette(JLS)模型假设存在两类交易者:理性的基本面交易者和非理性的噪音交 ...

  2. 对数正态分布_正态分布与幂律分布

    1.正态分布 英国生物统计学家法兰西斯·高尔顿做了一个实验.他在一块木板上画了一块等腰三角形,并在三角形区域内钉上n+1层钉子.第1层钉2个钉子,第2层钉3个钉子,下面每一层都比上一层增加一个钉子,上 ...

  3. JR/T 0223—2021 金融数据安全 数据生命周期安全规范

    中国人民银行营业管理部解读 https://mp.weixin.qq.com/s/hoYA4bv14mAiOmxciivz1Q JR/T 0223-2021 金融数据安全 数据生命周期安全规范 链接h ...

  4. 对数周期天线hfss建模_HFSS软件二次开发在对数周期天线设计中的应用

    1 前言 目前,仿真软件ANSOFT HFSS的计算精度和效率不断提高.但是要建某些阵列天线或其他复杂函数线构成的天线,操作工作量会增大,检查错误和修改模型都较困难.HFSS提供了基于VBScript ...

  5. 什么是金融杠杆?什么是金融泡沫?

    金融杠杆 通俗解释就是,使用借贷做"以小搏大"的投资交易. 使用杠杆,收入和风险同时成系数放大.用得好,成功实现"以小搏大":可一旦失手,出现市场逆转,那损失的 ...

  6. 【转载】关于幂律分布的一个笔记

    关于幂律分布的一个笔记 原文转自:http://blog.sina.com.cn/s/blog_55954cfb0100ps89.html 0:题外话或补记 最早知道二八法则,还是一本介绍犹太民族杰出 ...

  7. 关于幂律分布的一个笔记_哈克_新浪博客

    关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记     (2011-03-02 18:12:27)     转载▼     标签:     幂律     二八法则     杂谈     ...

  8. 幂律分布(python)

    幂律分布 1.幂律分布 首先要说的是中心极限定理--在复杂的多因素情况下,只要个体相互独立,集体效果就应该是正态分布.然而实际运用中,尤其是金融中,更多面对的是尖峰胖尾现象,比如下面这幅图描述的是标普 ...

  9. 人类行为时空特性的统计力学(一)——认识幂律分布

    人类行为时空特性的统计力学(一)--认识幂律分布 郑梓豪 · 10 个月前 从第一次看到  人类行为时空特性的统计力学 时接触Power-Law Distribution,距这次工作上真正要利用起来的 ...

最新文章

  1. Envoy Proxy的多面性:边缘网关、服务网格和混合网桥
  2. 不喜欢冷漠,喜欢笑容、热情和拥抱
  3. python3 lambda表达式
  4. windows10下安装pytorch并导入pycharm
  5. 为什么神经网络用python而不用c语言_python是用C实现的,Java是用C++实现的,那为什么不直接用C或C++呢?...
  6. logstash同步数据到es
  7. Windows.document对象
  8. csm和uefi_BIOS里的 CSM 是什么意思,我的只有UEFI
  9. UltraLAB台式图形工作站(独门绝技~多核+超高频~极速计算工作站H490介绍)
  10. cadence如何导入gds_如何将Cadence的原理图和PCB转成PADS
  11. godot引擎学习7
  12. PMP证书可以办北京工作居住证的消息,别说你还不知道!
  13. php 转换成string,在PHP中将数字(1,2,3)转换为string(一,二,三)
  14. ad中按钮开关的符号_电工最常用电气元件实物图及对应符号
  15. layui弹出层提交表单!
  16. MicroService
  17. python爬虫案例:采集股票数据并制作可视化柱图~
  18. 哎!无奈,遇到DDos到底应该怎么办?阿里云将你扔进黑洞;腾讯云清退你!
  19. 统一通信概念鱼龙混杂
  20. DNF台版云服务器搭建(非商用,可联机)

热门文章

  1. 二十四、红孩儿亲爹的考证
  2. 云南艺术学院艺考开考 万人追逐艺术梦
  3. 【推荐】Java自学网站HOW2J.CN 手把手带你做实践项目
  4. 力扣leetCode459之重复的子字符串(双倍字符串解法)Java
  5. python sdk是什么意思_sdk什么意思
  6. 二代身份证读卡器接口函数Delphi声明
  7. 矩阵寻找目标值的技巧
  8. 解决win10开机出现C:\WIndows\system32\config\systemprofile\Desktop不可用 问题
  9. throughput(吞吐量)
  10. 一年中重要的节日列表_一年中所有节日一览表