Quant Memo
Advanced

Dynamic Replication And Self-Financing Portfolios

An option's bent payoff can be manufactured out of shares and cash, provided you keep adjusting the mix as the price moves and never add or remove money along the way. The cost of setting that machine running on day one is the option's fair price.

Prerequisites: Options: Calls and Puts, Binomial Option Pricing

Here is the puzzle that makes options hard. A share has a straight-line payoff: up a dollar, you make a dollar. An option's payoff is bent, flat on one side of the strike and sloped on the other. You cannot build a bend out of straight lines, so how can a portfolio of shares and cash ever be worth the same as an option? And yet an entire industry prices options exactly by claiming it can.

Driving alongside the train

Imagine you promise a friend that whatever a particular train fare turns out to be, you will pay it. You have no ticket. Instead you drive alongside the track, matching the train's speed continuously. When it accelerates, you accelerate; when it slows, you slow. Arrive together and you have delivered the same journey without ever owning a seat.

Two conditions make the trick honest. You must adjust continuously, because matching the train's speed once at the station and then holding it fixed leaves you miles away by the end. And you must run the whole trip on the fuel you bought at the start: no stopping to top up from your wallet, no siphoning fuel out to spend elsewhere. If both hold, the cost of that first tank is a fair price for the journey.

Options are the same. Adjusting continuously is dynamic replication. Never adding or removing money mid-trip is the self-financing condition. And the price of the first tank is the option premium.

Writing it down

At each moment tt you hold Δt\Delta_t shares, each worth StS_t, plus BtB_t dollars sitting in the bank earning the risk-free rate rr. The portfolio is worth

Πt  =  ΔtSt+Bt.\Pi_t \;=\; \Delta_t\, S_t + B_t .

In plain English: your wealth is shares times share price, plus cash. Here Πt\Pi_t is the portfolio value, Δt\Delta_t the share count you have chosen to hold at that instant, and BtB_t the bank balance, which is usually negative because you borrow to buy the shares.

Now the condition that does the real work:

dΠt  =  ΔtdSt  +  rBtdt.d\Pi_t \;=\; \Delta_t\, dS_t \;+\; r B_t\, dt .

In plain English: over a tiny slice of time the portfolio changes for exactly two reasons, the shares you already held moved in price, and the cash you already held earned interest. Nothing else. There is no term for money you injected, because you inject none.

The discrete version is the one you can actually check by hand. At any moment you rebalance from an old share count to a new one, the portfolio value must not jump:

ΔnewSt+Bnew  =  ΔoldSt+Bold.\Delta_{\text{new}} S_t + B_{\text{new}} \;=\; \Delta_{\text{old}} S_t + B_{\text{old}} .

In plain English: every share you buy is paid for by borrowing exactly its price, and every share you sell puts exactly its price back into the bank. The trade shuffles the mix; it never changes the total.

Finally, replication: if a self-financing portfolio ends at expiry holding the option's payoff in every single state of the world, then its starting value Π0\Pi_0 must be the option's price. Anything else is an arbitrage, because you could sell the dearer one, buy the cheaper one, and let the machine run.

Self-financing does not mean free. There is a real cost on day one, Π0\Pi_0, and that cost is the option premium. What it means is that after day one, no further money crosses the boundary of the portfolio.

Worked example 1: two steps, every number checked

A stock at $100 moves up by a factor of 1.2 or down by 0.9 each period, for two periods. Rates are zero, so cash just sits there. Price a call struck at $105.

The stock can be 144, 108 or 81 at the end, so the call pays 39, 3 and 0. Work backwards. At each node the share count is the change in option value divided by the change in stock price, and the cash is whatever makes the total come out right.

100 V 5.67 0.467 sh cash -41 120 V 15.00 1.000 sh cash -105 90 V 1.00 0.111 sh cash -9 144 pays 39 108 pays 3 81 pays 0
Every node carries a full instruction: hold this many shares, owe this much cash. Follow the instructions and you arrive holding exactly the payoff, whichever branch the world takes.

The upper node (stock $120). Share count =(393)/(144108)=36/36=1.000= (39 - 3)/(144 - 108) = 36/36 = 1.000. The option is worth 13(39)+23(3)=15.00\tfrac13(39) + \tfrac23(3) = 15.00, so cash =151.000(120)=105= 15 - 1.000(120) = -105. Check both branches: at 144, 1.000(144)105=391.000(144) - 105 = 39; at 108, 1.000(108)105=31.000(108) - 105 = 3. Both exact.

