Currency Market Arbitrage Finder
Identify triangular arbitrage opportunities in currency exchange rates.
Run the analysis from the 'Data Configuration' tab to find arbitrage opportunities.
Manage Exchange Rates
Add, remove, or edit currency pairs and their exchange rates. All rates are relative to the first currency in the pair.
| Base Currency | Quote Currency | Exchange Rate | Actions |
|---|
No arbitrage opportunities found with the current exchange rates.
`; downloadPdfBtn.disabled = true; return; } opportunities.forEach(opp => { const card = document.createElement('div'); card.className = 'bg-green-50 border border-green-200 rounded-xl p-6 shadow-sm'; card.innerHTML = `Arbitrage Opportunity Found!
${opp.path[0]} →
${opp.path[1]} →
${opp.path[2]} →
${opp.path[3]}
Potential Profit
${opp.profit.toFixed(4)}%
Execution Steps (Starting with $1,000):
- Start with 1,000 ${opp.path[0]}.
- Convert to ${opp.path[1]}: 1,000 ${opp.path[0]} × ${opp.steps[0].rate.toFixed(4)} = ${opp.steps[0].result.toLocaleString('en-US', {minimumFractionDigits: 2})} ${opp.path[1]}.
- Convert to ${opp.path[2]}: ${opp.steps[0].result.toLocaleString('en-US', {minimumFractionDigits: 2})} ${opp.path[1]} × ${opp.steps[1].rate.toFixed(4)} = ${opp.steps[1].result.toLocaleString('en-US', {minimumFractionDigits: 2})} ${opp.path[2]}.
- Convert back to ${opp.path[3]}: ${opp.steps[1].result.toLocaleString('en-US', {minimumFractionDigits: 2})} ${opp.path[2]} × ${opp.steps[2].rate.toFixed(4)} = ${opp.steps[2].result.toLocaleString('en-US', {minimumFractionDigits: 2})} ${opp.path[3]}.
