【FinE】mean-CVaR计算

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). 该函数也是定义VaRCVaR的基础,且函数关于 α \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,α)β}
计算VaRMatlab 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β1f(x,y)>α(x,β)f(x,y)

The presence of the VaR function in the CVaR 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β1f(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 xX 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的方法求解该问题,考虑有限资产的投资组合,每个资产具有有限的历史序列,从CVaRVaR的随机概率规划的本质可以看出,资产序列的未来收益率(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=1J(f(x,yj)α)+ν=(1β)J1
可以使用LP求解,令辅助变量 z j z_j zj替换 ( f ( x , y j ) − α ) + (f(x, y_j)-\alpha)^+ (f(x,yj)α)+,可以得到最小CVaR1
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=1Jzjs.t.xXzjf(x,yj)αzj0
可以对投资权重加上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


  1. 证明过程参见论文credit risk optimization with conditional VaR criterion ↩︎

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Quant0xff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值