The lower node (stock $90). Share count =(30)/(10881)=3/27=0.111= (3 - 0)/(108 - 81) = 3/27 = 0.111. Value =13(3)=1.00= \tfrac13(3) = 1.00, cash =10.111(90)=9= 1 - 0.111(90) = -9. Check: at 108, 0.111(108)9=30.111(108) - 9 = 3; at 81, 0.111(81)9=00.111(81) - 9 = 0. Exact again.

Day one (stock $100). Share count =(151)/(12090)=14/30=0.467= (15 - 1)/(120 - 90) = 14/30 = 0.467. Value =13(15)+23(1)=5.67= \tfrac13(15) + \tfrac23(1) = 5.67, cash =5.670.467(100)=41= 5.67 - 0.467(100) = -41. So the call is worth $5.67, and you set the machine running by buying 0.467 shares with $41 of borrowed money and $5.67 of your own.

Now the self-financing check, which is the point of the whole exercise. Suppose the stock rises to $120. You arrive holding 0.467 shares worth $56.00, owing $41, so your portfolio is worth $15.00, exactly the option's value there. The node tells you to hold 1.000 shares, so you buy 0.533 more at $120, costing $64.00, funded by borrowing: your debt goes from $41 to $105, precisely the number the node demanded. Not a cent came in or out of your pocket.

The down branch works the same way. You arrive with 0.467 shares worth $42.00 against $41 of debt, a portfolio worth $1.00, matching the node. You sell 0.356 shares for $32.00 and your debt falls from $41 to $9. Again, no external cash.

Worked example 2: what happens if you refuse to adjust

Same tree, but you set up on day one with 0.467 shares and $41 of debt and then go on holiday. No rebalancing. Here is where you land.

Final stockYour portfolioOption owesShortfall
$1440.467(144)41=26.200.467(144) - 41 = 26.2039−12.80
$1080.467(108)41=9.400.467(108) - 41 = 9.403+6.40
$810.467(81)41=3.200.467(81) - 41 = -3.200−3.20

The static position is wrong in every state, sometimes badly, and the errors do not average out into anything you can bank. This is why the word dynamic is load-bearing. A one-off hedge reproduces a straight line; only the rebalancing schedule bends it into the option's shape.

0.19 sh 0.45 sh 0.77 sh stock price
The share count you must hold is the slope of the option's value curve at today's price. Because the curve bends, the slope keeps changing, so the hedge keeps needing repair. That bending is gamma, and it is the entire reason replication has to be dynamic.

How much repair work is there?

Drag the sliders below. Each line is one possible future for the stock, and every wiggle is a rebalance you would have had to make. Turn volatility up and the paths thrash, meaning more trades and more repair. Turn the drift slider instead: the bundle tilts, but the amount of wiggling barely changes. That asymmetry is the whole reason an option's price depends on volatility and not on whether you think the stock is going up.

Path explorer
13545time →
end (bold path) 95.94spread of ends 67.256 independent paths, same settings

What this means in practice

This is not a thought experiment; it is the daily job of an options market maker. Sell a call, buy delta shares against it, and rebalance as the price moves. The profit and loss of that hedged book is not a bet on direction, it is the difference between the volatility you charged for in the premium and the volatility the stock actually delivered (Gamma Scalping).

Three things break the idealisation, and each is a line item on a real desk. Transaction costs mean rebalancing is not free, so the self-financing equation leaks a little every trade, which is why nobody hedges continuously. Discrete rebalancing leaves the residual error you saw in the second example, shrinking roughly with the square root of how often you trade. And gaps, prices that jump rather than glide, are the case where you cannot adjust at all, which is exactly where hedged option books lose serious money.

Two things get conflated here constantly. First, "self-financing" describes what happens after inception; it does not mean the strategy is costless, and the day-one outlay is the premium. Second, a static hedge is not a replication. Buying delta shares once and holding them matches the option's slope at that instant and nothing more, and as the table above shows, it misses in every direction. Replication is a schedule, not a position.

Key terms

  • Replicating portfolio — shares plus cash that reproduce a payoff in every state.
  • Self-financing — after inception, all rebalancing is funded internally.
  • Delta — the share count to hold, equal to the slope of the option value curve.
  • Dynamic hedge — a rule that updates delta as the underlying moves.
  • Hedging error — the shortfall left over when you rebalance at finite intervals.

Related concepts

Practice in interviews

Further reading

  • Black & Scholes (1973), The Pricing of Options and Corporate Liabilities
  • Shreve, Stochastic Calculus for Finance II (Ch. 4-5)
  • Joshi, The Concepts and Practice of Mathematical Finance (Ch. 3)
ShareTwitterLinkedIn