High-Frequency Trading and Latency Arbitrage › Key Parameters

Michael BrenndoerferJanuary 1, 20265 min read
Quantitative FinanceAll chapters
Part 12 of 15Market Making and High-Frequency Trading
Chapter 66High-Frequency Trading and Latency Arbitrage › Key Parameters
Reading section 5 of 18 · Key Parameters · 5 minSection 5 of 18 · 5 min

Book contents

Section 5 of 18 · 5 min read

High-Frequency Trading and Latency Arbitrage › Key ParametersOne section · Sections in this chapter5 / 18 ↓
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

The key parameters for cross-market arbitrage are:

  • price_a: Lower price on the buy side exchange (dollars per share), which determines the cost basis for the arbitrage position.
  • price_b: Higher price on the sell side exchange (dollars per share), which determines the revenue when closing the position.
  • shares: Number of shares to trade, with larger positions amplifying both profits and costs proportionally.
  • fee_per_share: Exchange fee for removing liquidity (dollars per share). These transaction costs erode gross profits and represent a fixed hurdle that must be overcome.
  • slippage_bps: Expected price movement against the trader during execution (basis points), representing adverse selection and execution timing risk that grows with position size and market volatility.
  • breakeven_spread: Minimum price difference required for profitability after costs (dollars per share), a critical threshold determining whether arbitrage is viable and representing the entry barrier for slower competitors.

ETF Arbitrage Mechanics

ETF arbitrage is more complex because it involves trading a basket of securities against the ETF itself. The key participants are authorized participants (APs), typically large financial institutions, who can create or redeem ETF shares directly with the fund.

Creation/Redemption Mechanism

Authorized participants can exchange a basket of the underlying securities for ETF shares (creation) or exchange ETF shares for the underlying basket (redemption). This mechanism keeps ETF prices aligned with NAV.

When an ETF trades at a premium to NAV, you can execute the following strategy:

  1. Buy the underlying basket of securities
  2. Deliver the basket to the ETF issuer to create new ETF shares
  3. Sell the newly created ETF shares at the premium price
  4. Profit equals the premium minus transaction costs and creation fees

When an ETF trades at a discount to NAV, the process reverses.

In[8]:
Code
def etf_arbitrage_analysis(
    etf_price: float,
    nav: float,
    shares_per_creation_unit: int = 50000,
    creation_fee: float = 500,
    basket_execution_cost_bps: float = 2.0,
    etf_execution_cost_bps: float = 1.0,
):
    """
    Analyze ETF arbitrage opportunity.

    Parameters:
    -----------
    etf_price : Current ETF market price
    nav : Net asset value per ETF share
    shares_per_creation_unit : Shares in one creation/redemption unit
    creation_fee : Fixed fee for creation/redemption
    basket_execution_cost_bps : Cost to trade underlying basket
    etf_execution_cost_bps : Cost to trade ETF
    """
    # Calculate premium/discount
    premium_pct = (etf_price - nav) / nav * 100
    premium_bps = premium_pct * 100

    # Creation unit value
    creation_unit_nav = nav * shares_per_creation_unit
    creation_unit_etf = etf_price * shares_per_creation_unit

    # Gross arbitrage profit
    if etf_price > nav:
        # Premium: buy basket, create ETF, sell ETF
        gross_profit = creation_unit_etf - creation_unit_nav
        action = "Premium: Buy basket, create ETF shares, sell ETF"
    else:
        # Discount: buy ETF, redeem for basket, sell basket
        gross_profit = creation_unit_nav - creation_unit_etf
        action = "Discount: Buy ETF, redeem for basket, sell basket"

    gross_profit = abs(gross_profit)

    # Costs
    basket_cost = creation_unit_nav * basket_execution_cost_bps / 10000
    etf_cost = creation_unit_etf * etf_execution_cost_bps / 10000
    total_cost = basket_cost + etf_cost + creation_fee

    net_profit = gross_profit - total_cost

    # Breakeven premium
    breakeven_bps = (
        basket_execution_cost_bps
        + etf_execution_cost_bps
        + creation_fee / creation_unit_nav * 10000
    )

    return {
        "premium_bps": premium_bps,
        "action": action,
        "gross_profit": gross_profit,
        "basket_cost": basket_cost,
        "etf_cost": etf_cost,
        "creation_fee": creation_fee,
        "total_cost": total_cost,
        "net_profit": net_profit,
        "breakeven_bps": breakeven_bps,
    }


# Example: SPY trading at small premium
etf_price = 450.15
nav = 450.00
result = etf_arbitrage_analysis(
    etf_price=etf_price, nav=nav, shares_per_creation_unit=50000
)
Out[9]:
Console
ETF Arbitrage Analysis
==================================================
ETF Price: $450.15
NAV: $450.00
Premium: 3.33 basis points

Action: Premium: Buy basket, create ETF shares, sell ETF

P&L for One Creation Unit (50,000 shares):
  Gross profit:     $    7,500.00
  Basket execution: $    4,500.00
  ETF execution:    $    2,250.75
  Creation fee:     $      500.00
  Total costs:      $    7,250.75
  Net profit:       $      249.25

Breakeven premium: 3.22 basis points

The analysis shows that the premium generates substantial profits at scale. For one creation unit (50,000 shares), the gross profit exceeds total costs, yielding a net profit. However, the breakeven premium demonstrates why only well-capitalized, low-cost traders can profitably engage in ETF arbitrage. The margin between the actual premium and breakeven is narrow, requiring precise execution and minimal slippage.

Out[10]:
Visualization
Line chart of net profit versus ETF premium or discount in basis points, with a coral-shaded no-arbitrage band near zero and teal shading where net profit is positive beyond the band edges.
ETF arbitrage profitability as a function of premium or discount to net asset value (NAV) for one 50,000-share creation unit. The coral-shaded region marks the no-arbitrage band (approximately ±3 basis points) where transaction costs eliminate potential profits. Outside this band, net profit scales with the magnitude of the premium or discount, helping keep ETF prices aligned with their underlying NAV.