Navigator
VaR
定义
Ψ
(
x
,
α
)
\Psi(x, \alpha)
Ψ(x,α)表示
f
(
x
,
y
)
f(x, y)
f(x,y)不超过阈值
α
\alpha
α的概率
Ψ
(
x
,
α
)
=
∫
f
(
x
,
y
)
≤
α
p
(
y
)
d
y
\Psi(x, \alpha)=\int_{f(x, y)\leq \alpha}p(y)dy
Ψ(x,α)=∫f(x,y)≤αp(y)dy
固定
x
x
x,在
R
n
\mathbb{R}^n
Rn进行积分计算,
Ψ
(
x
,
α
)
\Psi(x, \alpha)
Ψ(x,α)是一个关于
α
\alpha
α的函数,表示权重
x
x
x下的损失的累积分布函数(cumulative distribution function
). 该函数也是定义VaR
和CVaR
的基础,且函数关于
α
\alpha
α是连续的.
设置置信水平
β
\beta
β,可以将
α
\alpha
α看做函数
α
(
x
,
β
)
\alpha(x, \beta)
α(x,β),根据VaR的定义
VaR
is defined as the lowest value such that Ψ ( x , α ( x , β ) ) = β \Psi(x, \alpha(x, \beta))=\beta Ψ(x,α(x,β))=β.
V
a
R
β
=
α
β
(
x
)
=
min
{
α
∈
R
:
Ψ
(
x
,
α
)
≥
β
}
VaR_\beta=\alpha_\beta(x)=\min\{\alpha\in R: \Psi(x, \alpha)\geq \beta\}
VaRβ=αβ(x)=min{α∈R:Ψ(x,α)≥β}
计算VaR
的Matlab Code
如下
function [VaR, portVaR]=minux_VaR(returns, p, w)
% returns: 收益率矩阵
% p: 分位数
% w: 权重向量,如果为空值,那么设置为等权重
% VaR:每支股票的VaR值,存储形式为向量
% portVaR: 投资组合的VaR值
[n, m]=size(returns); % n表示时间序列长度, m表示股票的数量
VaR = zeros(m, 1);
for i =1:m
VaR(i, 1)=quantile(returns(:, i), p);
end
if isempty(w)
w = [(1/m)*ones(1, m)]'; % 如果传入向量为空,那么设置为等权重
end
portVaR = quantile(returns*w, p);
end
mean-CVaR
如果损失函数
f
(
x
,
y
)
f(x, y)
f(x,y)超过了阈值为
α
\alpha
α值得VaR
,可以计算出期望损失(expected loss
)/条件在险价值,即CVaR
(
Φ
β
(
x
)
\Phi_\beta(x)
Φβ(x))如下
Φ
β
(
x
)
=
1
1
−
β
∫
f
(
x
,
y
)
>
α
(
x
,
β
)
f
(
x
,
y
)
\Phi_\beta(x)=\frac{1}{1-\beta}\int_{f(x, y)>\alpha(x, \beta)} f(x, y)
Φβ(x)=1−β1∫f(x,y)>α(x,β)f(x,y)
The presence of the
VaR
function in theCVaR
formula makes the model complicated and difficult to handle in the minimization; therefore the approach used in this work handles with a simpler function for the CVaR expression:
F
β
(
x
,
α
)
=
α
+
1
1
−
β
∫
f
(
x
,
y
)
>
α
(
f
(
x
,
y
)
−
α
)
p
(
y
)
d
y
F_\beta(x, \alpha)=\alpha+\frac{1}{1-\beta}\int_{f(x, y)>\alpha}(f(x, y)-\alpha)p(y)dy
Fβ(x,α)=α+1−β1∫f(x,y)>α(f(x,y)−α)p(y)dy
在Rockafellar和Uryasev的论文中的定理1,给出了
F
β
(
x
,
α
)
F_\beta(x, \alpha)
Fβ(x,α)的性质描述
Threorem 1: As a function of α \alpha α, F β ( x , α ) F_\beta(x, \alpha) Fβ(x,α) is a convex and continuously differentiable. The β − \beta- β−CVaR of the loss associated with any x ∈ X \mathbf{x}\in X x∈X can be determined from the formula
ϕ
β
(
x
)
=
min
α
∈
R
F
β
(
x
,
α
)
\phi_\beta(\mathbf{x})=\min_{\alpha\in\mathbf{R}}F_\beta(\mathbf{x}, \alpha)
ϕβ(x)=α∈RminFβ(x,α)
进而可以直接得到结论
Φ
β
(
x
)
=
F
β
(
x
,
α
(
x
,
β
)
)
=
min
α
F
β
(
x
,
α
)
\Phi_\beta(x)=F_\beta(x, \alpha(x, \beta))=\min_\alpha F_\beta(x, \alpha)
Φβ(x)=Fβ(x,α(x,β))=αminFβ(x,α)
可以使用Linear programming
的方法求解该问题,考虑有限资产的投资组合,每个资产具有有限的历史序列,从CVaR
和VaR
的随机概率规划的本质可以看出,资产序列的未来收益率(future returns
)需要计算,假设future returns
遵循特定分布(这是一个很强的假设, assuming that the future returns will follow a specific distribution
)
p
(
y
)
p(y)
p(y),可以从该假设分布中抽样出有限个scenarios
y
j
,
j
=
1
,
…
,
J
y_j, j=1, \dots, J
yj,j=1,…,J,根据以上假设,可以推导出如下近似方程
F
~
β
(
x
,
α
)
=
α
+
ν
∑
j
=
1
J
(
f
(
x
,
y
j
)
−
α
)
+
ν
=
1
(
1
−
β
)
J
\widetilde{F}_\beta(x, \alpha)=\alpha+\nu\sum_{j=1}^J (f(x, y_j)-\alpha)^+\\ \nu=\frac{1}{(1-\beta)J}
F
β(x,α)=α+νj=1∑J(f(x,yj)−α)+ν=(1−β)J1
可以使用LP
求解,令辅助变量
z
j
z_j
zj替换
(
f
(
x
,
y
j
)
−
α
)
+
(f(x, y_j)-\alpha)^+
(f(x,yj)−α)+,可以得到最小CVaR
1
min
α
+
ν
∑
j
=
1
J
z
j
s
.
t
.
{
x
∈
X
z
j
≥
f
(
x
,
y
j
)
−
α
z
j
≥
0
\min \alpha+\nu\sum_{j=1}^Jz_j\\ s.t. \begin{cases} x\in X\\ z_j\geq f(x, y_j)-\alpha\\ z_j\geq 0 \end{cases}
minα+νj=1∑Jzjs.t.⎩⎪⎨⎪⎧x∈Xzj≥f(x,yj)−αzj≥0
可以对投资权重加上upper-lower
限制,Matlab Code
如下
function [CVaR, w]=minux_CVaR(returns, Er, beta, Ub, Lb)
% Input parameters
% returns表示资产收益率矩阵
% Er为目标收益率
% beta为置信水平,一般设置在0.9~1之间
% Ub: upper bound for each stock weight
% Lb: lower bound for each stock weight
% Output
% CVaR: the conditional value at risk for the portfolio
% w: the optimal portfolio weight
[n, m] = size(returns); % n表示收益率序列的长度, m表示资产的数量
w0 = [(1/m) *ones(1, m)]; % 初始权重设置,为等权重(1/N)
VaR = quantile(returns*w0', beta); % 在险价值,作为CVaR中的参数
w0 = [w0 VaR];
% 设置目标函数(objective function), 根据CVaR方程得到
j = 1:m;
obj = @(w) w(m+1)+(1/n)*1/(1-beta)*sum(max(-w(j)*returns(:, j)'-w(m+1), 0));
if isempty(Er), isempty(Ub), isempty(Lb) % 如果目标收益率和权重约束不存在
Aeq = [ones(1, m) 0]; % 和约束方程 Aeq*w=beq相符合
beq = [1];
% solve
[w, CVaR] = fmincon(obj, w0, [], [], Aeq, beq);
else % 存在目标收益率和权重约束
A=[-mean(returns) 0; -eye(m) zeros(m, 1); eye(m) zeros(m, 1)];
b = [-Er -Lb*ones(1, m) Ub*ones(1, m)]';
Aeq = [ones(1, m) 0];
beq = [1];
% solve
[w, CVaR]=fmincon(obj, w0, A, b, Aeq, beq, Lb, Ub, []);
end
end
调用函数编写如下
%% VaR函数测试
% 数据载入
load CAPMuniverse.mat
returns = Data(:, 1:5);
returns = fillmissing(returns, 'linear');
w =[];
[mVaR5, mPortVaR5] = minux_VaR(returns, 0.05, w);
%% CVaR函数测试
Er=mean(mean(returns), 2);
beta=0.95;
Ub = 0.8;
Lb = 0.3;
[mCVaR, mw]=minux_CVaR(returns, Er, beta, Ub, Lb);
References
Robust Portfolio Optimization using CVaR
Stable Portfolio Selection Strategy for Mean-Variance-CVaR
optimization of Conditional Value-at-Risk