Event-Driven and Arbitrage Strategies › Portfolio Construction for Merger Arbitrage

Michael BrenndoerferJanuary 6, 20265 min read
Quantitative FinanceAll chapters
Part 11 of 15Quantitative Trading Strategies
Chapter 64Event-Driven and Arbitrage Strategies › Portfolio Construction for Merger Arbitrage
Reading section 3 of 11 · Portfolio Construction for Merger Arbitrage · 5 minSection 3 of 11 · 5 min

Book contents

Section 3 of 11 · 5 min read

Event-Driven and Arbitrage Strategies › Portfolio Construction for Merger ArbitrageOne section · Sections in this chapter3 / 11 ↓
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

Running a merger arbitrage portfolio requires balancing diversification against concentration. With typical spreads of 3-8% and deal durations of 2-6 months, you need multiple concurrent positions to generate meaningful returns. However, diversification is limited by deal availability and correlation during market stress.

Position Sizing

A common approach sizes positions based on the expected loss in a deal break scenario, ensuring no single deal failure catastrophically impacts the portfolio. This risk-based sizing recognizes that the primary threat to a merger arbitrage portfolio is not volatility in the traditional sense but rather the discrete event of deal failure:

In[13]:
Code
def size_merger_position(
    portfolio_value,
    max_loss_per_deal,
    deal_downside_pct,
    spread_pct,
    prob_estimate,
):
    """
    Size a merger arbitrage position based on maximum acceptable loss.

    Parameters:
    - portfolio_value: Total portfolio NAV
    - max_loss_per_deal: Maximum loss as fraction of portfolio (e.g., 0.02 = 2%)
    - deal_downside_pct: Expected loss if deal breaks
    - spread_pct: Upside if deal closes
    - prob_estimate: Our estimated probability of deal completion
    """
    # Maximum position size based on loss constraint
    max_position_from_risk = (portfolio_value * max_loss_per_deal) / abs(
        deal_downside_pct
    )

    # Kelly criterion optimal sizing (simplified)
    # f* = (p*b - q) / b where b = odds, p = win prob, q = loss prob
    b = abs(spread_pct / deal_downside_pct)  # win/loss ratio
    q = 1 - prob_estimate
    kelly_fraction = (prob_estimate * b - q) / b
    kelly_position = (
        portfolio_value * kelly_fraction if kelly_fraction > 0 else 0
    )

    # Use half-Kelly as more conservative approach
    half_kelly_position = kelly_position / 2

    # Take the smaller of risk-based and Kelly-based sizes
    position_size = min(max_position_from_risk, half_kelly_position)

    return {
        "max_from_risk_limit": max_position_from_risk,
        "kelly_optimal": kelly_position,
        "half_kelly": half_kelly_position,
        "recommended_size": max(0, position_size),
        "portfolio_weight": max(0, position_size) / portfolio_value,
        "portfolio_value": portfolio_value,
        "max_loss_per_deal": max_loss_per_deal,
    }


# Example: $10M portfolio, max 2% loss per deal
sizing = size_merger_position(
    portfolio_value=10_000_000,
    max_loss_per_deal=0.02,
    deal_downside_pct=-0.23,  # from earlier example
    spread_pct=0.058,
    prob_estimate=0.85,
)
Out[14]:
Console
Position Sizing Analysis
========================================
Portfolio Value: $10,000,000
Max Loss per Deal: 2%

Sizing Methods:
  Risk Limit Based: $869,565
  Full Kelly: $2,551,724
  Half Kelly: $1,275,862

Recommended Position: $869,565
Portfolio Weight: 8.7%

The position sizing logic recommends a conservative 2% allocation ($200,000). While the Kelly criterion suggests a much larger position due to the high theoretical edge, the risk constraint, which limits the maximum loss from any single deal break to 2% of the portfolio, serves as the binding constraint. This demonstrates how risk management overrides pure expected value maximization in event-driven investing.

Deal Correlation and Portfolio Risk

While individual deals appear uncorrelated under normal conditions, deal-break risk often clusters during market stress. A flight to quality or credit crunch can simultaneously threaten multiple deals through financing concerns, regulatory shifts, or general risk aversion. This correlation structure resembles credit portfolios, as we discussed in Part V's credit risk chapters. The mathematical framework for understanding this correlation draws on the same factor model approach used to analyze correlated defaults in loan portfolios.

In[15]:
Code
from scipy.stats import norm


def portfolio_deal_risk(n_deals, individual_break_prob, correlation):
    """
    Estimate portfolio risk accounting for deal break correlation.

    Uses a Gaussian copula framework similar to credit portfolio models.
    """
    # Probability at least one deal breaks (assuming independence)
    prob_at_least_one_independent = 1 - (1 - individual_break_prob) ** n_deals

    # With correlation, use factor model approach
    # Each deal breaks if: sqrt(rho)*Z + sqrt(1-rho)*epsilon < threshold
    # where Z is common factor, epsilon is idiosyncratic
    threshold = norm.ppf(individual_break_prob)

    # Simulate scenarios
    np.random.seed(42)
    n_sims = 50000
    common_factor = np.random.normal(0, 1, n_sims)

    # For each simulation, count deal breaks
    breaks_per_sim = np.zeros(n_sims)
    for i in range(n_sims):
        z = common_factor[i]
        for _ in range(n_deals):
            epsilon = np.random.normal(0, 1)
            latent = (
                np.sqrt(correlation) * z + np.sqrt(1 - correlation) * epsilon
            )
            if latent < threshold:
                breaks_per_sim[i] += 1

    return {
        "expected_breaks": breaks_per_sim.mean(),
        "prob_zero_breaks": (breaks_per_sim == 0).mean(),
        "prob_one_break": (breaks_per_sim == 1).mean(),
        "prob_two_plus_breaks": (breaks_per_sim >= 2).mean(),
        "prob_independent_zero": (1 - individual_break_prob) ** n_deals,
    }


# Analyze portfolio with 10 deals, each 15% break probability
port_risk_low_corr = portfolio_deal_risk(10, 0.15, 0.10)
port_risk_high_corr = portfolio_deal_risk(10, 0.15, 0.40)
Out[16]:
Console
Portfolio Deal Break Analysis (10 deals, 15% individual break prob)
=======================================================

Low Correlation (ρ=0.10):
  Expected Breaks: 1.50
  Prob Zero Breaks: 26.1%
  Prob Two+ Breaks: 42.8%

High Correlation (ρ=0.40):
  Expected Breaks: 1.50
  Prob Zero Breaks: 42.6%
  Prob Two+ Breaks: 35.9%

Independent Baseline:
  Prob Zero Breaks: 19.7%

Higher correlation dramatically increases the probability of multiple simultaneous deal failures, with the simulation showing that at 40% correlation, the probability of two or more breaks rises to 17.8% from 7.8% at 10% correlation. This systemic tail risk is the primary concern for merger arbitrage portfolios and explains the empirical failure of many leveraged programs during the 2008 financial crisis when correlation spiked to near 1.0. Practitioners manage this correlation risk through careful sector diversification, explicit avoidance of deals with shared regulatory exposures, and disciplined maintenance of portfolio leverage at levels substantially below what standalone expected-return calculations would justify. This "correlation haircut" on leverage is a hallmark of professional event-driven risk management.