Delta and Gamma Hedging with Discrete Option Positions
Summary
The document examines a proposed volatility spread trade using four calls: a long and short position in same-month options with different implied volatilities, plus longer-term calls intended to offset the trade’s Delta and Gamma. Solving the two hedge equations produces fractional contract quantities. Rounding or scaling those quantities to whole contracts leaves residual Greeks, illustrating the gap between a continuous mathematical hedge and one that can be traded in discrete contract sizes.
The response argues that a vertical spread is not, by itself, a neutral hedge and points toward combining options with shares or constructing a multi-leg position such as an iron condor. These are broad practical suggestions rather than a worked hedge or a treatment of integer optimization. The example uses a small set of quoted Greeks and does not account for changing Greeks, transaction costs, liquidity, volatility-surface risk, or other real-world exposures, so its proposed structures do not establish that risk is eliminated.
Key ideas
- A continuous solution to Delta and Gamma equations can require fractional option contracts.
- Rounding a theoretical hedge to whole contracts leaves residual exposure.
- A vertical spread can retain directional risk even when it targets an implied-volatility difference.
- Share and multi-leg option positions are alternative components for managing option risk.
- The example does not address changing Greeks or execution costs.
Tags
Full text
# Can vertical spread arbitrage completely hedge Delta and Gamma risks?
# Can vertical spread arbitrage completely hedge Delta and Gamma risks?
| Code | IV | Delta | Gamma |
| 10007869.SH | 0.2123 | 0.7196 | 1.8332 |
| 10008162.SH | 0.4088 | 0.0694 | 0.3779 |
| 10007959.SH | 0.2285 | 0.5264 | 1.469 |
| 10008166.SH | 0.3506 | 0.1107 | 0.4547 |
10008162 and 10007869 are call options for the same month. I believe the implied volatility (IV) of 10008162 is relatively overestimated. Therefore, I plan to go long on 10007869 and short on 10008162 to profit from the IV spread.However, this options portfolio still carries Delta and Gamma risks. Therefore, I intend to hedge these risks by selling a set of long-term call options, aiming to keep the overall portfolio neutral to changes in the underlying asset's price.Of course, the implied volatility spread for this set of long-term call options should not be significant; otherwise, it would reduce the profitability of the implied volatility arbitrage between 10008162 and 10007869. Therefore, I have chosen 10007959 and 10008166.
In summary, the portfolio should go long on 10007869, short on 10008162, short on 10007959, and long on 10008166.This problem can be transformed into solving an underdetermined system of equations, where the solution should satisfy the following conditions: $ x_1 > 0 , x_2 < 0, x_3 < 0 ,x_4 > 0 $.
| 10007869 | 10008162 | 10007959 | 10008166 | position | | Value 5 |
| 0.7196 | 0.0694 | 0.5264 | 0.1107 | x1 | | 0 |
| | | | | | = | |
| 1.8332 | 0.3779 | 1.469 | 0.4547 | x2 | | 0 |
| | | | | x3 | | |
| | | | | x4 | | |
By calculating in MATLAB, I found such a set of solutions. However, I realized that, while this solution theoretically achieves a hedge, it cannot actually implement a true hedge in practice.
x1=0.64612808745736
x2=-0.843803690035364
x3=-1.15935991479437
x4=1.84185423217607
| 10007869 | 10008162 | 10007959 | 10008166 | position | | Value 5 |
| 0.7196 | 0.0694 | 0.5264 | 0.1107 | 0.64612808745736 | | -0.000000000000003441691 |
| | | | | | = | |
| 1.8332 | 0.3779 | 1.469 | 0.4547 | -0.84380369003536 | | -0.0000000000000023314680 |
| | | | | -1.15935991479437 | | |
| | | | | 1.84185423217607 | | |
Here’s the issue: the minimum unit for buying and selling options is 1, so you can't buy 0.64612808745736 of an option. It has to be an integer, not a decimal.You might want to say, "I just need to move the decimal point to the right." For example, change the position to 6 -8 -11 18 But the contract size for one unit of options is 10000.The resulting Delta and Gamma of this portfolio are -354 and 16.000000000029.Therefore, the constraint conditions for the solution of the equation should be modified to:x1 is a positive integer, x2 is a negative integer, and both x3 and x4 are integers
From an optimization perspective, the following issues should be considered first:Is there a "definitive" conclusion regarding the existence of such a solution? For instance, can it be proven that such a solution definitely exists or definitely does not exist?
If it can be proven that no solution exists, could the method for finding an approximate solution for the underdetermined system of equations be explained geometrically? (For example, the approximate solution for an overdetermined system of equations is actually the projection of the vector on the right-hand side onto the column space of the equations!)
I’m not very familiar with the geometric principles behind approximate solutions for underdetermined systems of equations. Therefore, I also find it difficult to understand the underlying principle of the following code in MATLAB that finds approximate solutions. I’m not sure how to modify this code to obtain a solution that meets the requirements Bolded text. I asked GPT for modifications, but the resulting solutions either meet the Bolded text requirements but produce a zero vector with poor precision when right-multiplies the matrix, or they produce a zero vector with high precision but with solutions that are not all integers
```
%The following code can only achieve x_1 > 0, x_2 < 0, x_3 < 0, x_4 > 0 .
C = [0.7196, 0.0694, 0.5264, 0.1107;
1.8332, 0.3779, 1.4690, 0.4547];
d = [0; 0];
% Equality constraints
Aeq = [];
beq = [];
% Inequality constraints, requiring the first variable to be greater than zero, the second variable to be less than zero, the third variable to be less than zero, and the fourth variable to be greater than zero.
A = [-1 0 0 0; % x1 > 0 -> -x1 < 0
0 1 0 0; % x2 < 0 -> x2 < 0
0 0 1 0; % x3 < 0 -> x3 < 0
0 0 0 -1]; % x4 > 0 -> -x4 < 0
b = [0; 0; 0; 0];
% Optimization options
options = optimoptions('lsqlin', 'MaxIterations', 1000, 'OptimalityTolerance', 1e-10, 'StepTolerance', 1e-10);
% Call the `lsqlin` function.
n = lsqlin(C, d, A, b, Aeq, beq, [], [], [], options);
```
Maybe I shouldn't think about this problem purely from a mathematical perspective? If there are some experiences or techniques in actual trading that can effectively address the issue of hedging precision, I would appreciate it if you could elaborate on such experiences or techniques in your answer.
## Answer by Con Fluentsy (score 1)
https://quant.stackexchange.com/a/81002
Hedges are not done on vertical option trades, hedges are done with share option mixes such as delta = .5 buy 50 shares sell one call option at .5 deltas, this is the simplest possible hedge. Or a boxed hedge buy 50 shares, sell one call, and buy a put. There is many combinations, but vertical trades you are taking a directional position. You can buy a Iron condor this is the closest to a vertical hedge where you sell a short put, buy a lower put, sell a call , and buy a higher call,try and match deltas relatively closely, there is years in methodology and technique to trading these simple hedges alone, what you are doing is pie in the sky stuff from too much time in theory books or chat sites.For learning about real option trading start with the many interviews and lectures by Euan Sinclair on youtube and go back through the teaching video library on the tastytrade website. You are over complicating something which is very difficult to start with. For the actual mathematics, check out Introduction to Quantitative finance by Willmot, and Sheldon Natenberg Option Volatility and Pricing, and for real trading of options explained simply,Al Sherbins How to Price and trade options.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.