Skip to content
All library documents

Detecting Arbitrage Across Outrights, Spreads, and Butterflies

Article Quant Q&A · Author: hda2522

Summary

The document considers how to identify arbitrage relationships among outright futures and instruments built from them, such as calendar spreads and butterflies. It frames quoted instrument prices as linear combinations of outright prices and asks how to detect inconsistent observations or find feasible outright price ranges when the system is underdetermined. A small example illustrates that multiple outright price combinations can satisfy the available spread prices and non-negativity constraints.

The response cautions that mid prices are inadequate for sensitive arbitrage tests because mids for related instruments generally do not satisfy exact linear equalities. It instead describes arbitrage as a feasibility problem: market prices define inequalities based on executable bid and ask quotes, such as comparing the cost of buying component contracts with the bid for a related instrument. A price state outside the feasible region signals a possible arbitrage. The discussion gives a geometric formulation rather than a full algorithm or treatment of costs and execution constraints.

Key ideas

  • Outright, spread, and butterfly prices can be represented as linear combinations of underlying outright prices.
  • Underdetermined price equations can admit ranges of feasible outright prices rather than a unique solution.
  • Mid-price equalities can trigger false arbitrage signals because related instrument mids rarely match exactly.
  • Executable bid and ask inequalities define a feasible price region for arbitrage checks.

Tags

Full text
# calculating arbitrage-free ranges based off outright, spread, and fly prices


# calculating arbitrage-free ranges based off outright, spread, and fly prices












This may be more applied math rather than finance focused, but I'm curious about using linear algebra techniques for generating possible arbitrage signals among outright instruments and spreads/flies based off these outrights (take for instance, Eurodollar futures, and their calendar spreads and butterflies).

In the general case, assuming there are prices (I'm assuming a single mid price for testing purposes) available for some subset of these of instruments, I'd like to come up with a simple algorithm for detecting arbitrages and, for outright instruments with no unique price solution, a range of arbitrage-free prices.

My initial hunch was to set up a weighting matrix MxN ( where M is the net number of instruments and N is the number of outrights ), and filter out all rows without market prices, filter out all columns with all 0s, and then solve the matrix (augmented with prices) to get the outright price values, or an inconsistency (=potential arbitrage). If the rank < M, then I'm a bit stumped on how to cleanly generate ranges given constraints on prices ( say > 0 ).

For example, given 3 outrights A,B,C and two instruments A+B and A-B+C, the weight matrix is [ 1 1 0; 1 -1 1] and prices are [10,35].

Solving this yields a free variable, which I can manually manipulate to get ranges for A,B,C (I get A:[0,10], B:[0,35], C:[0,5]), but is there a nicer mathematical way to generate ranges of values that solve a matrix subject to constraints? Thought about using some kind of LP but didn't jump out at me how.

## Answer by Brian B (score 6, accepted)

https://quant.stackexchange.com/a/3223

Interesting question! I don't think you will get very far just using mid prices, though...any sufficiently sensitive test will flag nearly every situation as an arbitrage since $A_\text{mid}+B_\text{mid} \neq (A+B)_\text{mid}$ in most cases.

Instead, what about viewing each price set as a dimension in $n$-dimensional space? The arbitrages occur if the current price state corresponds to a point outside the $n$-dimensional polygon whose edges are defined by relations such as

$$ A_\text{ask}+B_\text{ask} \geq (A+B)_\text{bid} $$

corresponding to possible arbitrage relations.

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.