Files
ai/gateway/knowledge/trading/strategies/fx/triangular-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

53 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: "FX triangular arbitrage that exploits momentary mispricing across three currency pairs by executing a circular chain of exchanges to lock in a riskless profit."
tags: [fx, arbitrage, triangular, market-microstructure]
---
# FX Triangular Arbitrage
**Section**: 8.5 | **Asset Class**: FX | **Type**: Arbitrage
## Overview
Triangular arbitrage involves three currencies (A, B, C) and three currency pairs. If the cross-rate implied by trading A→B→C→A differs from the direct rate, a riskless profit exists. Such mispricings are extremely short-lived and require fast market data feeds and execution systems.
## Construction / Mechanics
Given three currencies A, B, C and their bid/ask prices, there are two chains:
1. A → B → C → A
2. A → C → B → A (equivalent to swapping B and C in chain 1)
Focus on chain 1. The relevant rates are:
- Bid(A→B): rate at which A is exchanged into B
- Bid(B→C): rate at which B is exchanged into C
- Ask(C→A): rate at which C is exchanged back into A (cost = 1/Ask(C→A))
Note: Bid(B→A) = 1/Ask(B→A) and Ask(A→B) = 1/Bid(A→B).
The overall round-trip exchange rate for chain 1 is:
```
R(A→B→C→A) = Bid(A→B) × Bid(B→C) × (1 / Ask(C→A)) (453)
```
**Profit condition:** If R(A→B→C→A) > 1, the trader profits by executing all three legs simultaneously. Starting with 1 unit of A, the trader ends with R > 1 units of A.
## Return Profile
The P&L per unit of A is R - 1 when R > 1. Profits are typically very small per trade (fractions of a pip) but can be accumulated at high frequency. The strategy is notionally riskless if all three legs are executed simultaneously; execution lag introduces market risk.
## Key Parameters / Signals
| Parameter | Description |
|-----------|-------------|
| R(A→B→C→A) | Round-trip rate; > 1 signals a profitable arbitrage |
| Bid(A→B), Bid(B→C) | Bid rates for the two intermediate legs |
| Ask(C→A) | Ask rate for the closing leg |
| Execution speed | Critical: mispricings disappear in milliseconds |
## Variations
- **Multi-currency arbitrage**: extend to more than 3 currency pairs (N-currency chains); computational complexity increases but can uncover deeper mispricings.
- **Chain 2** (A→C→B→A): identical logic with B and C swapped; both chains should be monitored simultaneously.
## Notes
- Opportunities are ephemeral; the strategy is effectively a latency arbitrage and is dominated by high-frequency traders with co-located infrastructure.
- Bid-ask spreads are the primary cost; even small spreads can eliminate the theoretical profit, so only very tight markets are viable.
- Unlike statistical arbitrage, this is a near-deterministic arbitrage: no model risk, but significant execution/technology risk.
- Applicable to crypto exchanges where cross-exchange and cross-pair mispricings can be larger and more persistent than in professional FX markets.