Skip to content

dstadelman/Zakamouline-Optimal-Delta-Hedging

 
 

Repository files navigation

Zakamouline Optimal Delta Hedging

Implementation of Optimal Hedging of Options with Transaction Costs by Valeri. I. Zakamouline.

Requirements

My other repo containing a BSM model implementation.

References

Usage

  • Obtaining hedgeband values at current spot price.
'''@Init Call & Put
Spot = 100
Strike = 100
DTE = 60
RFR = 5%
Volatility = 30%'''
call = BsmOption(False, 'C', 100, 100, 60, 0.05, sigma=0.3)
put = BsmOption(False, 'P', 100, 100, 60, 0.05, sigma=0.3)

#Init short straddle position
short_straddle = OptionPosition([call, put])

#Get hedgebands at current spot price
'''Position = short_straddle
Proportional transaction cost lambda where (tc = lambda * num_shares * spot) = 2%
Risk aversion parameter (higher results in tighter bands) = 1'''
up_band, down_band = hedgebands(short_straddle, 0.02, 1)
  • Obtaining hedgebands for range of spot prices.
for i in range (0, 200)
    call = BsmOption(False, 'C', i, 100, 60, 0.05, sigma=0.3)
    put = BsmOption(False, 'P', i, 100, 60, 0.05, sigma=0.3)
    short_straddle = OptionPosition([call, put])
    up_band, down_band = hedgebands(short_straddle, 0.02, 1)

Interpretation

original upstream author's chart

"When our position's delta moves outside the band, we hedge to bring our delta back to the edge of the band." (Sinclair 99)

  • If position delta breaches a band, you buy the requisite number of shares to bring delta just inside closest band. This is referred to as hedging to the band.
    • Eg: In the figure above, if an overnight gap brought your position to Δ = -0.70, you would hedge to the nearest band (down band) at Δ = -0.55 by purchasing 15 shares.

Testing

"These were for the case of a one-year option with volatility of 0.3, transaction costs of 2 percent, zero interest and carry rates, and a risk aversion of one." (Sinclair 105)

The results from the library look pretty close to the diagrams in Sinclar's Volatility Trading. We do not know the spot price used in the calculation of the long and short calls, and this is used in the calculation of K.

Long Call

(Sinclair 106)

Short Call

(Sinclair 106)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%