Wenn deine Anwendung brasilianische Real in indische Rupien, norwegische Kronen in Singapur-Dollar oder ein beliebiges Paar umrechnen muss, in dem der US-Dollar auf keiner Seite vorkommt, stehst du kurz davor, Mathematik mit Kreuzwechselkursen zu betreiben. Die meisten Currency-APIs und Forex-Plätze notieren tausende Paare gegen den Dollar, aber nur eine Handvoll Paare wird direkt zwischen zwei Nicht-USD-Währungen gehandelt. Alles andere — und das ist der Long Tail — wird als Cross Rate berechnet.
Dieser Guide erklärt, was eine Cross Rate ist, die Formel in ihren drei Ausprägungen, durchgerechnete Beispiele, die du mit dem Taschenrechner verifizieren kannst, und produktionsreifen Code in JavaScript, Python, PHP und cURL. Wir behandeln auch die Fallstricke, die in echten Systemen Abweichungen von einem Prozent verursachen: Rundung, Bid-Ask-Spreads, veraltete Kurse und Inversionsfehler.
Was ist ein Kreuzwechselkurs?
Ein Kreuzwechselkurs ist der Preis einer Währung ausgedrückt in einer anderen Währung, wenn keine der beiden in den ursprünglichen Notierungen die Lokal- oder Referenzwährung ist. In der Praxis bedeutet das fast immer ein Währungspaar ohne den US-Dollar, das aus zwei Paaren abgeleitet wird, die jeweils den Dollar enthalten.
Zum Beispiel ist der EUR/JPY-Kurs technisch eine Cross Rate. Obwohl EUR/JPY zu den am aktivsten gehandelten Paaren der Welt gehört und einen eigenen notierten Markt hat, bleibt die zugrundeliegende Logik dieselbe: Nimm EUR/USD, nimm USD/JPY, multipliziere — und du bekommst dieselbe Zahl, die dir eine Bank in Tokio nennen würde. Marktnotierung und berechnete Cross Rate sind durch Arbitrage aneinander gekoppelt — würden sie auseinanderlaufen, würden Trader so lange einsteigen, bis sie wieder zusammenpassen.
Währungen ohne liquiden direkten Markt — etwa nigerianischer Naira gegen philippinischen Peso (NGN/PHP) — existieren ausschließlich als Cross Rates. Es gibt keinen NGN/PHP-Markt im eigentlichen Sinne. Wer dieses Paar notiert, berechnet es aus NGN/USD und USD/PHP.
Die technische Definition macht den Unterschied klarer:
- Eine direkte Rate wird aktiv auf einem Markt oder einem aggregierten Feed notiert.
- Eine Cross Rate wird aus zwei oder mehr direkten Raten berechnet, die eine gemeinsame Basiswährung (meist USD) teilen.
Die meisten API-Anbieter, einschließlich Finexly, liefern Cross Rates nahtlos: Du fragst nach einem beliebigen Paar, und die Engine erledigt die Mathematik im Hintergrund. Zu wissen, wie diese Mathematik funktioniert, bleibt wichtig, weil sie beeinflusst, wie du Präzision, Spreads und Randfälle behandelst.
Warum Cross Rates für Entwickler wichtig sind
Cross Rates tauchen in drei Kategorien von Anwendungen auf:
Grenzüberschreitende Zahlungen und Überweisungen. Ein philippinischer Freelancer, der einen brasilianischen Kunden abrechnet, will wissen, wie viele BRL seine PHP-denominierten Sätze wert sind. Es gibt keinen direkten BRL/PHP-Markt — die Plattform berechnet ihn über USD.
Multi-Currency-E-Commerce. Ein norwegischer Händler, der einem singapurischen Kunden Preise anzeigt, braucht NOK/SGD. Stripe, Adyen und die meisten Payment-Prozessoren berechnen diese Cross intern und legen ihre FX-Marge obendrauf.
Finanzanalysen und Trading. Quant-Systeme hedgen Exposure über Portfolios, die in vielen Währungen notieren. Um deine Netto-Exposure in EUR zu kennen, musst du Positionen in MXN, INR, ZAR und BRL nach EUR umrechnen — alles Cross-Berechnungen.
In jedem Fall hängt die Qualität deiner Cross Rate vollständig von der Qualität und Aktualität der zwei zugrundeliegenden USD-Paare ab. Ein 2 Sekunden alter EUR/USD-Kurs kombiniert mit einem 60 Sekunden alten USD/JPY-Kurs liefert eine Cross, die genau um die Bewegung des JPY in dieser Lücke daneben liegt. Eine Einführung dazu, woher Kurse stammen und wie sie aktualisiert werden, findest du in unserem Guide wie Wechselkurse funktionieren.
Die Cross-Rate-Formel
Es gibt drei Fälle, je nachdem, wie die zwei Quellpaare notiert sind. Das allgemeine Prinzip ist einfach: Wenn du die Kurse als Brüche schreibst, muss sich die gemeinsame Währung kürzen.
Fall 1: USD ist in beiden Paaren die Quote-Währung
Angenommen, du hast:
- EUR/USD = 1,0850 (1 EUR kauft 1,0850 USD)
- GBP/USD = 1,2620 (1 GBP kauft 1,2620 USD)
Du willst EUR/GBP. Die Formel lautet:
EUR/GBP = (EUR/USD) / (GBP/USD)
EUR/GBP = 1.0850 / 1.2620 = 0.8598Also kauft 1 Euro 0,8598 Pfund. Beide Quellnotierungen haben USD rechts, also dividieren wir.
Fall 2: USD ist in beiden Paaren die Basiswährung
Angenommen, du hast:
- USD/JPY = 152,30
- USD/CHF = 0,8920
Du willst JPY/CHF. Die Formel lautet:
JPY/CHF = (USD/CHF) / (USD/JPY)
JPY/CHF = 0.8920 / 152.30 = 0.005857Also kauft 1 Yen 0,005857 Schweizer Franken. Beide Quellnotierungen haben USD links, also dividieren wir, aber mit invertiertem Verhältnis.
Fall 3: USD ist im einen Basis und im anderen Quote (gemischt)
Das ist der häufigste Fall — und der, in dem Fehler passieren. Angenommen, du hast:
- EUR/USD = 1,0850 (USD ist die Quote)
- USD/JPY = 152,30 (USD ist die Basis)
Du willst EUR/JPY. Die Formel lautet:
EUR/JPY = (EUR/USD) × (USD/JPY)
EUR/JPY = 1.0850 × 152.30 = 165.25Also kauft 1 Euro 165,25 Yen. Die Dollar kürzen sich sauber heraus: Euro-pro-Dollar mal Dollar-pro-Yen ergibt Euro-pro-Yen. Im gemischten Fall multiplizieren.
Die einfache Faustregel: Schreib die Paare als Brüche, richte sie so aus, dass sich der USD kürzt, und multipliziere oder dividiere entsprechend. Welche Währung als Zähler übrig bleibt, wird zur Basis deiner Cross Rate.
Durchgerechnete Beispiele zum Nachprüfen
Nutze einen beliebigen großen Currency-Feed, um diese Zahlen zu verifizieren. Die exakten Werte verschieben sich mit dem Markt; was zählt, ist die Struktur.
Beispiel 1: EUR/JPY (gemischter Fall)
Gegeben EUR/USD = 1,0850 und USD/JPY = 152,30:
EUR/JPY = 1.0850 × 152.30 = 165.2455Beispiel 2: GBP/CHF (gemischter Fall)
Gegeben GBP/USD = 1,2620 und USD/CHF = 0,8920:
GBP/CHF = 1.2620 × 0.8920 = 1.1257Beispiel 3: AUD/NZD (beide gegen USD notiert)
Gegeben AUD/USD = 0,6630 und NZD/USD = 0,6010:
AUD/NZD = 0.6630 / 0.6010 = 1.1031Also kauft 1 Australischer Dollar 1,1031 Neuseeland-Dollar.
Beispiel 4: BRL/INR (beide mit USD als Basis notiert)
Gegeben USD/BRL = 5,0850 und USD/INR = 84,20:
BRL/INR = (USD/INR) / (USD/BRL) = 84.20 / 5.0850 = 16.561Also kauft 1 Brasilianischer Real 16,561 Indische Rupien.
Eine Auffrischung der hier verwendeten standardisierten dreibuchstabigen Codes findest du in unserem ISO-4217-Währungscodes-Guide.
Reziproke Kurse und das Invertieren von Paaren
Manchmal liefert dein Datenfeed USD/EUR, du brauchst aber EUR/USD. Der Kehrwert ist:
EUR/USD = 1 / (USD/EUR)Wenn USD/EUR = 0,9217, dann EUR/USD = 1 / 0,9217 = 1,0850.
Zwei praktische Punkte zu Kehrwerten:
Erstens: Rundung pflanzt sich fort. Wenn du einen Kurs auf 4 Nachkommastellen rundest, dann den Kehrwert nimmst und nochmal rundest, kannst du Fehler von 0,01 % oder mehr einbauen. Für hochpräzise Anwendungen halte den Kehrwert in voller Floating-Point-Präzision bis zum letzten Anzeigeschritt. Wir behandeln Präzisionsstrategien ausführlich in unserem Beitrag zu Caching- und Fehlerbehandlungs-Best-Practices für Currency-APIs.
Zweitens: Bid und Ask drehen sich beim Kehrwertbilden um. Hat GBP/USD ein Bid von 1,2618 und ein Ask von 1,2622, dann hat USD/GBP ein Bid von 1/1,2622 = 0,7923 und ein Ask von 1/1,2618 = 0,7925. Das Bid des einen Paares ist der Kehrwert des Asks des anderen, nicht des Bids.
Bid-Ask-Spread bei Cross Rates
Wenn du eine Cross Rate aus zwei zugrundeliegenden Paaren baust, stapeln sich die Spreads.
Angenommen:
- EUR/USD hat Bid 1,0848 und Ask 1,0852 (4-Pip-Spread)
- USD/JPY hat Bid 152,27 und Ask 152,33 (6-Pip-Spread)
Die implizite EUR/JPY-Cross hat:
Bid = 1.0848 × 152.27 = 165.183
Ask = 1.0852 × 152.33 = 165.309Das sind 12,6 Pips Spread auf der Cross — breiter als bei jedem der Quellpaare. In der Praxis hat der direkt notierte EUR/JPY-Markt einen engeren Spread als diese Berechnung, weil liquide Cross-Paare eigene Market Maker haben.
Die Erkenntnis für Entwickler: Mid-Market-Cross-Rates, die aus zwei USD-Paaren berechnet werden, sind Schätzungen des echten direkten Marktes. Gut genug, um Preise im Checkout anzuzeigen, brauchbar für Analysen, aber nicht das, was deine Bank oder dein Broker dir tatsächlich ausführt. Den Unterschied Mid-Market vs. Dealer-Kurs behandelt unser Mid-Market-Wechselkurs-Guide.
Cross Rates mit der Finexly-API berechnen
Du musst Cross Rates normalerweise nicht von Hand berechnen. Die Finexly-API akzeptiert beliebige Basen und beliebige Listen von Zielwährungen und liefert die Cross intern mit konsistenter Präzision. Hier ist die Nutzung in vier gängigen Stacks.
cURL
curl "https://api.finexly.com/v1/latest?base=BRL&symbols=INR,PHP,NGN" \
-H "Authorization: Bearer YOUR_API_KEY"Antwort:
{
"base": "BRL",
"date": "2026-05-09",
"rates": {
"INR": 16.561,
"PHP": 11.272,
"NGN": 312.45
}
}JavaScript (Node 20+, Fetch)
async function getCrossRates(base, targets) {
const url = `https://api.finexly.com/v1/latest?base=${base}&symbols=${targets.join(",")}`;
const res = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.FINEXLY_API_KEY}` }
});
if (!res.ok) throw new Error(`Finexly API error: ${res.status}`);
return res.json();
}
const data = await getCrossRates("BRL", ["INR", "PHP", "NGN"]);
console.log(`1 BRL = ${data.rates.INR} INR`);Python
import os
import requests
def get_cross_rates(base, targets):
url = "https://api.finexly.com/v1/latest"
params = {"base": base, "symbols": ",".join(targets)}
headers = {"Authorization": f"Bearer {os.environ['FINEXLY_API_KEY']}"}
response = requests.get(url, params=params, headers=headers, timeout=10)
response.raise_for_status()
return response.json()
data = get_cross_rates("BRL", ["INR", "PHP", "NGN"])
print(f"1 BRL = {data['rates']['INR']} INR")PHP
<?php
function getCrossRates(string $base, array $targets): array {
$symbols = implode(',', $targets);
$url = "https://api.finexly.com/v1/latest?base={$base}&symbols={$symbols}";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('FINEXLY_API_KEY')],
CURLOPT_TIMEOUT => 10,
]);
$body = curl_exec($ch);
if (curl_errno($ch)) throw new RuntimeException(curl_error($ch));
curl_close($ch);
return json_decode($body, true);
}
$data = getCrossRates('BRL', ['INR', 'PHP', 'NGN']);
echo "1 BRL = {$data['rates']['INR']} INR\n";In allen vier Beispielen erledigt die API die Cross-Rate-Mathematik für dich und liefert präzise Mid-Market-Werte. Du kannst die Basis auf jede der über 170 unterstützten Währungen umstellen und beliebig viele Ziele in einem einzigen Aufruf anfragen. Mehr sprachspezifische Patterns findest du in unserem Currency-API-Python-Tutorial, Node.js-Integrationsguide und PHP-Guide.
Wann du Cross Rates selbst berechnen solltest
Selbst mit einer guten API gibt es drei Szenarien, in denen du Cross Rates auf eigenen Daten berechnest, statt sie zu holen:
Backtesting historischer Strategien. Wenn du Jahre an EUR/USD- und USD/JPY-Tick-Daten auf eigenen Servern hast, vermeidet die lokale Berechnung von EUR/JPY Millionen externer API-Aufrufe. Nutze die historischen Wechselkurs-Endpunkte, um die Daten zu seeden, und leite die Crosses dann in deiner Backtest-Engine ab.
Latenzkritische Anwendungen. Algo-Trading-Systeme rechnen Crosses oft im Speicher aus den zugrundeliegenden USD-Paaren vor, weil das Einsparen eines Netzwerk-Roundtrips zählt. Der Trade-off: Du übernimmst die Verantwortung für Synchronisation und Aktualität.
Eigene Misch-Kurse. Manche Plattformen notieren interne Kurse, die mehrere Quellen mischen oder einen Aufschlag anwenden. Die Cross-Berechnung im Haus erlaubt es, deine Geschäftslogik anzuwenden, bevor du den Kurs an den Kunden ausspielst.
Wenn dein Use Case nichts davon ist — eine Checkout-Seite, ein Rechnungs-Tool, ein internes Dashboard — lass die API die Cross direkt liefern. Das ist genauer, einfacher zu warten und schneller umgesetzt.
Häufige Stolperfallen bei der Berechnung von Cross Rates
Das sind die Fehler, die wir bei Code-Reviews am häufigsten sehen.
Das falsche Paar invertieren. Wenn die zwei Quellpaare in entgegengesetzten Richtungen notiert sind (eines mit USD als Basis, eines mit USD als Quote), multipliziert man leicht, wo man hätte invertieren und dividieren müssen. Schreib die Kurse immer als Brüche und prüf, ob sich die gemeinsame Währung wirklich kürzt.
Zu früh runden. Klassischer Bug: jeden Quellkurs auf vier Nachkommastellen runden, dann multiplizieren. Die kumulierte Rundung kann Fehler von 0,01 % bis 0,1 % erzeugen. Für Finanzberechnungen volle Präzision halten und nur beim Anzeigen runden.
Veraltete Kurse nutzen. Wenn deine zwei Quellkurse 30 Sekunden auseinander geholt wurden, ist die daraus gebaute Cross intern inkonsistent. Hole beide in einem einzigen API-Aufruf (genau das macht ?symbols=A,B,C in der Finexly-API), damit sie denselben Zeitstempel haben.
Werktag- und Wochenenddaten mischen. Forex-Märkte schließen am Wochenende. Wenn dein Cron-Job EUR/USD am Freitag um 17:01 EST und USD/JPY am Freitag um 16:59 EST gezogen hat, mischst du eventuell Live- und veraltete Daten. Standardisiere alle Kurs-Abrufe auf einen einzigen Marktzeitstempel. Wir vertiefen das in unserem Forex-Marktöffnungszeiten-Guide.
Den Spread bei Transaktionen ignorieren. Mid-Market-Cross-Rates aus Mid-Market-Quellen sind gut für die Anzeige, aber wenn echtes Geld bewegt wird, brauchst du je nach Trade-Richtung Bid oder Ask. Modelliere den Spread explizit im Code, statt dich auf den Mid-Kurs zu verlassen.
Häufig gestellte Fragen
Was ist ein Kreuzwechselkurs in einfachen Worten?
Es ist der Wechselkurs zwischen zwei Währungen, berechnet anhand der Wechselkurse jeder einzelnen gegen eine dritte gemeinsame Währung — typischerweise den US-Dollar. Zum Beispiel wird der EUR/JPY-Kurs aus EUR/USD und USD/JPY abgeleitet.
Gelten EUR/JPY und GBP/JPY als Cross Rates?
Ja, technisch schon. Sie enthalten den US-Dollar nicht und sind nach strenger Definition Crosses. Beide Paare werden allerdings so stark direkt gehandelt, dass sie eigene notierte Märkte haben und sich in der Praxis wie Hauptpaare verhalten.
Warum sind Cross Rates wichtig?
Cross Rates machen es möglich, Währungen zu bepreisen und zu handeln, zwischen denen es keinen liquiden direkten Markt gibt — also den Großteil aller Paare weltweit. Sie sind essenziell für grenzüberschreitende Zahlungen, Multi-Currency-Commerce und globale Finanzanalysen.
Kann ich eine Cross Rate ohne den US-Dollar als Brücke berechnen?
Ja. Jede gemeinsame Währung funktioniert als Brücke. EUR wird gelegentlich in europäisch geprägten Berechnungen genutzt, JPY in einigen asiatischen Märkten. USD ist Standard, weil mehr Paare gegen ihn notieren — das ergibt bessere Datenqualität.
Wie genau sind berechnete Cross Rates im Vergleich zu direkten Marktnotierungen?
Bei liquiden Crosses wie EUR/JPY oder GBP/CHF sind berechnete und direkte Kurse dank Arbitrage nahezu identisch. Bei illiquiden Crosses wie NGN/PHP ist der berechnete Kurs der einzige verfügbare Referenzpunkt — es gibt keinen separaten direkten Markt zum Vergleich.
Berechnet Finexly Cross Rates automatisch?
Ja. Du fragst nach einer beliebigen Basis und einer beliebigen Liste von Zielwährungen, und die API liefert konsistente Mid-Market-Cross-Rates. Du musst selbst nichts berechnen oder invertieren.
Loslegen mit Finexly
Bereit, Echtzeit-Cross-Rates in deiner Anwendung zu nutzen? Hol dir deinen kostenlosen Finexly-API-Key — keine Kreditkarte nötig. Im Free-Plan bekommst du 1.000 Requests pro Monat und kannst über unsere Pricing-Pläne skalieren, sobald dein Traffic wächst. Die API unterstützt über 170 Währungen und berechnet Cross Rates für jedes Paar nahtlos, sodass du dich auf dein Produkt konzentrieren kannst statt auf FX-Mathematik.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →