金融模型——Copula函数对金融资产尾部相关性分析

Copula函数对金融资产尾部相关性分析

目录

简介

尾部相关系数

Copula函数

Copula函数的参数估计

Copula函数对金融资产的相关性分析

最大分散化投资组合(MaxDiversification)

最小尾部依赖投资组合(Minimum Tail Dependence)

模型回测

简介

资产配置的核心目标之一是降低投资组合风险,而资产间相关性分析在其中扮演着不可或缺的角色。在众多的资产中,如果我们配置相关性尽可能低的资产,那么可以使投资组合的风险尽可能的低,所以深度地去理解不同衡量关联性的方法可以加强对资产相关性的判断。

相关系数(Pearson相关系数)是最常见的衡量相关性的方法,在一般的资产配置模型(如马科维茨、风险平价、风险预算、BL模型)中,都是用的此相关系数来衡量资产的相关性。但此相关系数虽然有优点突出,但其有很多缺点。具体如下:

优点:Pearson相关系数使模型在数学推导上极其的完美。
缺点:
1、Pearson相关系数是一种线性相关的度量,不能刻画非线性相关关系。
2、Pearson相关系数是刻化整体的相关性,但是金融模型中,一般关心的是尾部的相关性,从而可以求出资产组合的尾部风险。

在资产配置中,Pearson相关系数的第二个缺点是非常重要的。真对这两个缺点,我们可以引入Copula函数,来计算多个随机变量的尾部相关性,从而求得资产组合的尾部风险。

尾部相关系数

在衡量组合的风险时,我们需要定义出资产间尾部的相关性,从而配置尾部相关性低的资产,来降低组合的尾部风险。通常我们定义尾部相关系数如下(以二元问题为例):

\rho_{upper}(X,Y)=\lim_{\alpha ->1} P(Y>F_Y^{-1}(\alpha)|X>F_X^{-1}(\alpha) )
\rho_{lower}(X,Y)=\lim_{\alpha ->1} P(Y<=F_Y^{-1}(\alpha)|X<=F_X^{-1}(\alpha) )

尾部相关系数可以理解为在给定 X 是一个较大或者较小值时,观察到一个较大或者较小 Y 值的概率。\rho_{upper}>0说明上尾相关,\rho_{lower}<0说明
下尾相关。

所以,我们要求出资产间的联合分布才能求出尾部的相关系数。如何又每个资产的分布求出所有资产的联合分布,这就用到了Copula函数。Copula函数可以完美的将单个随机变量的分布当成边际分布合成联合分布。

Copula函数

Copula函数是由Sklar(1959)首次提出,可以在McNeil等(2005)中找到更详细的解释, 该函数可以理解为相依函数或者连接函数,它是把多维随机变量的联合分布用其一维边际分布连接起来的工具。

Sklar定理(以二元为例)

若H(x,y)是一个具有连续边缘分布的F(x)与G(y)的二元联合分布函数,那么存在唯一的Copula函数C(\mu,\nu),使得 :
H(x,y)=C(F(x),G(y))
反之,如果C(\mu,\nu)是一个copula函数,而 F(x)与G(y)是两个任意的概率分布函数,那么由上式定义的H(x,y) 函数一定是一个联合分布函数,且对应的边缘分布刚好就是 F(x)与G(y) 。

由Sklar定理,我们可以把多个随机变量一维的各个分布当成边际分布,构造这些随机变量的联合分布。在资产配置里面,我们将两个资产的收益率当成随机变量,先统计出两个随机变量的分布,再根据Sklar定理,得到这两个随机变量的联合分布。有了联合分布,我们可以讨论两个随机变量的尾部关联性,从而得到资产组合的尾部分析。

所以,求解Copula函数C(\mu,\nu)变得至关重要。

显然我们不能从公式H(x,y)=C(F(x),G(y))出发来求解。因为我们不知道联合分布。我们需要从其他途径求出此函数。庆幸的是,我们可以从其他途径求出Copula函数。

在数学上,只要满足以下三条性质的函数就可以当做Copula函数。(以二元函数为例)

1、此二元函数是[0,1]X[0,1]到[0,1]的映射。

2、C(\mu,0)=C(0,\mu)=0,C(\nu,1)=C(1,\nu)=\nu

3、\frac{\partial C(\mu,\nu)}{\partial \mu} \in [0,1],\frac{\partial C(\mu,\nu)}{\partial \nu} \in [0,1]
或者C(\mu_2,\nu_2)-C(\mu_2,\nu_1)-C(\mu_1,\nu_2)+C(\mu_1,\nu_1) >=0

所以我们只需要找到满足上面三个性质的函数即可,在实际应用中,有两类Copula函数最常用,一类是椭圆Copula函数族,一类是阿基米德Copula函数族。

椭圆Copula函数族常用的有两种,一是Gaussian Copula,一是Student’s t Copula。

椭圆Copula函数

椭圆Copula函数均有对称的尾部相关性,在中心区域差别不大,差别主要体现在尾部的厚度。本文主要介绍高斯Copula函数和Student’s t Copula函数。

高斯Copula函数

高斯copula是从多元正态分布R^d 通过概率积分变换得到的。对于一个给定的相关系数矩阵R\in[-1,1]^{dxd} ,基于参数矩阵R的高斯Copula可以表达成:

C_R^{Gauss}(\mu)=\Phi_R(\Phi^{-1}(\mu_1),\Phi^{-1}(\mu_2),...\Phi^{-1}(\mu_d)) = \int_{-\infty}^ {\Phi^{-1}(\mu_1)} \int_{-\infty}^ {\Phi^{-1}(\mu_2)}...\int_{-\infty}^ {\Phi^{-1}(\mu_d)} \frac{1}{ \sqrt{2\pi}|\Sigma|^{\frac{1}{2} } } e^{-\frac{(x)^T(\Sigma^{-1})(x)}{2} } dx_1 dx_2... dx_3

其中,\Phi^{-1}是标准正态分布的逆累积分布函数,\Phi_R为多元正态分布的联合累积分布函数,它的均值向量为0.,协方差矩阵为R。x=(x_1,x_2,...x_d).

Student’s t Copula函数

Student’s t Copula是从多元t分布R^d 通过概率积分变换得到的。对于一个给定的相关系数矩阵R\in[-1,1]^{dxd} ,自由度为N,基于参数矩阵R和N的Student’s t Copula 可以表达成:

C_{R,N}^{Gauss}(\mu)=t_R(t^{-1}(\mu_1),t^{-1}(\mu_2),...t^{-1}(\mu_d))
其中R是相关系数矩阵、N是自由度,t^{-1}是 t
分布函数的逆函数。

阿基米德 Copula 函数

阿基米德 Copula 函数具有非对称的尾部相关性,最常见的有Clayton Copula函数和Gumbel Copula函数。

Clayton Copula函数(以二元为例)

Clayton Copula函数,\delta是相关参数,0<\delta< \infty,数值越大相关性越大:

C_{\delta}^{Cl}=(\mu^{-\delta} + \nu^{-\delta} -1)^{\frac{-1}{\delta } }

Gumbel Copula函数(以二元为例)

Gumbel Copula函数,\theta是相关参数,1<\theta< \infty,数值越大相关性越大:

C_{\theta}^{Gu}=e^{-(((-ln\mu )^{\theta} + (-ln\nu )^{\theta } )) ^{1/\theta} }

下面用R程序分别给出高斯Copula函数、Student’s t Copula函数、Clayton Copula函数、Gumbel Copula函数的概率密度函数(PDF)的图像。并且使用4种copula函数对任意的分布合成联合分布,最后给出模拟数据。

###############################################################################
#############--------------- MyCopula.R ------------################
###############################################################################
#
# Des:
# Ref:
#
# Team  : AI Team
# Author: Ding Weijie 
# Email : 380666903@qq.com
# Date  : 2021-03-09
###

#引入copula包
library(copula)
library(psych)
library(VineCopula)

#随机生成数据集
X_1 <- runif(100, 0, 100)
X_2 <-X_1+ runif(100, 0, 50)

#初步研究两个数据的关系
plot(X_1,X_2)
abline(lm(X_2~X_1),col='red',lwd=1)
cor(X_1,X_2,method='spearman')

#以下4行代码是Copula函数的非参数估计,在不知道哪一个Copula函数下使用。
#u <- pobs(as.matrix(cbind(X_1,X_2)))[,1]
#v <- pobs(as.matrix(cbind(X_1,X_2)))[,2]
#selectedCopula <- BiCopSelect(u,v,familyset=NA)
#selectedCopula


#将数据映射到累计概率分布值上,因为copula函数的自变量是对应边际分布的累计概率分布值。这个量是服从[0,1]上的均匀分布的。

##########################################################################################
#高斯Copula函数
gaussian.cop <- normalCopula(dim=2) # 生成二维高斯Copula函数
set.seed(500)



#使用pobs函数将数据映射到累计概率分布值上,因为copula函数的自变量是对应边际分布的累计概率分布值。这个量是服从[0,1]上的均匀分布的。
m <- pobs(as.matrix(cbind(X_1,X_2)))
fit <- fitCopula(gaussian.cop,m,method='ml')#用数据集拟合高斯Copula函数,对其参数进行估计
# 获得参数估计
coef(fit) 
rho <- coef(fit)[1]

#画出拟合后的联合概率密度函数
persp(normalCopula(dim=2,rho),dCopula)

#画出拟合后的联合概率密度函数在二维的投影。
u <- rCopula(3965,normalCopula(dim=2,rho))
plot(u[,1],u[,2],pch='.',col='blue')


#使用以上高斯copula函数,对数据的分布进行联合(这里假设原始数据的分布是付出正太分布的)。
cor(u,method='spearman')
X_1_mu <- mean(X_1)
X_1_sd <- sd(X_1)
X_2_mu <- mean(X_2)
X_2_sd <- sd(X_2)
copula_dist <- mvdc(copula=normalCopula(rho,dim=2), margins=c("norm","norm"),
                    paramMargins=list(list(mean=X_1_mu, sd=X_1_sd),
                                      list(mean=X_2_mu, sd=X_2_sd)))
# 对联合后的分布,进行模拟,生成模拟数据,并与远数据比较。
sim <- rMvdc(3965,copula_dist)
plot(X_1,X_2,main='relation')
points(sim[,1],sim[,2],col='red',pch='.')
legend('bottomright',c('Observed','Simulated'),col=c('black','red'),pch=21)


##########################################################################################
t.cop <- tCopula(dim=2)
set.seed(500)
m <- pobs(as.matrix(cbind(X_1,X_2)))
fit <- fitCopula(t.cop,m,method='ml')
coef(fit)
rho <- coef(fit)[1]
df <- coef(fit)[2]
persp(tCopula(dim=2,rho,df=df),dCopula)


u <- rCopula(3965,tCopula(dim=2,rho,df=df))
plot(u[,1],u[,2],pch='.',col='blue')
cor(u,method='spearman')
X_1_mu <- mean(X_1)
X_1_sd <- sd(X_1)
X_2_mu <- mean(X_2)
X_2_sd <- sd(X_2)

copula_dist <- mvdc(copula=tCopula(rho,dim=2,df=df), margins=c("norm","norm"),
                    paramMargins=list(list(mean=X_1_mu, sd=X_1_sd),
                                      list(mean=X_2_mu, sd=X_2_sd)))
sim <- rMvdc(3965,copula_dist)
plot(X_1,X_2,main='relation')
points(sim[,1],sim[,2],col='red',pch='.')
legend('bottomright',c('Observed','Simulated'),col=c('black','red'),pch=21)





##########################################################################################
clayton.cop <- claytonCopula(dim=2)
set.seed(500)
m <- pobs(as.matrix(cbind(X_1,X_2)))
fit <- fitCopula(clayton.cop,m,method='ml')
coef(fit)
alpha <- coef(fit)[1]

persp(claytonCopula(dim=2,alpha),dCopula)


u <- rCopula(3965,claytonCopula(dim=2,alpha))
plot(u[,1],u[,2],pch='.',col='blue')
cor(u,method='spearman')
X_1_mu <- mean(X_1)
X_1_sd <- sd(X_1)
X_2_mu <- mean(X_2)
X_2_sd <- sd(X_2)

copula_dist <- mvdc(copula=claytonCopula(dim=2,alpha), margins=c("norm","norm"),
                    paramMargins=list(list(mean=X_1_mu, sd=X_1_sd),
                                      list(mean=X_2_mu, sd=X_2_sd)))
sim <- rMvdc(3965,copula_dist)
plot(X_1,X_2,main='relation')
points(sim[,1],sim[,2],col='red',pch='.')
legend('bottomright',c('Observed','Simulated'),col=c('black','red'),pch=21)




##########################################################################################
gumbel.cop <- gumbelCopula(dim=2)
set.seed(500)
m <- pobs(as.matrix(cbind(X_1,X_2)))
fit <- fitCopula(gumbel.cop,m,method='ml')
coef(fit)
alpha <- coef(fit)[1]

persp(gumbelCopula(dim=2,alpha),dCopula)


u <- rCopula(3965,gumbelCopula(dim=2,alpha))
plot(u[,1],u[,2],pch='.',col='blue')
cor(u,method='spearman')
X_1_mu <- mean(X_1)
X_1_sd <- sd(X_1)
X_2_mu <- mean(X_2)
X_2_sd <- sd(X_2)

copula_dist <- mvdc(copula=gumbelCopula(dim=2,alpha), margins=c("norm","norm"),
                    paramMargins=list(list(mean=X_1_mu, sd=X_1_sd),
                                      list(mean=X_2_mu, sd=X_2_sd)))
sim <- rMvdc(3965,copula_dist)
plot(X_1,X_2,main='relation')
points(sim[,1],sim[,2],col='red',pch='.')
legend('bottomright',c('Observed','Simulated'),col=c('black','red'),pch=21)



程序结果:

1、数据集分布

data.png

2、高斯Copula函数

111.jpg

3、t Copula函数

222.jpg

4、Clayton Copula 函数

333.jpg

5、Gumbel Copula函数

444.jpg

有了Copula函数,结合尾部相关系数的定义,我们可以求各种Copula函数下的出尾部相关系数。如下:

\rho_{upper}(X,Y)=\lim_{\alpha ->1} P(Y>F_Y^{-1}(\alpha)|X>F_X^{-1}(\alpha) ) =\lim_{\alpha ->1}\frac{P(Y>F_Y^{-1}(\alpha),X>F_X^{-1}(\alpha) ) }{P(X>F_X^{-1}(\alpha)) } =\lim_{\alpha ->1} \frac{C(1- \alpha,1- \alpha)}{1- \alpha}
\rho_{lower}(X,Y)=\lim_{\alpha ->1} P(Y<=F_Y^{-1}(\alpha)|X<=F_X^{-1}(\alpha) ) = \lim_{\alpha ->1}\frac{P(Y<=F_Y^{-1}(\alpha),X<=F_X^{-1}(\alpha) ) }{P(X<=F_X^{-1}(\alpha)) } =\lim_{\alpha ->1} \frac{C( \alpha, \alpha)}{ \alpha}

由上面的公式可以看出,对于高斯Copula函数和t Copula函数,其尾部相关系数的是对称的。且高斯Copula对变量间尾部相关的变化没有那么敏感,相比之下t Copula函数求得的尾部相关系数,可以很好的捕捉尾部间的相关关系。Gumbel Copula 对资产间的上尾相关变化较为敏感, 而 Clayton Copula 则对资产间的下尾相关变化较为敏感。由于金融资产要衡量的是资产间的尾部依赖性,因此在衡量资产组合尾部风险时选用下尾特征明显的 Clayton Copula 进行拟合并计算相关系数。

将Clayton Copula函数和Gumbel Copula函数代入上公式,得到:
\rho_{upper}^{Gumbel}(X,Y)=\lim_{\alpha ->1} P(Y>F_Y^{-1}(\alpha)|X>F_X^{-1}(\alpha) ) =\lim_{\alpha ->1}\frac{P(Y>F_Y^{-1}(\alpha),X>F_X^{-1}(\alpha) ) }{P(X>F_X^{-1}(\alpha)) } =\lim_{\alpha ->1} \frac{C(1- \alpha,1- \alpha)}{1- \alpha}=2-2^{1/\theta}
\rho_{lower}^{Clayton}(X,Y)=\lim_{\alpha ->1} P(Y<=F_Y^{-1}(\alpha)|X<=F_X^{-1}(\alpha) ) = \lim_{\alpha ->1}\frac{P(Y<=F_Y^{-1}(\alpha),X<=F_X^{-1}(\alpha) ) }{P(X<=F_X^{-1}(\alpha)) } =\lim_{\alpha ->1} \frac{C( \alpha, \alpha)}{ \alpha} = 2^{-1/\delta}

至此,我们就找到了衡量资产间的尾部风险的相关系数---Clayton Copula 函数下定义的尾部相关系数。(当然牛市的时候,我们可以用Gumbel Copula 定义的尾部相关系数找资产间的尾部相关性)

Copula函数的参数估计

与其他参数估计一样,使用最经典的极大似然估计的方法(Canonical Maximum Likelihood Estimation),不对边缘分布的参数做出假设,直接使用样本的经验分布,求以下最优化问题:

\theta=argmax \Sigma_{t=1}^T ln c_{\theta}^H(\mu_t,\nu_t)

其中:\theta为边际分布中的参数,H是四种Copula函数名称,c是密度函数,T为要联合的边际分布个数。

对于Clayton Copula 函数,上式就变为:

\delta=argmax \Sigma_{t=1}^T ln c_{\delta}^{Clayton }(\mu_t,\nu_t)

以上就是Copula函数的参数估计方法。

特别的,对于 Copula 函数的参数估计,Archimedean 函数族有一个特性,即该族的 Copula 函数参数可以由 kendall 秩相关系数推算而得,从而简化了计算量。关系如下:

\tau_{\delta}^{Clayton} = \frac{\delta}{\delta+2}
\tau_{\delta}^{Gumbel} = \frac{\theta-1}{\theta}

其中\tau_{\delta}为 kendall 秩相关系数。

Copula函数对金融资产的相关性分析

本位以格力电器和美的电器的2014年1月1日以来的股票日收益率为数据,研究两者之间的相关关系。

首先进行简单的数据分析,得到两皮尔逊相关系数为:0.7439301。kendall秩相关系数为 0.5627232 两者的关系图如下:

g_m.png

由这个图可以看出,图的右上部分,两者的相关性很弱,中间和左下部分相关性比较强,所以,我们使用Clayton Copula 函数来研究两者的下尾相关性,也就是研究两者在大跌时的相关性。

使用上面R程序代码,对Clayton Copula 函数参数进行估计,得到:\delta=1.873299。 此参数和kendall相关系数求出来的\delta差别不大。
对联合分布模拟数据得到:

sim.png

我们\alpha取0.05,定义0.05分位数以下是尾部。

代入下尾相关系数的公式,我们可以求出美的集团和格力电器的下尾尾部相关系数。\rho_{upper}^{Gumbel}=0.6907245

所以,我们就求得了美的集团和格力电器的下尾尾部相关性。有了下尾尾部相关性,我们在配置资产时,需要保证配置的资产在尾部相关性比较低,因为这样当发生大跌事件时,我们的组合风险才能分散,不至于大跌。

最大分散化投资组合(MaxDiversification)

这一模型和之前的风险平价和风险预算不一样,虽然追求的也是风险的分散,但是使用方法和思想不一样。

如果两个资产x,y的完全正相关,也就是y=kx,那么有:
cor(x,y)=1
\sigma_y=k\sigma_x

所以根据资产组合的波动率公式,如果资产x,y的配置权重为w_1,w_2,有:
\sigma_c= w_1 \sigma_1+ w_2\sigma_2

当n个资产时,上面的公司就变为:
\sigma_c= w_1 \sigma_1+ w_2\sigma_2...+ w_n\sigma_n= \Sigma_{i=1}^n w_i \sigma_i

所以,当配置的资产之间完全正相关时,组合的风险就是各资产的加权后。

当配置的资产之前不完全正相关时,组合的波动率为:
\sigma_c =\sqrt{ W^T \Sigma W }
其中\Sigma为资产间协方差矩阵,W为资产配置权重向量。

每个基础投资组合加权平均波动率与整体投资组合波动率之间的比值越大,说明我们配置的组合越分散。

所以最大分散化投资组合模型就是最大化以上两个比值(这一比率被称为分散化比率DR,越大说明投资分散化),即:
argmax_W \frac{ \Sigma_{i=1}^n w_i \sigma_i }{\sqrt{ W^T \Sigma W }}
s.t.\Sigma_{i=1}^n w_i=1
s.t. w_i>=0

在上面的公式中,分子是资产波动率的加权之和,分母是投资组合的总波动 率(考虑了资产之间的相关性)。分子与分母之间的本质区别是相关系数,而为了 极大化该比率,必须最小化包含相关性的分母。这种分配方法试图选择使资产之 间的相关性最小化的资产,从而达到最大化分散度(比如如果完全正相关,则目 标函数结果为 1)。

以上最优化问题,并不是二次优化,所以可以先转化成如下最优化问题。

argmin_W \frac{\sqrt{ W^T \Sigma W } }{ \Sigma_{i=1}^n w_i \sigma_i}
s.t.\Sigma_{i=1}^n w_i=1
s.t. w_i>=0

我们这里想办法把分母变成1.

我们假设一种资产Y,这种资产Y是资产X和现金Cash的配置组合,我们把Y配置成一个风险(标准差)为1的资产。

我们如下配置:
Y_i=\frac{X_i}{\sigma_i}+(1-\frac{1}{ \sigma_i})Cash

所以:
\sigma(Y_i)=1

所以,我们对资产Y实行最大分散化投资模型,则原问题变成如下问题:
argmin_{\Psi} \Psi^T P \Psi
s.t.\Sigma_{i=1}^n \Psi_i=1
s.t. \Psi_i>=0

其中:\Psi是配置资产Y的权重,P是资产Y的协方差矩阵,因为资产Y中有\sigma_i(Y_i)=1,所以P也是Y的相关系数矩阵。

这一问题就是一个典型的凸二次优化问题。很好求解。

求解出\Psi后,我们带入:
Y_i=\frac{X_i}{\sigma_i}+(1-\frac{1}{ \sigma_i})Cash

看到X的权重为:
\frac{\Psi_i}{\sigma_i}

因为Y中有配置的现金的权重,所以X_i的权重\frac{\Psi_i}{\sigma_i}的和不等于1.

还要对其归一化,最后求解权重w_i:

w_i =\frac{\frac{\Psi_i}{\sigma_i}}{\sum \frac{\Psi_i}{\sigma_i} }

所以以上就是最大化分散模型。

最小尾部依赖投资组合(Minimum Tail Dependence)

不论是在上面的资产配置模型中,还是在风险平价、风险预算、BL模型中研究资产间相关性时,使用的都是皮尔逊相关系数,这种相关系数,是研究数据整体的相关性,在资产配置时,有时更注重的是尾部相关性,分散组合的尾部风险。

所以我们可以将上面模型改造,将使用的皮尔逊相关系数,修改成下尾尾部相关系数,使用Clayton Copula 函数求解下尾尾部相关系数。这就是最小尾部依赖投资组合(Minimum Tail Dependence)。

其模型为:
argmin_{\Psi} \Psi^T T \Psi
s.t.\Sigma_{i=1}^n \Psi_i=1
s.t. \Psi_i>=0

其中:\Psi是配置资产Y的权重,T是资产Y的尾部相关系数矩阵。

求解方法与上面一样,唯一不一样的是,T是根据Clayton Copula 函数求出的尾部相关系数矩阵。

模型回测

这里使用沪深300指数和中债国债总值财富指数2017年以来的数据,对这两个资产进行配置,一年一调仓,从而对以上两个模型进行回测。

根据模型生成调仓策略如下。

调仓.png

模型回测净值曲线如下:


plot_zoom_png.png

回测指标如下:

评价.png

由回测结果,我们可以得到,利用尾部的相关系数代替皮尔逊相关系数对配置是有正向的帮助的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容