【随机接触模型】建模的【加密货币价格模型】中的【多尺度】【复杂】【波动】【行为】
作者:Zhiyong Zheng, Yunfan Lu, Junhuan Zhang
文章:Multiscale complexity fluctuation behaviours of stochastic interacting cryptocurrency price model
问题背景
加密货币市场的波动已经开始能世界范围内影响各地的投资市场了。
关键引用
- C. Baek, M. Elbeck, Bitcoins as an investment or speculative vehicle? A first look, Appl. Econ. Lett. 22 (1) (2015) 30–34 - “Bitcoin market returns are mostly internally driven by market participants”, which means the extreme volatility of cryptocurrencies could be only caused by the panic and fear of investors theoretically - 比特币市场的收益的波动,大部分都是被市场参与者从内部所驱动的。这也就说明加密货币市场中价格的极端波动,理论上是因为投资者的集体性恐慌。
随机接触传染模型
模型假设:
- 受到感染的个体将会依据速率为$\lambda$的泊松过程,向其左右邻扩散病毒。
- 一个健康个体在接触到邻舍传来的病毒时,会立刻转变为被感染状态,并且向左右邻扩散病毒。通过在分布$F$中随机采样得到一个时间$f$,经过$f$单位时间后,此人获得免疫。
- 免疫了的人将不再收到相同病毒的感染。
- 病毒的传播过程以及感染周期的随机过程之间两两独立。
模型过程
状态空间:$\{1, i, 0\}^{\mathbb{Z}}$, $\mathbb{Z} \times \mathbb{R}_{+}$代表传播链长度,其中:
- 1表示健康
- 0表示免疫
- $i$表示染疫
对每对满足$|x-\tilde{x}|=1(x, \tilde{x} \in \mathbb{Z})$链条节点$(x, \tilde{x})$,建立两个相互独立的泊松过程: - $\left\{U_n^{(x, \tilde{x})}, n \geq 1\right\}$,用来描述$x$单向感染$\tilde{x}$的时间节点,速率为$\lambda$
- $\left\{T_n^{(x)}, n \geq 1\right\}$,用来描述病患$x$自染疫到痊愈并免疫的时间周期长度,速率为$v$
参数对齐
0号病患占比$p_0=0.01$
康复免疫泊松过程的速率为$v=1$
迁移到价格模型
利用随机接触模型的传染过程,模拟信息在不同的加密货币市场投资人之间的传递、并改变投资人投资策略的过程。
利用两个不同的泊松过程,模拟市场宏观中可能因为地缘政治、社会、自然环境等外因而导致的价格疾剧波动,两个泊松过程分别模拟市场价格的暴增、暴跌。
假设
- 虚拟货币的价格变化源于投资者对于加密货币交易市场的态度。
态度会如同病毒一样在投资者之间传播,使得其他人的决策产生变动。 - 投资态度只有三种:买入、卖出、观望。
以上投资者投资态度的加和表征了市场价格的羊群行为及其倾向性。 - 投资者每天可以交易数次,但一次最多只能交易一个单位的虚拟货币。
模型组件名称缩写
时间
日期(天)$t \in\{1,2, \cdots, T\}$
每日交易时长$l$
价格
虚拟货币在第$t$天的$s$时刻的价格:$\mathscr{P}_t(s)$,$s \in[0, l]$
参与者
加密货币市场的参与人数:$M+1$,$M$足够大
单个参与者在模型网格中的相对坐标系:$\{-M / 2, \ldots,-1,0,1, \ldots, M / 2\} \subset \mathbb{Z}$
参与者被分为三类:
- “感染者”$type-inf$,
- “未感染者”$type-sus$,
- “免疫者”$type-imm$
交易态度:$\zeta(t)$ with values $\{1,-1,0\}$ - 1: 买, 概率$p_{\zeta(t)=1}$
- 0: 观望,概率$1-p_{\zeta(t)=1}-q_{\zeta(t)=-1}$
- -1: 卖,概率$q_{\zeta(t)=-1}$
机制
在每一个交易日$d \in t$
根据概率分布$\mathbb{G}$随机选取几个智能体成为感染者,剩下的都是未感染者。
所有的感染者的投资态度一致。
- 所有感染者都声称自己有市场内幕消息
- 未感染者都没有收到信息
- 免疫者觉得当前这个信息是扯淡
收益
t时刻的收益,等于ln(当前时刻价格)减去ln(上一时刻价格)
收盘价格曲线说明:
- 加密货币市场的收盘价格剧烈波动,繁荣与萧条都很难长期维持
- 价格变化较大
盈利曲线说明: - 加密货币市场相当不稳定
BCH,BTC,ETH,LTC,XRP是加密货币的价格,DJI,SSE分别是两支股票的价格
表中可以得知:
论据: 表中几个加密货币价格的标准差大于两个股票的价格
结论:
加密货币市场的波动变化比实际股票市场的波动更激烈。
论据: BCH的$\alpha_{r^+} < \alpha_{r^-}$,亏损的肥尾指数大于盈利的
结论:
炒BCH出现极端亏损的情况更为频繁
刻画了5种加密货币收益的数字分布特征。
在a的x-linear y-log的刻画中,几个加密货币几乎都是关于0点对称的钟形曲线
论据: 加密货币偏度(skewness)的数据都是负数
结论:收益向左扩散,加密货币市场具备收益的fat-tail效应
KS, AD, JB测试的关键值分别是0.041, 0.7514, 5.9377
论据: 几种加密货币的关键值和这三种测试的关键值相去甚远
结论:
这种加密货币在假设检验$H=1$, significan level是5%的时候,不服从于高斯分布。
智能体的决策聚合
价格
金融市场的价格
解释:
每个投资人的微观决策聚合+宏观市场的涨跌=加密货币的实际价格
参数对齐
交易日数:$T=1000$
交易参与人数:$M=1000$
感染过程速率:$\lambda=9, 10, 11, 12, 13$
Composite Multiscale Fuzzy Entropy复合多尺度模糊熵
CMFE
本质上就是对各种长度的采样方法,遍历时间序列的各种组合形式.
引入目的
对比衡量生成数据与真实数据背后的决策行为复杂度,以此证明该方法成功模拟了现实加密货币市场的复杂性。
模型
模糊熵
计算过程
第一步:进行时间序列嵌入向量
目标:时间序列数据$\{x(i): 1 \leq i \leq N\}$,时序长度为$N$
嵌入向量表示方法:
在$i$时刻 的$m$号 嵌入$X_m(i)$就是:
从$i$时刻开始,向后一共提取连续的$m$个时序数据,组成一个集合,再将集合中的所有元素减去它们的均值,以做到均一化。
- 均值计算:$\bar{x}(i)=\frac{1}{m} \sum_{k=0}^{m-1} x(i+k)$
- $i$的选择范围不能让这个嵌入的取值超过本身的时序长度限制$N$: $1 \leq i \leq N-m+1$
第二步:经过模糊公式,计算两个向量之间的相似度
对两个向量的要求:两个向量的长度一致,也即$m$一样
嵌入向量间的模糊公式计算:
其中:
- $\begin{aligned} d_{i j}^m &=d\left[X_i^m, X_j^m\right] \\ &=\max \{|x(i+k)-\bar{x}(i)-(x(j+k)-\bar{x}(j))|\end{aligned}$ 最大的波动幅度差
- $\zeta$是选择幂(chosen power),是一个超参数(?)
- $r$是相似容忍限度(tolerance level),应该也是个超参数(?)
直观解释:
针对两个嵌入向量,从$i$时刻或$j$时刻起始,一步一步加大步长,寻找两个向量之间最大波动幅度差。
第三步:全局定义一个概率分布,用来刻画两对向量间相似程度相同的现象频次
相似度出现频率统计公式:
给定一个区间长度$m$,给定一个容忍度$r$,计算出现频次$\Psi^m(r)$
直观理解:
其实就是两个for循环,对所有可能的i和j进行遍历,然后再对它取平均,加和了$\chi$次就除以$\chi$求取均值。
第四步:重复上述三个步骤,直到遍历完成
第五步:估计模糊熵
给定一个时间序列长度,一个容忍度,计算得到这个数值。
此模型中的引用目的
引入模糊熵来衡量时间序列的复杂度,如果生成的和实际的复杂度数值相差不大,则可以一定程度上说明。
为什么用模糊熵而
多尺度的引入
这里的尺度意味着:不同的数据颗粒度,颗粒度越大,单次采样时序数据越多。
粗粒度向量:
$\tau$ - (scale factor)尺度系数,调整$\tau$的大小就可以调整粒度的大小,从而一定程度上压缩时序数据,同时这里的$1 \leq k \leq \tau$。这个时候,利用上面的公式进行扩展,将所有可能的$\tau$都遍历一遍,列写各种粒度下的向量:
再增加对k值的遍历,推演得到复合多尺度模糊熵
参数对齐
$m=2$
$\zeta = 2$
$r = 0.15\sigma$,其中$\sigma$是对应时间序列数据的标准差。
Match Energy匹配能
ME
引入目的
分析行为的复杂度
优点
- 高速
- 适用于较小尺度的数据集
- 对数据复杂性的分类效果非常好
模型
给定一个时序数据$\mathbf{X}=\left\{x_1, x_2, \ldots x_T\right\}$,长度为$T$
先利用Differential Dynamical Quantization方法进行时序数据的归一化。
第一步:排序
去除时间因素,按照数据的数值大小进行排序
参数:$\mathbf{X}$
输出:
升序:$\mathbf{P}=\left\{p_1, p_2, \ldots p_T\right\}$
降序:$\mathbf{Q}=\left\{q_1, q_2, \ldots q_T\right\}$
第二步: 构建嵌入向量
超参数:
- 嵌入(embedding)维度 $m$
- 延时系数 $\tau$,其中$1 \leq \tau \leq m$
参数: $\mathbf{X}, \mathbf{P}, \mathbf{Q}$
输出:
$\mathbf{x}_i=\left\{x_{i \tau}, x_{i \tau+1}, \ldots, x_{i \tau+(m-1)}\right\}$
$\mathbf{p}_i = \left\{p_{i \tau}, p_{i \tau+1}, \ldots, p_{i \tau+(m-1)}\right\}$
$\mathbf{q}_i=\left\{q_{i \tau}, q_{i \tau+1}, \ldots, q_{i \tau+(m-1)}\right\}$
第三步:对嵌入向量排序
参数:$\mathbf{x}_i=\left\{x_{i \tau}, x_{i \tau+1}, \ldots, x_{i \tau+(m-1)}\right\}$
输出:
升序:$\mathbf{y}_i$
降序:$\mathbf{z}_i$
第四步:构建匹配坐标系
参数: 升序比较($\mathbf{p}_i$ with $\mathbf{y}_i$)【匹配坐标数$m_1$】
输出:
匹配坐标系:$\mathbf{V}^{(\mathbf{1})}$
本质:向量空间
参数: 降序比较($\mathbf{q}_i$ with $\mathbf{z}_i$)【匹配坐标数$m_1^{\prime}$】
输出:
不匹配坐标系:$\mathbf{V}^{(\mathbf{2})}$
本质:向量空间
维度:$m-m_1$
第五步:向量投影并计算能量
参数:$\mathbf{x}_i$, $\mathbf{V}^{(\mathbf{1})}$, $\mathbf{V}^{(\mathbf{2})}$
输出:
在升序匹配坐标系的投影:$\mathbf{x}_i^{(1)}$
在降序匹配坐标系的投影:$\mathbf{x}_i^{(2)}$
参数:$\mathbf{x}_i^{(1)}$, $\mathbf{x}_i^{(2)}$, $\mathbf{x}_i^{(1)}$的均值 $\overline{\mathbf{x}_i^{(1)}}$, $\mathbf{x}_i^{(2)}$的均值 $\overline{\mathbf{x}_i^{(2)}}$
输出:
升序匹配能:$E_{i-}$
降序匹配能:$E_{i+}$