Files
ai/gateway/knowledge/trading/strategies/indexes/cash-and-carry-arbitrage.md
Tim Olson 47471b7700 Expand model tag support: add GLM-5.1, simplify Anthropic IDs, scan tags anywhere in message
- Flink update_bars debouncing
- update_bars subscription idempotency bugfix
- Price decimal correction bugfix of previous commit
- Add GLM-5.1 model tag alongside renamed GLM-5
- Use short Anthropic model IDs (sonnet/haiku/opus) instead of full version strings
- Allow @tags anywhere in message content, not just at start
- Return hasOtherContent flag instead of trimmed rest string
- Only trigger greeting stream when tag has no other content
- Update workspace knowledge base references to platform/workspace and platform/shapes
- Hierarchical knowledge base catalog
- 151 Trading Strategies knowledge base articles
- Shapes knowledge base article
- MutateShapes tool instead of workspace patch
2026-04-28 15:05:15 -04:00

3.0 KiB

description, tags
description tags
Cash-and-carry (index) arbitrage exploits price inefficiencies between an index spot price and its futures price, trading the basis when futures are mispriced relative to their theoretical fair value.
indexes
arbitrage
futures
basis
cash-and-carry

Cash-and-Carry Arbitrage

Section: 6.2 | Asset Class: Indexes | Type: Arbitrage

Overview

Cash-and-carry arbitrage (also called "index arbitrage") exploits discrepancies between the spot value of an index and the price of index futures. Theoretically, the futures price must equal the spot price compounded at the risk-free rate minus the present value of dividends. When the actual futures price deviates from this fair value beyond transaction costs, an arbitrage trade exists.

Construction / Mechanics

Theoretical (fair) futures price:

F*(t,T) = [S(t) - D(t,T)] · exp(r(T-t))                            (421)

where:

  • F*(t,T): theoretical futures price with delivery T at time t
  • S(t): current spot value of the index
  • D(t,T): present value (as of t) of dividends paid by index constituents between t and T
  • r: risk-free rate (assumed constant)

Basis (normalized deviation from fair value):

B(t,T) = [F(t,T) - F*(t,T)] / S(t)                                 (422)

where F(t,T) is the actual futures price.

Trading rule:

  • If B(t,T) > 0 (futures rich relative to spot): sell futures + buy cash (index basket)
  • If B(t,T) < 0 (futures cheap relative to spot): buy futures + sell cash (index basket)
  • Only trade when |B(t,T)| exceeds pertinent transaction costs
  • Close the position when the basis converges to zero (futures price converges to fair value at delivery)

Payoff / Return Profile

  • Earns the basis B(t,T) as a riskless profit (if perfectly hedged) when the position is held to delivery.
  • The basis converges to zero at expiry: futures price → spot price at delivery.
  • Return per dollar of notional ≈ |B(t,T)| minus transaction costs.

Key Parameters / Signals

  • B(t,T): the basis — primary signal; trade when |B| > transaction cost threshold
  • S(t): index spot level
  • D(t,T): expected dividends over the futures lifetime
  • r: risk-free rate
  • Transaction cost threshold: determines minimum |B| required to trade profitably

Variations

  • Incomplete basket: use a subset of index constituents to reduce transaction costs; introduces tracking error.
  • ETF arbitrage: similar logic applied to ETF mispricing (see Section 6.4).

Notes

  • Arbitrage opportunities are short-lived and require extremely fast execution; this is a domain of high-frequency trading.
  • Selling the cash index (short-selling constituent stocks) is operationally complex: hard-to-borrow stocks, short-sale restrictions, etc.
  • Dollar-neutral long cash / short futures book helps manage execution but requires continuous monitoring.
  • Slippage from large orders moving the market can be prohibitive.
  • Incomplete baskets (omitting illiquid or low-cap stocks) reduce transaction costs but introduce residual tracking risk.