保本基金于20世纪80年代中期起源于美国,其核心是用投资组合保险策略进行基金的操作。保本基金是本金100%的保证(或者本金的一定比例的保证)。如果最终的收益大于等于保本金额,则担保人无需赔偿,否则,损失由担保人承担。

国际上比较流行的投资组合保险策略主要有对冲保险策略和固定比例投资组合保险策略(constant proportion portfolio insurance,CPPI)。

对冲保险策略主要依赖金融衍生品,实现投资组合价值的保本与增值。国际成熟市场的保本策略目前较多使用金融衍生品进行操作。目前国内缺乏这些金融工具,所以国内的保本基金主采取CPPI策略作为投资的保本策略。

Black and Jones (1987)提出了固定比例投资组合保险策略,让投资者根据个人对资产报酬的要求和对风险的承受能力设定适合于自己的投资组合保险。整个投资组合包括主动性资产(Active Asset)和保留性资产(Reserved Asset)。两类资产中较高风险并且预期回报较高的为主动性资产,较低风险低回报的则为保留性资产,因此一种资产可能在某些情况下是主动性资产,但在某些情况下则变成保留性资产。在股票和无风险资产的例子中,主动性资产指的就是股票,而保留性资产则是无风险资产。

CPPI策略,全称为恒定比例组合保本策略(Constant Proportion Portfolio Insurance),该策略以数量化的分析模型为基础,通过动态调整基金在安全资产和风险资产的投资比例,确保基金投资组合的风险暴露水平不超过基金可承担的损失(该损失限额又称为安全垫),以实现保本周期到期时投资本金安全的目标。该策略在控制一定的下限风险的同时,通过投资风险资产增厚投资收益,实现资产增值的效果。
%% CPPIclear;
close all;
clc%% 定义市场参数,生成随机价格曲线
trading_year = 1;
trading_day_per_year = 252;
days_per_calendar_year = 360;
rf = 0.05;
rf_daily = rf / days_per_calendar_year;
trading_day_sim = trading_year * trading_day_per_year;
exp_total_ret = 0.2; % 预期年化收益
exp_yearly_std = 0.3; % 预期年化标准差exp_daily_ret = (1+exp_total_ret)^(1/trading_day_per_year) - 1;
exp_daily_std = exp_yearly_std / sqrt(trading_day_per_year);mu = exp_daily_ret;
sigma = exp_daily_std;% seed = 1;
% rng(seed);random_ret = normrnd(mu,sigma,trading_day_sim,1); % 随机收益曲线
random_idx = cumprod(1+random_ret);
random_idx = [1 ; random_idx]; % idx的初始为1figure(1)
subplot(211);
plot(random_idx,'b');
grid on;
text(trading_day_sim,1,['收益' num2str((random_idx(end)-1)*100) '%'])
title('标的')%% 定义CPPI参数
init_nav = 1e4; % 初始本金
adj_period = 30; % 调整周期
guarantee_rate = 1; % 保本比例
risk_multipler = 5; % 风险乘数
risk_trading_fee_rate = 6 / 1000; % 风险资产交易费率risk_asset = zeros(trading_day_sim+1,1); % 风险资产
rf_asset = zeros(trading_day_sim+1,1); % 无风险资产
min_pv_asset = zeros(trading_day_sim+1,1); % 价值底线
nav = zeros(trading_day_sim+1,1); % 总资产
nav(1) = init_nav;%% CPPI策略% 第1天
min_pv_asset(1) = guarantee_rate * init_nav / (1+rf_daily*trading_day_sim); % 第1天的价值底线
risk_asset(1) = max(0,risk_multipler * (nav(1) - min_pv_asset(1))); % 风险资产 w/o fee
rf_asset(1) = (nav(1) - risk_asset(1)); % 无风险资产
risk_asset(1) = risk_asset(1) * (1 - risk_trading_fee_rate);  % 扣去手续费% 第2天到最后1天
for t = (2:trading_day_sim+1)min_pv_asset(t) = guarantee_rate * init_nav / (1+rf_daily*(trading_day_sim-t+1)); % 价值底线risk_asset(t) = (1+random_ret(t-1)) * risk_asset(t-1);rf_asset(t) = (1+rf_daily) * rf_asset(t-1);nav(t) = risk_asset(t) + rf_asset(t);% 定期调整if mod(t-1, adj_period) == 0risk_asset_b4_adj = risk_asset(t);risk_asset(t) = max(0,risk_multipler * (nav(t) - min_pv_asset(t))); % 风险资产rf_asset(t) = nav(t) - risk_asset(t); % 无风险资产risk_asset(t) = risk_asset(t) - abs(risk_asset_b4_adj - risk_asset(t)) * risk_trading_fee_rate; % 手续费end% 检查是否被强制平仓if risk_asset(t) <= 0rf_asset(t) = nav(t) - risk_asset(t) * risk_trading_fee_rate;risk_asset(t) = 0;endend%%
figure(1)
subplot(212);
plot(nav/init_nav,'b');hold on;grid on;
% plot(rf_asset,'r');
% plot(risk_asset,'g');
% legend('nav','rf','risk');
% % title([num2str((nav(end)/init_nav-1)*100)])
text(trading_day_sim,1,['收益 ' num2str((nav(end)/init_nav-1)*100) '%'])
title('净值')

熊市基本能保本,甚至有些收益。牛市收益不高。

这和经济周期有关。经济大环境不好,CPPI也许比较行销。

