What is arbitrage?

Buying something in one market and selling it in another at the same time to lock in the price difference as a risk-free profit.

Arbitrage diagram example

Public diagram from the Machinations Community. Open it on its own page

Arbitrage is the practice of exploiting a price difference for the same thing in two places, buying where it is cheaper and selling where it is dearer, ideally at the same moment. Done well, the profit is locked in with little or no risk. It matters because arbitrageurs are what push prices of the same asset toward each other across markets.

How it works

The profit per unit is the price gap minus costs such as fees, transport, taxes and the time that the money is tied up. If the gap is larger than the costs, traders buy in the cheap market and sell in the expensive one. That buying lifts the cheap price and the selling lowers the expensive price, so the gap narrows. This is a negative feedback loop: the opportunity eats itself.

Three things limit it in practice. Costs can erase thin gaps. Transfers take time, during which prices can move and the trade stops being risk-free. And the volume available at the better price is limited, so profits shrink as you scale up.

Example

Say a commodity sells for 100 per unit in market A and 103 in market B. Moving it costs 1 per unit in fees. The profit is 103 − 100 − 1 = 2 per unit, so trading 1,000 units gives 2,000. Each purchase pushes A's price up a little and each sale pushes B's down, so after enough trades the gap may fall to 1, where profit is zero and the trading stops. This is an illustration with round numbers.

How to model it in Machinations

Use two Pools for the two markets and a Trader between them. Prices are Registers; a state connection makes each price rise when its Pool of stock falls and fall when it rises. A Drain for fees takes a cost per unit traded, and a Lever sets the trade size per step. Play to see the gap close over time, and raise the fee Lever until trading stops being worthwhile.

See arbitrage in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.