The Greeks and Option Risk Management › Option Portfolio Risk Reports

Michael BrenndoerferNovember 29, 20254 min read
Quantitative FinanceAll chapters
Part 5 of 15Stochastic Calculus and Pricing Theory
Chapter 31The Greeks and Option Risk Management › Option Portfolio Risk Reports
Reading section 12 of 14 · Option Portfolio Risk Reports · 4 minSection 12 of 14 · 4 min

Book contents

Section 12 of 14 · 4 min read

The Greeks and Option Risk Management › Option Portfolio Risk ReportsOne section · Sections in this chapter12 / 14 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

In practice, we work with entire portfolios of options rather than individual positions. A typical risk report aggregates Greeks across all positions. In the code below, we define a portfolio of mixed positions, calculate the Greeks for each, and sum them to determine the net portfolio exposure:

In[43]:
Code
# Sample portfolio of options on the same underlying
portfolio = [
    {"type": "call", "K": 95, "T": 0.25, "position": 50},  # Long 50 ITM calls
    {"type": "put", "K": 100, "T": 0.25, "position": -30},  # Short 30 ATM puts
    {"type": "call", "K": 105, "T": 0.5, "position": 100},  # Long 100 OTM calls
    {"type": "put", "K": 95, "T": 0.5, "position": 25},  # Long 25 OTM puts
]

S, r, sigma = 100, 0.05, 0.20

# Calculate portfolio Greeks
portfolio_greeks = {"Delta": 0, "Gamma": 0, "Theta": 0, "Vega": 0, "Rho": 0}
portfolio_details = []

for pos in portfolio:
    opt = BlackScholesGreeks(S, pos["K"], pos["T"], r, sigma, pos["type"])
    n = pos["position"]

    details = {
        "Description": f"{pos['type'].upper()} K={pos['K']} T={pos['T']}y",
        "Position": n,
        "Price": opt.price(),
        "Delta": n * opt.delta(),
        "Gamma": n * opt.gamma(),
        "Theta": n * opt.theta() / 365,
        "Vega": n * opt.vega() / 100,
    }
    portfolio_details.append(details)

    portfolio_greeks["Delta"] += details["Delta"]
    portfolio_greeks["Gamma"] += details["Gamma"]
    portfolio_greeks["Theta"] += details["Theta"]
    portfolio_greeks["Vega"] += details["Vega"]
Out[44]:
Console
Option Portfolio Risk Report
===========================================================================
Underlying: $100 | Vol: 20% | Rate: 5%
===========================================================================

Position                     Qty      Delta      Gamma      Theta       Vega
---------------------------------------------------------------------------
CALL K=95 T=0.25y             50      37.71     1.5744      -1.33       7.87
PUT K=100 T=0.25y            -30      12.92    -1.1786       0.46      -5.89
CALL K=105 T=0.5y            100      46.12     2.8076      -2.11      28.08
PUT K=95 T=0.5y               25      -6.77     0.5854      -0.22       5.85
---------------------------------------------------------------------------
PORTFOLIO TOTAL                       89.97     3.7888      -3.20      35.91

This type of report allows you to quickly understand your exposures and decide whether to hedge. The portfolio above is long delta, meaning it benefits from rising stock prices (gaining approximately the delta amount for a $1 increase. It is also long gamma and vega, meaning the position value increases with both large market moves and rising volatility. However, these benefits come at a cost: the negative theta indicates the portfolio loses value daily due to time decay.

Out[46]:
Visualization
Bar chart of delta contributions from four option positions, with a dashed line marking the positive portfolio total.
Portfolio delta contribution by position. The long call positions and short put position contribute positive delta, creating a net long directional exposure.
Out[47]:
Visualization
Bar chart of positive and negative gamma contributions from four option positions, with a dashed line marking the positive portfolio total.
Portfolio gamma contribution by position. Long options contribute positive gamma while short options contribute negative gamma. The net gamma determines the portfolio's curvature risk.
Out[48]:
Visualization
Bar chart of daily theta contributions from four option positions, with a dashed line marking the negative portfolio total.
Portfolio theta contribution by position. Long options incur negative theta (time decay cost), while short options earn positive theta. The net theta represents the daily carry cost of the portfolio.