View
220
Download
2
Category
Tags:
Preview:
Citation preview
CPPI
Dr. Jörg KienitzTreasury OTC Derivatives – Head of Quantitative Analysis
March 2007
Seite 2
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – The Basics
CPPI is the abbrevation for Constant Proportion Portfolio Insurance
The CPPI mechanism is a rules-based trading strategy. It seeks to maximise returns by way of leveraged exposure to a (portfolio) of risky asset(s) and providing a principal protection.
This takes place in certain risk thresholds. The risks are known as gap risk.
The are many modifications of the basic CPPI rules around.
Seite 3
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – Vocabulary
Bond Floor
The value of a Zerobond with the same time to maturity as the CPPI strategy. Could also be a coupon bearing bond.
Cushion
The cushion is the difference of the Bond Floor and the current value of the CPPI insured portfolio
Leverage Factor (Multiplier)
The LF is the factor multiplied with the cushion to give the possible amount to be invested in the risky assets. It represents the overnight risk inherent in the risky assets.
Protection Level
This is the amount of principal which should be protected. In classical CPPI the PL = 100%
Seite 4
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – Vocabulary
Maximum ExposureThe ME of the CPPI is the maximum level to which the capital is invested into the risky assets
Minimum ExposureThe ME of the CPPI is the minimum level to which the capital is invested into the risky asset. For classical CPPI the ME = 0.
Lock InThe Lock-In mechanism allows to lock in an upside already achieved during the lifetime of the CPPI
Deleverage
Deleverage is the event occuring if Cushion = 0. Then the portfolio is only worth the BF
Seite 5
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – CPPI Mechanics
Principal Protection Reserve
Cushion
Seite 6
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – CPPI Full Deleverage
Time of Deleverage
Seite 7
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – Risky Assets
Lock In Event
Seite 8
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – With Coupons
To achieve periodic payments the basic CPPI strategy could be modified to pay (half-) yearly coupons linked to LIBOR, e.g. LIBOR + 50 bp
Increases the risk of deleveraging, since one takes money out which decreases the cushion periodically!
The coupon is not guaranteed, e.g. would only be paid if the strategy would not deleverage.
A new risk arises, namely coupon shortfall
In our CPPI setting we examine Deleverage Probability, Coupon Shortfall Probability and Return
Seite 9
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – Risky Assets
The CPPI technique has been successfully applied to numerous asset classes.
• Credit
• Equity
• Funds
• Fixed Income
The observed distributions for each asset class can be considerably different, as for example
Seite 10
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – Baskets of Risky Assets
For real applications we consider a basket of risky assets, e.g. funds.
This allows to use correlation effects to increase the overall return and to reduce deleverage as well as coupon shorfall probability.
Seite 11
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – Our Approach
To Do
• Determine the universe of risky assets (mainly qualitative)
• Analysis of the universe using methods from time series analysis (mean, volatility, skew, kurtosis, correlation, etc.)
• Asset Allocation Approach to determine the efficient frontier
• Simulate the CPPI Mechanism for „optimal“ portfolios
The Simplest Setting
• Assume a Gaussian world and determine the mean vector and the covariance matrix
• Compute the Markowitz efficient frontier
• Run a one-factor simulation along the efficient frontier using
Mean basket = sum basket const
Variance basket = sum cov(basket const, basket const)
Seite 12
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – The Process
Simulate Stochastic Process (FX, Rate, Fund)
Compute Market Effects
Compute CPPI
Summarise Distribution
Deleverage Probability
Coupon ShortFall Probability
Output Statistics
CPPI „optimal“ portfolio
Time Series Returns
-0,0600
-0,0400
-0,0200
0,0000
0,0200
0,0400
0,0600
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35
Time
Ret
urn
Asset 1 Asset 2 Asset 3 Asset 4 Asset 5
Seite 13
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
CPPI – An Extended Approach
Extend the Models to cover a bright range of asset classes
Since there are many asset classes involved the Gaussian hypothesis is too restrictive
-> Use complex processes (e.g. NIG (Normal Inverse Gaussian) or VG ( Variance Gamma))
Compute the efficient frontier
-> Optimization is complex
Therefore
• We need a method to compute relevant figures from time series data
• We need a method to compute the efficient frontier
• We need a method to simulate fairly complex multidimensional processes
For creating optimization data
For simulating the CPPI strategy
Seite 14
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Tools
• Time Series Analysis
• Methods to determine figures from given historic data
• Optimization
• What is the best suited characterisation of risk?
• Simulation
• Flexible, robust Monte Carlo Engine
Seite 15
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Time Series Analysis
To use more complex stochastic processes we must be able to extract the relevant data to determine the processes parameters out of data.
For Geometric Brownian motion this can be done by computing the mean and the covariance structure using either time series data (for example if no quoted option data is available) or quoted prices (if available).
Therefore, we have to investigate for methods to compute the necessary parameters. Our findings suggest that it is possible for classes of Lévy processes such as variance gamma or normal inverse gaussian.
Use [P 04] as starting point
Seite 16
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Time Series Analysis
ANWWX
We consider the class of generalized hyperbolic distributions, i.e. processes which can be written as
With N a standard multivariate normal, W is a positive random variable independent of N and A is a dxk matrix. and are vectors.
In fact one could show
Both models allow the derivation of parameters out of time series data as well as quoted option prices.
WWNWX ,~|
Seite 17
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation
Once having the necessary data at hand we need to model the evolution of paths in the considered models. To this end we1 have developed a bunch of loosely coupled classes for simluation purposes:
• Random Number Generator
• Distributions
• Finite Difference Schemes for SDE Discretization
• PayOffs (The CPPI can be modelled as a path-dependent PayOff
• Risk Figures
• Regression
• …
1 joined work with Daniel Duffy from Datasim
Seite 18
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Big Picture
MC DirectorMC Output
MC Path Generator(Mediator)
MC Random(Template)
MC Option
MC PayOff(Factory)
FDM(Visitor)
MC Stats
SDE
MC Mesher
Seite 19
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Path Generation
MC Path Generator(Mediator)
FDM(Visitor)
SDE
MC Mesher
L/L
Numerical Scheme
Euler
…
Predictor Corrector
Milstein
Exact
Equidistant
Dates specific
…
L/NL NL/L
…
M1
…
M1
…
M1
…
M1
NL/NL
Seite 20
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Random Numbers
MC Random(Template)
Distribution
Random Generator
Normal Poisson Multi Normal …
Ran3
Mersenne Twister
Sobol
…
Seite 21
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation - PayOffs
MC Option
MC PayOff(Factory)
One AssetNon Path Dependent
Multi AssetPath Dependent
Multi AssetNon Path Dependent
One AssetPath Dependent
Call Barrier Spread Altiplano
AsianLookback Spread
Lookback
……
Quanto
BasketCPPI
……
Seite 22
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Design Patterns
We want to achieve efficiency, performance, accuracy, maintainability and interoperability.
Therefore we use C++ and several design patterns among them are:2
• Factory
Define an interface for creating an object, but let derived classes decide which class to instantiate.
The pattern is may better known as virtual construction because it allows to eliminate the need to bind specific classes into the code
• Property Pattern
Creating C++ classes means also to declare data and member functions that operate on data which in general is private. This implies that set/get functionality must be implemented for each object and hard coded data remain a compile-time phenomenom.
Taking this into account we model such data as property sets or idioms which are template classes
with named member data. The member data can in general be heterogenous. This means for example double, vector, classes, etc. 2 For a description of many more design patterns see [D 04] and [D 05]. For the design patterns used for Monte Carlo see [DK 07]
Seite 23
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Example: PayOff Factory
The CPPI can be seen as strategy depending on the taken path of the underlying.
Therefore, we will model it as a (path dependent) PayOff.
We will describe our setting in which the CPPI can be handled.
Seite 24
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Example: PayOff The Base Class
template<class D, class T> class PayOff
{
//Base class from which all payoff classes inherit
//Any instance has to define operator(), clone and the destructor
public:
PayOff(){}; // Constructor
virtual double operator()(D Discount, T Spot) const=0; // Price operators given discounts and Spots
virtual PayOff<D, T>* clone() const=0; // clone
virtual ~PayOff(){} // Destructor
private:
};
Seite 25
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – PayOff Classes In Detail
class PayOffCPPI : public PayOff<double, std::vector<double> >{public:
PayOffCPPI();PayOffCPPI(const SimplePropertySet<string, double>& pset);
virtual double operator()(double Discount, std::vector<double> Spot) const;virtual double PayOff_Value(double Discount, std::vector<double> Spot) const;
virtual PayOff<double, std::vector<double> >* clone() const;
virtual ~PayOffCPPI(){}
SimplePropertySet<string, double> PayOffCPPI_Properties;
private:};
All CPPI parameters are stored as properties gathered into PayOffCPPI_Properties set
Construction with given Property Set
CPPI for one asset; For multiple assets just use your favourite matrix class!
For one realized path the value from CPPI strategy is computed
Seite 26
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Example: The Factory Class
template<class D, class T> class PayOffFactory
{
public:
typedef PayOff<D, T>* (*CreatePayOffFunction)(SimplePropertySet<string,double>);
static PayOffFactory<D, T>& Instance();
void RegisterPayOff(std::string, CreatePayOffFunction);
PayOff<D, T>* CreatePayOff(std::string PayOffId, SimplePropertySet<string, double> pset);
~PayOffFactory(){};
private:
std::map<std::string, CreatePayOffFunction> TheCreatorFunctions;
PayOffFactory(){}
PayOffFactory(const PayOffFactory<D, T>&){}
PayOffFactory& operator=(const PayOffFactory<D, T>&){ return *this;}
};
Used to represent spot value(s)
Used to represent discount factors
At runtime make the payoff known
Seite 27
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Example: Implementation of the Factory
template<class D, class T>PayOff<D, T>* PayOffFactory<D, T>::CreatePayOff(string PayOffId, SimplePropertySet<string, double> pset){ map<string, CreatePayOffFunction>::const_iterator i = TheCreatorFunctions.find(PayOffId);
if (i == TheCreatorFunctions.end()) {
std::cout << PayOffId << " is an unknown payoff" << std::endl;return NULL;
}
return (i->second)(pset);}
template<class D, class T>PayOffFactory<D, T>& PayOffFactory<D, T>::Instance(){ static PayOffFactory<D, T> theFactory; return theFactory;}
Seite 28
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Example: PayOff Construction using Factory
class PayOffConstructor{public:
PayOffConstructor(std::string);static PayOff<D, T>* Create(SimplePropertySet<string, double>);
};
template <class D, class T, class P>PayOffConstructor<D,T,P>::PayOffConstructor(std::string id){
PayOffFactory<D, T>& thePayOffFactory = PayOffFactory<D, T>::Instance();thePayOffFactory.RegisterPayOff(id,PayOffConstructor<D,T,P>::Create);
}
template <class D, class T, class P>PayOff<D, T>* PayOffConstructor<D, T, P>::Create(SimplePropertySet<string, double> pset){
return new P(pset);}
Seite 29
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – Defining Property Sets
//Define a Simple Property SetSimplePropertySet<string, double> CPPI_Set;
//Define Properties to be collected into CPPI_SetProperty<string, double> Prop_CouponSpread;Property<string, double> Prop_InvestmentLevel;Property<string, double> Prop_Multiplier;
//Initalisation of PropertiesProp_CouponSpread = Property<string, double> („CouponSpread", 0.0085);Prop_Barrier = Property<string, double> („InvestmentLevel", 1);Prop_Barrier = Property<string, double> („Multiplier", 10);
//Adding properties to the setCPPI_Set(Prop_CouponSpread);CPPI_Set(Prop_InvestmentLevel);CPPI_Set(Prop_Multiplier);
Heterogenous properties are possible such as vectors, matrices, etc.
see [D 06] for details
Seite 30
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Monte Carlo Implementation – How to use Property Sets in Coding
//Using the Properties for coding the CPPI strategy
double CouponSpread = PayOffCPPI_Properties.value(„Coupon Spread“);
double MaximumExposure = PayOffCPPI_Properties.value(„MaxExposure“);
Therefore, coding the payoff uses essentially the names of the properties which can be used to model any derivative using payoff description languages and therefore extends the flexibility.
The usage of properties allows flexibility as we see it is easy to model any payoff (time dependent, multi factor, etc.). All that is needed can be put into the Property Set. E.g. if we want to have a barrier option not with one but two barriers simply extend the Property Set.
Seite 31
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Beyond the Basics
Let us come back to the initial problem of creating a „CPPI optimal“ basket
We are now able to use advanced models for simulation. But the optimization step is still missing.
To this end we have to investigate for a method replacing the Markowitz model in the Gaussian setting. The optimal approach would be a distribution free ansatz using time series or simulated time series data directly.
-> Enables us to use short time series
To this end we use CVAR (Expected Shortfall, … ) as a coherent risk measure. The efficient frontier can then be computed by minimizing:
This approach allows for using complicated dynamics, e.g. NIG, VG, Stochastic Vol, Stochastic Vol with jumps for CPPI purposes. See [RU 99] for details.
0;1
)1(
1
1
1;
i
N
ii
N
ii
Tx
xx
yxN
Min Quantile
yield
Seite 32
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Input to Optimization
6 Asset Time Series with 5000 computed returns
Constraints, such that each weight should not exceed 30% and each weight is positive
Constraint, such that the sum of all weights is 1 and weight2 + weight3 < 50%
Views can be added, such as the portfolio managers sees lower / higher returns for the period to be considered
For real applications we use a universe of up to 30 assets!
Asset Returns 100 for each
-0,20
-0,10
0,00
0,10
0,20
0,30
0,40
0,50
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
Szenario
Ret
urn
Seite 33
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Output of Optimization
0,3%
0,8%
1,3%
1,8%
2,3%
2,8%
3,3%
3,8%
4,3%
0,0% 1,0% 2,0% 3,0% 4,0% 5,0%
5 % VaR and CVaR
Exp
ecte
d R
eturn
Seite 34
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Output of Optimization
Portfolio Weights
0,000%
5,000%
10,000%
15,000%
20,000%
25,000%
30,000%
35,000%0
,27
8%
0,4
95
%
0,7
12
%
0,9
29
%
1,1
46
%
1,3
63
%
1,5
80
%
1,7
97
%
2,0
14
%
2,2
31
%
2,4
48
%
2,6
65
%
2,8
82
%
3,0
99
%
3,3
16
%
3,5
33
%
3,7
50
%
Return
We
igh
t %
Asset 1 Asset 2 Asset 3 Asset 4 Asset 5 Asset 6
Seite 35
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Output of Monte Carlo Simulation
0,0
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
Fund Basket Bond Floor Cushion Fund Basket CPPI Allocation
Seite 36
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Output of Monte Carlo Simulation
0%
1%
2%
3%
4%
5%
6%
7%
8%
9%
2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13%
IRR CPPI SSD IRR Fund
Coupon Default Probability
0,00% 2,00% 4,00% 6,00% 8,00% 10,00%
1
3
5
7
9
J ahr
Coupon Default
Seite 37
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Literature
[D 04] Duffy, D., „Financial Instrument Pricing Using C++“, Wiley 2004
[D 06] Duffy, D., „Introduction to C++ for Financial Engineers“, Wiley 2006
[DK 06] Duffy, D., Kienitz, J., Monte Carlo Methods in Finance Generic and Efficient MC Solver in C++, Wilmott November 2005
[DK 07] Duffy, D., Kienitz, J., Software Frameworks in Quantitative Finance, Part I
[DK 07] Duffy, D., Kienitz, J., „Monte Carlo Methods in C++“, Wiley forthcoming
[K 07] Kienitz, J., Stochastic Processes in Finance Part I, forthcoming[LS 05] Luciano, E., Schoutens, W., Multivariate Variance Gamma Modelling with Applications in Equity and Credit Risk Derivatives Pricing, ULM, Financial Modelling Workshop, September 2005[P 04] Protassov, R. „EM-based maximum likelihood parameter estimation for multivariate generalized hyperbolic distributions with fixed . Statistics and Computing. Vol 14, issue 1.[RU 99] Rockafellar, T., Urysaev, S., „Optimization of Conditional Value at Risk“, Research report 99-4, Center for Applied Optimization, University of Florida.
Seite 38
Präsentationstitel
Mathfinance Workshop March 2007Verfasser: Dr. Jörg Kienitz, Treasury OTC Derivate
March 2007Fassung: 1.0
Disclaimer
The usual disclaimers apply. The views expressed in this presentation are solely that of the author and do not of Deutsche Postbank AG.
The author is responsible for any inaccuracies, omissions or errors.
Recommended