Skip to main content

Delta Hedging

To show how Delta Hedging can be done with MesoSim, let’s consider a structure consisting of two legs (separate option contracts):

  • 1 Call Option:
    sold at around 160 DTE with the Strike closest to 10 delta. This leg will be referred to as short_call.
  • 1 Put Option:
    sold at the same expiration as the call with the Strike selected to bring the whole structure (Short Call and Short Put together) closest to 0 delta. Practically that delta will also be around 10, but we’ve chosen to do this calculation dynamically. This leg will be referred to as short_put.
    "Structure": {
"Name": "ShortStrangle",
"Expirations": [
{
"Name": "160dte",
"DTE": "160",
"Min": 140,
"Max": 190
}
],
"Legs": [
{
"Name": "short_call",
"Qty": "-1",
"ExpirationName": "160dte",
"StrikeSelector": {
"Min": 5,
"Max": 15,
"Delta": "10"
},
"OptionType": "Call"
},
{
"Name": "short_put",
"Qty": "-1",
"ExpirationName": "160dte",
"StrikeSelector": {
"Min": 5,
"Max": 15,
"Delta": "leg_short_call_delta * -1"
},
"OptionType": "Put"
}
]
}

The delta selector for the short_put leg uses the previously defined short_call leg’s delta.

The resulting structure’s overall delta will be around 0.

The above approach is easy to understand and works, but there is a better, more scalable way of doing it.

To illustrate, let’s consider a three-legged structure, a Broken Wing Butterfly:

"Legs": [
{
"Name": "upper_long",
"Qty": "1",
"ExpirationName": "160dte",
"StrikeSelector": {
"Delta": "40"
},
"OptionType": "Put"
},
{
"Name": "short",
"Qty": "-2",
"ExpirationName": "160dte",
"StrikeSelector": {
"Delta": "30"
},
"OptionType": "Put"
},
{
"Name": "lower_long",
"Qty": "1",
"ExpirationName": "160dte",
"StrikeSelector": {
"Delta": "pos_delta"
},
"OptionType": "Put"
}]

In the above example, the last leg’s (lower_long) delta is specified using a statement that is calculated based on the overall position delta so far.

At the time of the statement evaluation, two legs are already considered, and pos_delta represents their sum:

pos_delta = [ leg_upper_long_delta ] + [ leg_short_delta ]
= [1 x (-40)] + [-2 x (-30)]
= -40 + 60
= 20

If we take this delta value (which should be around: (2*30)-40=20) and choose the last (lower_long) leg using this delta value then we will end up at a delta neutral position at initiation:

Strategies Page