当然,在实际中,CPPI也不会像仿真的曲线这样这么神,还要考虑到更多的因素。

比如,rf是否可以达到这么多,流动性是否可以满足,资金量较小时是否能达到预期的目标仓位等。

另外,有人在算PV的时候,用的是 exp(-rt) 这种算法,即把时间连续化了……

然而目前我并不是很清楚为什么要这样做……

2017年8月13日23:43:05发现了一个错误。

检查强制平仓的动作,应该每天都进行。

但是,强制平仓的条件,应该不是risk资产<=0才平仓。

可以算一个target_risk_asset,如果target_risk_asset==0就平仓。

target_risk_asset = max(nav(t) - pv(t), 0)

第75行后面,应该加上 target_risk_asset = max(nav(t) - pv(t), 0)

然后如果target_risk_asset==0,就强平了。

数量金融学(5):CPPI策略相关推荐

  1. 数量金融学(6):TIPP策略

    TIPP策略(时间不变性投资组合保险策略,TimeInvariantPortfolioProtection,TIPP),当股价上升时,投资者大多关心当前资产价值的保障,希望能够保存住浮动的盈利,而非仅 ...

  2. 数量金融学(8):Markowitz均值-方差模型(2)

    之前写过一篇.那个时候不是很懂-- Review:数量金融学(3):Markowitz均值-方差模型 现在重新整理一下. 第一部分,生成各个资产组合的风险-收益特征. 先上效果图. 再上代码. # - ...

  3. 数量金融学(2):货币时间价值

    引言 资产估值与定价.投资组合管理.风险测量与管理构成了金融理论的三个主要部分. 货币时间价值 基本定义 一定金额的资金必须注明其发生时间,才能确切地表达其准确的价值. 货币时间价值.通俗地说,明天的 ...

  4. 数量金融学(3):Markowitz均值-方差模型

    上个世纪50年代(1952年),Markowitz发表一篇论文,标志着证券投资组合理论的正式诞生. 简单来说,Markowitz投资组合模型是根据每种证券的预期收益率.方差及证券之间的协方差矩阵,计算 ...

  5. 数量金融学(7):连续复利

    看了很多篇解释"连续复利"的文章,精选了一篇终于把我讲懂了的文章. 来自知乎. 有另一个概念叫 名义利率(nominal interest rate),此处的名义利率对应实际利率( ...

  6. 数量金融学(1):金融市场与金融产品

    本篇文章总结一些关于金融市场和金融产品的基本问题. 问题答案请自行探索. 金融市场框架 金融市场是什么? 金融市场的分类. 货币市场. 资本市场. 商品市场(单列出来). 金融机构有哪些? 存款性金融 ...

  7. 期指交易中CPPI和海龟交易法则的资金管理方法比较

    在投资活动中方法.资金管理和心态通常被认为是决定投资成功与否的主 要因素.大多数投资者往往对技术面或基本面有深入研究而在资金管理方面却 有所忽视."超短线之父"拉瑞•威廉姆斯曾 ...

  8. Cassandra使用的各种策略

    1. 背景介绍 Cassandra 使用分布式哈希表(DHT)来确定存储某一个数据对象的节点.在 DHT 里面,负责存储的节点以及数据对象都被分配一个 token.token 只能在一定的范围内取值, ...

  9. 策略模式原来这么简单!

    前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 无论是面试还是个人的提升,设计模式是必学的.今天来讲解策略模式~ ...

最新文章

  1. SQLSERVER系统数据库工作原理
  2. 关于CBitmap,LoadBitmap 的使用
  3. mysql创建非聚集索引_聚集索引和非聚集索引的区别
  4. Collections.toArray方法使用的坑
  5. 【转】Dynamics CRM 365零基础入门学习(四)Dynamics 使用profiler插件调试流程
  6. SpringBoot继承TkMapper通用Mapper
  7. pycharm关联python ide_Python+Selenium进阶版 (一)- Python IDE工具-PyCharm的安装和使用...
  8. 0523- 人员定位系统问题随手记
  9. Windows 7安全指南
  10. lodop 小票排版_Lodop打印小票
  11. Qt开源炫酷界面QCoolPage
  12. java 输入人名输出_Java 输入汉字姓名 输出 姓名拼音 首字母缩写组合
  13. 苹果绕过ID_三分钟教你绕过苹果ID锁,救你的板砖。-海绵宝宝的蟹黄堡
  14. R语言t检验中手动计算t值和p值
  15. 计算机二级考试python考试大纲
  16. STM32 CUBEIDE MacOS首次使用笔记
  17. linux下.exe文件的安装与使用
  18. 用canvas画七彩虹伞
  19. 布朗大学计算机专业怎么样,布朗大学计算机工程研究生怎么样?好不好
  20. HTML5权威指南观后笔记

热门文章

  1. mysql 1813_ERROR 1813 (HY000) at line 404: Tablespace for table '`xxx`.`xxxxx`' exists.
  2. 如何快速体验腾迅信鸽推送
  3. AI 入行那些事儿(8)人工智能 vs 人类智能
  4. AI测温人脸门禁防疫布控解决方案:为构建城市防疫战线提供有力支持 | 百万人学AI评选
  5. 7-54 福到了 (15 分)
  6. 漫画 | 有人向我反馈了一个bug…
  7. vs2010 玩转金山界面库 (2) 应用基础
  8. 关于一个block中BN-ReLU-Conv的顺序问题
  9. 解决Win7添加网络打印机报错0x000003e3
  10. ubuntu18远程桌面