Currency Arbitrage as Modeled by Networks
We all are familiar with conversion rates. A dollar is 100 pennies. One pound is 16 ounces. A million dollars is ten thousand 100 dollar bills. However, sometimes these conversions don’t work out so nicely. Imagine someone, let us call him or her person A, says 400 apples is worth 300 oranges to me and someone else, person B, says 300 oranges is worth 200 bananas to me. Person C says 200 bananas is worth 401 apples to me. In this case, person A can go through the conversion 400 apples → 300 oranges → 200 bananas → 401 apples. Person A has, through a series of agreed upon trades with various parties, person A has gone from 400 apples to 401 apples without paying any fees or costs. Essentially, person A made a net profit of 1 apple.
The above concept plays an important role in the currency exchange markets. For instance, Bank A may quote the US / EUR pair at 2 US dollars per Euro while Bank B quotes the pair at 2.5 dollars per Euro. By trading first to Bank A and then converting back to dollars through Bank B and neglecting trading fees, the trader has made a 0.5 dollar profit. With the invention of algorithmic trading and price discovery, this strategy has become a lot less viable, but it is still an interesting topic that applies a lot of network theory.
For instance, the miss priced rates across different brokers are due to the spread in the bid and ask prices. Additionally, we can model the conversions between various currencies as a network with nodes representing the currency of interest and directed edges between these nodes as the exchange rate from the node at which the edge starts to the node at which the edge ends. Because exchange rates exist between all currencies, this graph is complete.
Now, the question becomes how can we identify such currency arbitrage opportunities in this network? The goal is to start at a certain currency, convert between some sequence of other currencies, and arrive back at the currency we started with a higher amount than what we started at. In other words, if we multiply the conversion rates from currency to currency, we should end up at the start node with a multiple of that start currency greater than one. Thus, we are looking for a cycle in the network in which the directed edge weights between each node in the cyclic path when multiplied together are greater than one. Taking the log of both sides of this equation, we see that we want the sum of the log of each edge weight to be greater than the log of one, which is 0. We can then multiply both sides of this equation by -1 to get the fact that currency arbitrage exists from the given node in a network if the negative log of the edge weights in a cycle starting and ending at the given node is less than 0. The multiplication by -1 is important because of the existence of the Bellman-Ford algorithm, which can “detect negative cycles and report their existence”.
Bellman-Ford Citation:
- Bang-Jensen, Jørgen; Gutin, Gregory (2000). “Section 2.3.4: The Bellman-Ford-Moore algorithm”. Digraphs: Theory, Algorithms and Applications (First ed.). ISBN 978-1-84800-997-4.
Nice idea!