# Replicate a Portfolio with Given Payoff

Looking for a convincing general strategy [not trial and error] to solve these kind of questions:

Any help will be super helpful!

Thanks a bunch!

Replicate a portfolio on an underlying asset $S$ with payoff at time $T$ equal to:

\begin{align} V(T) & = 2S(T) + 30 & & \text{if } 0 \leq S(T) < 10 \\[6pt] V(T) & = -3S(T) + 80 & & \text{if } 10 \leq S(T) < 30 \\[6pt] V(T) &= S(T) − 40 & & \text{if } 30 \leq S(T) \end{align}

Consider the case where we are interested in decomposing a continuous and piece-wise linear European payoff function $V \left( S_T \right)$ over $n$ intervals with $n + 1$ node points $S_i$ for $i = 0, 1, \ldots, n$. Without loss of generality, we assume that $S_0 = 0$ and write $V_i$ as short-hand for $V \left( S_i \right)$. We assume that the slope of the payoff function for $S > S_n$ is $x_{n + 1}$.

Take the following steps in order to replicate this payoff:

1. Buy zero-coupon bonds with a notional value of $V_0$.
2. For each $i \in 1, \ldots n$, buy $x_i = \left( V_i - V_{i - 1} \right) / \left( S_i - S_{i - 1} \right)$ European call options with a strike of $S_{i - 1}$ and sell the same amount withe a strike of $S_i$.
3. Buy $x_{n + 1}$ European call options with a strike of $S_n$.

All contracts mature at time $T$.

Applying this to your example, we have $n = 2$ and obtain the following portfolio:

1. Buy zero-coupon bonds with a notional value of 30 USD.
2. Buy 2 call options with a strike of 0 USD and sell 2 call options with a strike of 10 USD.
3. Sell 3 call options with a strike of 10 USD and buy 3 call options with a strike of 30 USD.
4. Buy one call option with a strike of 30 USD.

Our net positions are thus:

1. Long a zero-coupon bond with with a notional value of 30 USD.
2. Long 2 zero-strike call options.
3. Short 5 call options with a strike of 10 USD.
4. Long 4 call options with a strike of 30 USD.

Note that this decomposition is not unique as you can always apply put/call parity to any of the positions.

• Thanks so much for your prompt and very helpful response. could you kindly advise on some good literature /websites to read up more on this please. Commented Dec 18, 2017 at 21:33
• Also one last additional bit is could you please suggest how to handle the -40 in last interval. The payoff with the portfolio we derived with your strategy above appears to be 30 + 2 * max(S(T) - 0, 0) - 5 * max(S(T) - 10, 0) + 4 * max(S(T) - 30, 0) which for S(T) = 40 generates 40 bucks Commented Dec 18, 2017 at 22:04
• I think you have a mistake in your calculations. For $S(T) = 40$, the terms evaluate to $30 + 80 - 150 + 40 = 0$ as desired. You won't find much literature on this particular question. At best I could recommend some introductory book on options like e.g. Hull's "Options, Futures and Other Derivatives". The key idea is to match the slope of the payoff function over each interval starting from zero as the natural lower bound for the stock price. Commented Dec 18, 2017 at 23:25
• @LocalVolatility is it possible to have different replications for the same payoff? (i.e. one or multiple different strategies than the one you mentionned but with the same result) Commented Sep 23, 2020 at 14:04
• Not if you restrict yourself to using only cash and call options. Commented Sep 23, 2020 at 15:45

I provide a general algorithm and an implementation in R to solve those kinds of problems in general: Financial Engineering: Static Replication of any Payoff Function.

payoff <- data.frame(pi = c(0, 10, 30, 40, Inf), f_pi = c(30, 50, -10, 0, Inf))
payoff
##    pi f_pi
## 1   0   30
## 2  10   50
## 3  30  -10
## 4  40    0
## 5 Inf  Inf

plot_payoff(payoff)


replicate_payoff(payoff)
##   zerobonds nominal   calls call_strike     puts put_strike
## 1         1      30  2 -5 4     0 10 30
## 2         1      50    -3 4       10 30       -2         10
## 3        -1      10       1          30     3 -5      30 10
## 4                         1          40  -1 4 -5   40 30 10


The first solution is the same as the one given by @LocalVolatility.

There is a paper from Gary Kennedy precisely about this question:A Reduction Algorithm for a Class of Payoff Formulae (2010)