问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

投资组合优化策略:凸优化与凹优化详解(CPPI与OBPI)

创作时间:
作者:
@小白创作中心

投资组合优化策略:凸优化与凹优化详解(CPPI与OBPI)

引用
CSDN
1.
https://blog.csdn.net/Ke_Yan_She/article/details/139040365

本文介绍了投资组合中的凸优化与凹优化策略,包括CPPI(恒定比例投资组合保险)和OBPI(基于期权的投资组合保险)等动态配置风险投资组合和无风险策略。通过Matlab代码实现这些策略,并提供了运行结果和参考文献。

1. 概述

我们回顾了在风险组合和无风险账户之间动态重新配置资金的主要方法:预期效用最大化;基于期权的投资组合保险(OBPI);以及与恒定比例投资组合保险(CPPI)密切相关的回撤控制。我们在一般假设下对理论进行了简要复习。我们讨论了不同方法之间的联系,以及它们与凸优化和凹优化策略的关系。我们提供了明确的、可行的解决方案,包括所有计算以及数值示例。

本文提供了动态配置风险投资组合和无风险账户之间资金的主要策略的快速概述。本文的结构如下。在第1节中,我们介绍了两种投资工具的动态特性;在第2节中,我们讨论了构建策略的一般规则。

在第3节中,我们讨论了最大化投资期望效用的策略。在一般情况下解决这种类型问题需要先进技术,但特殊的显著案例可以很容易地得到解决。在第4节中,我们讨论了实现期望的策略,其收益是根据风险资产在投资期限内的随机结果设计成函数的。这些策略也被错误地称为基于期权的投资组合保险。在第5节中,我们涵盖了回撤控制和恒定比例投资组合保险。在第6节中,我们讨论了上述各种方法之间的联系以及它们与凸优化和凹优化策略的关系。

2. 运行结果

部分代码:

NumSimul=30000;
%%%%%%%%%%%%%%%%%%%%%%%%%%
if Strategy==1 % Constant exposures
% amount to be invested in the underlying? e.g.: 50
Prct = 50 ;
end
if Strategy==2 % Buy&Hold
% proportion of underlying you want to hold in the beginning, e.g.: 50
Prct = 50 ;
end
if Strategy==3 % CPPI
% floor today (will evolve at the risk-free rate), e.g.: 950
Floor = 980;
% leverage on the cushion between your money and the floor, e.g. 3
Multiple_CPPI = 5;
end
if Strategy==4 % Delta Hedging
% level of aggressivness bw 0 and 1
Aggressivness = .2;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% initialize values
Underlying_Index=Initial_Investment; % value of the underlyting at starting time, normalzed to equal investment
Start=Underlying_Index;
Elapsed_Time=0;
Portfolio_Value=Initial_Investment;
if Strategy==1 % Constant Weights
Underlying_in_Portfolio_Percent = Prct/100;
end
if Strategy==2 % Constant Weights
Underlying_in_Portfolio_Percent = Prct/100;
end
if Strategy==3 % CPPI
Cushion=max(0,Portfolio_Value-Floor);
Underlyings_in_Portfolio=min(Portfolio_Value,max(0,Multiple_CPPI*Cushion));
Cash_in_Portfolio=Portfolio_Value-Underlyings_in_Portfolio;
Underlying_in_Portfolio_Percent = Underlyings_in_Portfolio./Portfolio_Value;
end
if Strategy==4 % Delta Hedging
options=[];
Strike = fsolve('Solve4Strike',Start,options,Time_Horizon,Underlying_Index,s,r,Initial_Investment,Aggressivness*Initial_Investment/3);
Underlying_in_Portfolio_Percent = Delta(Time_Horizon-Elapsed_Time,Underlying_Index,s,Strike,r);
end

3. 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

4. Matlab代码、文章

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号