Terug naar Blog

Vaste vs zwevende wisselkoersen: ontwikkelaarsgids voor valutaregimes (2026)

V
Vlado Grigirov
May 03, 2026
Exchange Rates Currency API Forex Education Developer Guide Finexly

Vaste vs zwevende wisselkoersen: ontwikkelaarsgids voor valutaregimes (2026)

Wie ooit een valuta-API heeft bevraagd en zag dat USD/HKD amper beweegt terwijl USD/JPY voor de lunch 200 pips uithaalt, kent in het wild al het verschil tussen vaste en zwevende wisselkoersen. Beide regimes zien er vanaf de buitenkant identiek uit — beide leveren een getal in dezelfde JSON-respons — maar ze gedragen zich totaal anders, en de apps die je erop bouwt moeten dat weten.

Deze gids legt vaste vs zwevende wisselkoersen uit vanuit ontwikkelaarsperspectief. We bespreken hoe elk regime werkt, welke valuta in 2026 in welk kamp zitten, hoe je een regime programmatisch detecteert via een valuta-API, en hoe je code schrijft die niet omvalt zodra een peg breekt. Aan het eind weet je precies wat je moet verwachten van elke koers die je app aanraakt — en welke defensieve code je moet uitrollen voordat je het op de harde manier ontdekt.

Wat is een vaste wisselkoers?

Een vaste wisselkoers (ook gepegde koers of peg genoemd) is er één waarbij de centrale bank de waarde van haar valuta bewust op een doelniveau houdt tegenover een andere valuta, een mandje of — historisch — een grondstof zoals goud.

De peg wordt in stand gehouden via één van twee mechanismen:

  1. Actieve interventie — de centrale bank koopt of verkoopt de eigen valuta op de open markt met deviezenreserves zodra de koers van het doel afdrijft.
  2. Currency board — de binnenlandse valuta wordt volledig gedekt door reserves van de ankervaluta in een vaste verhouding. Elke uitgegeven eenheid is 1-op-1 (of in de peg-verhouding) gedekt door reserves op de balans van de centrale bank.

De Hongkongse dollar bijvoorbeeld is sinds 1983 onder een currency board verankerd aan de Amerikaanse dollar op ongeveer HKD 7,80 = USD 1,00. De Saoedische riyal houdt al sinds 1986 SAR 3,75 = USD 1,00. Allebei lesboek-hard pegs.

Hard pegs, soft pegs en crawling pegs

Niet alle vaste regimes zijn gelijk. Het IMF rangschikt pegs op een spectrum:

  • Hard peg — volledig vast op één koers, zonder uitzondering verdedigd (HKD, SAR, AED, BHD).
  • Conventionele peg — vast op een doelniveau binnen een smalle band (typisch ±1%), met interventie van de centrale bank (DKK aan EUR, JOD, OMR).
  • Crawling peg — het doelniveau verschuift volgens een vooraf aangekondigd schema, meestal om inflatieverschillen te beheren (historisch Vietnam en enkele Latijns-Amerikaanse landen).
  • Stabilized arrangement — de koers blijft minstens zes maanden in een smalle band zonder dat een peg formeel is verklaard (de de facto IMF-categorie).

Voor ontwikkelaars maakt dit uit omdat het volatiliteitsprofiel per regime verschilt — een hard peg beweegt in basispunten, een crawling peg met een bekend dagbedrag, een stabilized arrangement kan op elk moment van klassering veranderen.

Wat is een zwevende wisselkoers?

Een zwevende wisselkoers wordt door de valutamarkt bepaald — vraag en aanbod van traders, importeurs, exporteurs, centrale banken, hedgers en speculanten duwen de prijs realtime. Geen doelniveau, geen interventieplicht.

De meeste grote valuta zweven: USD, EUR, GBP, JPY, AUD, CAD, NZD, CHF, NOK, SEK, MXN, BRL, ZAR en de meeste andere vrij verhandelbare eenheden. Samen vertegenwoordigen ze het overgrote deel van de circa 7,5 biljoen dollar dagelijkse omzet die de BIS rapporteerde in haar Triennial Survey 2022 — een aandeel dat sindsdien alleen maar is gegroeid.

Pure float vs managed float

In de praktijk is "zwevend" een continuüm:

  • Free float / pure float — de centrale bank intervenieert niet. De valuta gaat waar de markt haar brengt. USD, EUR en AUD zijn lesboekvoorbeelden.
  • Managed float (dirty float) — de centrale bank intervenieert af en toe om overmatige volatiliteit te dempen of eenrichtingsbewegingen te ontmoedigen, maar verdedigt geen specifiek niveau. De Japanse yen is het bekende voorbeeld; de BoJ greep openlijk in in 2022, 2024 en opnieuw begin 2026 toen USD/JPY psychologische niveaus brak.

Vanuit ontwikkelaarsperspectief is de lijn tussen managed float en stabilized arrangement vaag, en valuta kunnen die lijn oversteken. Hardcode dus nooit aannames over hoeveel een valuta "zou moeten" bewegen.

Waarom dit voor ontwikkelaars uitmaakt

Verleidelijk om alle wisselkoersen als één probleem te behandelen: endpoint, getal, vermenigvuldigen, deployen. Maar het regime achter een quote bepaalt vrijwel alles wat in productie telt:

  • De updatefrequentie die je echt nodig hebt. Een gepegde valuta heeft zelden subseconde-polling nodig. Een grote zwevende valuta wel.
  • Hoe ruim je toleranties moeten zijn. 1% in HKD/USD is voorpagina; 1% in EUR/USD is dinsdag.
  • Wat "verouderde data" betekent. Een spot-quote van 30 minuten geleden volstaat voor SAR/USD-facturatie; gevaarlijk voor live JPY-trading.
  • Hoe je outliers behandelt. Een HKD-spike buiten de band kan een echte breuk zijn of slechte data. Zwevende valuta vragen andere anomalielogica.
  • Of je überhaupt forwards nodig hebt. Forward en spot convergeren bij hard pegs strak via interest rate parity; bij zwevende valuta divergeren ze.

Eén volatiliteitsmodel bouwen voor elke valuta in je app is de meest voorkomende fout die we in code reviews zien. Het IMF rangschikt momenteel ongeveer 80 economieën in een vorm van vast of stabilized arrangement en 65 als zwevend of vrij zwevend. Je code zou moeten weten welke welke is.

Belangrijkste gepegde valuta in 2026

Werklijst van de meest actief gepegde valuta die je app waarschijnlijk tegenkomt, op basis van het laatste IMF Annual Report on Exchange Arrangements:

ValutaCodeGepegd aanKoers ca.Regime
Hongkongse dollarHKDUSD7,80 (band 7,75–7,85)Currency board
Saoedische riyalSARUSD3,75Conventionele peg
VAE-dirhamAEDUSD3,6725Conventionele peg
Bahreinse dinarBHDUSD0,376Conventionele peg
Qatarese riyalQARUSD3,64Conventionele peg
Omaanse rialOMRUSD0,385Conventionele peg
Jordaanse dinarJODUSD0,709Conventionele peg
Libanees pondLBPUSD (de jure)instabielCrisisregime
Deense kroonDKKEUR7,46 (ERM II ±2,25%)Conventionele peg
Bulgaarse levBGNEUR1,9558Currency board
West-Afrikaanse CFA-frankXOFEUR655,957Conventionele peg
Centraal-Afrikaanse CFA-frankXAFEUR655,957Conventionele peg
Comorese frankKMFEUR491,968Conventionele peg
CFP-frankXPFEUR119,3317Conventionele peg
Wat dit in echte code oplevert:

  • Het Golfblok is feitelijk één valuta (USD) met zes verschillende ISO-codes.
  • Het euro-anker-blok is groter dan veel devs denken — DKK, BGN, CFA-franken en andere bewegen alsof ze euro's zijn.
  • Eén peg in de tabel is gebroken. Het Libanees pond heeft een de jure peg maar handelt aan veelvouden op de parallelle markt; vertrouw nooit alleen op de officiële koers.

Belangrijkste zwevende valuta in 2026

Ter vergelijking omvat de zwevende kant het verwachte plus een lange staart aan opkomende markten:

  • G10-majors: USD, EUR, JPY, GBP, CHF, AUD, CAD, NZD, NOK, SEK
  • Actief zwevende EM: MXN, BRL, ZAR, INR, IDR, KRW, TWD, TRY, PLN, HUF, CZK, ILS, CLP, COP, PEN, THB, PHP, MYR
  • Grondstof-gekoppelde zwevende: AUD, CAD, NZD, NOK, BRL, ZAR — sterk gecorreleerd met olie en grondstoffen.

Bevraag je deze via de Finexly-API, reken dan op beweging elke seconde dat de relevante markt open is. Polling, caching en foutafhandeling hierop afstemmen.

Valutaregimes programmatisch detecteren

Je hoeft de regimelijst niet handmatig bij te houden — een redelijke benadering volgt uit de data zelf. Een klein Python-hulpje dat een paar classificeert op 30-daagse gerealiseerde volatiliteit via Finexly's historische endpoint:

import os
import statistics
from datetime import date, timedelta
import requests

API_KEY = os.environ["FINEXLY_API_KEY"]
BASE = "https://api.finexly.com/v1"

def regime(base: str, quote: str, days: int = 30) -> dict:
    end = date.today()
    start = end - timedelta(days=days)
    url = f"{BASE}/timeseries"
    params = {
        "base": base,
        "symbols": quote,
        "start_date": start.isoformat(),
        "end_date": end.isoformat(),
        "api_key": API_KEY,
    }
    rates = requests.get(url, params=params, timeout=10).json()["rates"]
    series = [day[quote] for day in rates.values()]
    returns = [
        (series[i] / series[i - 1]) - 1
        for i in range(1, len(series))
    ]
    vol = statistics.pstdev(returns) * (252 ** 0.5)  # annualized
    if vol < 0.005:
        label = "hard peg"
    elif vol < 0.02:
        label = "soft peg / stabilized"
    elif vol < 0.10:
        label = "managed float"
    else:
        label = "free float"
    return {"pair": f"{base}/{quote}", "annual_vol": round(vol, 4), "regime": label}

for pair in [("USD", "HKD"), ("USD", "SAR"), ("EUR", "DKK"),
             ("USD", "JPY"), ("USD", "TRY"), ("EUR", "USD")]:
    print(regime(*pair))

Typische output:

{'pair': 'USD/HKD', 'annual_vol': 0.0021, 'regime': 'hard peg'}
{'pair': 'USD/SAR', 'annual_vol': 0.0008, 'regime': 'hard peg'}
{'pair': 'EUR/DKK', 'annual_vol': 0.0009, 'regime': 'hard peg'}
{'pair': 'USD/JPY', 'annual_vol': 0.0918, 'regime': 'managed float'}
{'pair': 'USD/TRY', 'annual_vol': 0.2771, 'regime': 'free float'}
{'pair': 'EUR/USD', 'annual_vol': 0.0734, 'regime': 'managed float'}

De drempels hierboven zijn pragmatisch, niet academisch — pas ze aan je tolerantie aan. Belangrijkste idee: je code moet reageren op gerealiseerde volatiliteit, niet op verklaringen.

cURL-equivalent voor losse checks:

curl "https://api.finexly.com/v1/timeseries?base=USD&symbols=HKD&start_date=2026-04-01&end_date=2026-05-01&api_key=$FINEXLY_API_KEY"

En dezelfde gedachte in JavaScript voor browserdashboards:

async function realizedVol(base, quote) {
  const end = new Date().toISOString().slice(0, 10);
  const start = new Date(Date.now() - 30 * 86400e3).toISOString().slice(0, 10);
  const url = `https://api.finexly.com/v1/timeseries?base=${base}&symbols=${quote}&start_date=${start}&end_date=${end}&api_key=${process.env.FINEXLY_API_KEY}`;
  const data = await fetch(url).then(r => r.json());
  const series = Object.values(data.rates).map(d => d[quote]);
  const rets = series.slice(1).map((v, i) => v / series[i] - 1);
  const mean = rets.reduce((a, b) => a + b, 0) / rets.length;
  const variance = rets.reduce((a, b) => a + (b - mean) ** 2, 0) / rets.length;
  return Math.sqrt(variance) * Math.sqrt(252);
}

console.log(await realizedVol("USD", "HKD"));
console.log(await realizedVol("USD", "JPY"));

Peg-breuken afhandelen: als een "stabiele" valuta plots niet meer stabiel is

De gevaarlijke faalmodus voor ontwikkelaars is niet de trage drift maar de plotselinge breuk. Voorbeelden te over:

  • Zwitserland, januari 2015 — de SNB liet de EUR/CHF 1,20-bodem zonder waarschuwing los; de frank schoot in minuten zo'n 30% omhoog. Meerdere FX-brokers gingen failliet.
  • Argentinië, december 2023 — de officiële peso werd hard gedevalueerd; apps die alleen de officiële koers gebruikten gaven onzinnige resultaten aan gebruikers die op de parallelle markt handelden.
  • Egypte, maart 2024 — na een lange gemanagede devaluatie werd de EGP feitelijk overnight zwevend; USD/EGP verdubbelde op één dag.

Een robuuste integratie behandelt elke "vaste" koers als vast tot het tegendeel bewezen is. Twee defensieve patronen die de moeite zijn om standaard mee te shippen:

  1. Plausibiliteitsbanden met circuit breakers. Cache een verwachte band per paar; als de live quote eruit valt, weiger de conversie en sla alarm in plaats van foutief te prijzen.
  2. Multi-source corroboratie. Voor bedrijfskritieke conversies vergelijk je de koers van je primaire provider met een onafhankelijke referentie. Mismatch betekent dat ergens iets fout zit — bron, cache of werkelijkheid.

Minimale Python-wrapper voor sanity check:

EXPECTED = {
    ("USD", "HKD"): (7.75, 7.85),
    ("USD", "SAR"): (3.74, 3.76),
    ("EUR", "DKK"): (7.43, 7.49),
}

def safe_rate(base, quote, live_rate):
    band = EXPECTED.get((base, quote))
    if band and not (band[0] <= live_rate <= band[1]):
        raise ValueError(
            f"{base}/{quote} = {live_rate} outside expected band {band}; "
            "possible peg break or bad data — alert ops before pricing."
        )
    return live_rate

Precies de code die voorkomt dat een incidentrapport van dinsdagochtend uitloopt op een terugbetaalcyclus dinsdagmiddag.

Apps bouwen die beide regimes overleven

Aanbevolen checklist voor teams die in 2026 multi-currency producten uitrollen:

  • Tag elke ondersteunde valuta met haar regime (hard peg, conventionele peg, managed float, free float) tijdens build, en gebruik de tag als feature flag voor cache, alerts en UI.
  • Stel cache-TTL's in per regime. 24 uur is prima voor een hard peg; 30 seconden past beter bij een grote zwevende, en een WebSocket-feed is nog beter voor trading-apps.
  • Toon het regime aan de gebruiker als dat helpt. "Gepegd aan USD — meestal stabiel" stelt internationale shoppers gerust; "Volatiel — koers werkt vaak bij" stuurt verwachtingen op EM-checkouts goed.
  • Test breuk-scenario's in staging. Injecteer een synthetische 5%-beweging in een gepegd paar en verifieer dat je circuit breakers afgaan.
  • Abonneer op centrale-bank-kalenders. HKMA, SAMA en BCEAO publiceren vergaderingen; grote peg-wijzigingen zijn zeldzaam maar nooit voor altijd uitgesloten.
  • Gebruik een provider met volledige dekking. Finexly dekt 170+ valuta inclusief alle grote pegs, plus IMF-referentiekoersen en parallelle marktdata waar die bestaan. Zie prijsplannen voor gratis en betaalde tiers, of vergelijk valuta-API's als je alternatieven afweegt.

Veelgestelde vragen

Wat is het verschil tussen een vaste en zwevende wisselkoers?

Een vaste koers wordt door een centrale bank op een doelwaarde gehouden tegenover een andere valuta of mandje, doorgaans met reserves en interventie. Een zwevende koers wordt door vraag en aanbod bepaald, met weinig of geen interventie. Vaste zijn stabieler; zwevende reageren beter op economische omstandigheden.

Wat is beter, vast of zwevend?

Geen universeel beter regime — een afweging. Vaste geven voorspelbaarheid voor handel en inflatieverwachtingen, maar vereisen forse reserves en beperken het monetair beleid. Zwevende laten de centrale bank reageren op binnenlandse omstandigheden maar brengen valutavolatiliteit. De meeste grote open economieën zweven; kleine open economieën en olie-exporteurs peggen vaak.

Hebben de VS een vaste of zwevende koers?

De dollar zweeft vrij. De Fed mikt niet op een USD-niveau tegenover een andere valuta. Maar omdat zoveel valuta aan de dollar gepegd zijn, fungeert USD als feitelijk anker voor een aanzienlijk deel van het wereldwijde valutasysteem.

Wat gebeurt er als een peg breekt?

Een peg-breuk — een plotselinge, grote beweging in een eerder vastgehouden valuta — kan de valuta in uren met 10%, 30% of meer devalueren of revalueren. Apps die quotes niet valideren tegen verwachte banden kunnen verkeerd prijzen, op de verkeerde koers settelen of onzinnige getallen tonen. Implementeer altijd sanity checks voor gepegde paren.

Hoe zie ik aan data alleen of een valuta gepegd is?

Bereken de gerealiseerde volatiliteit van het paar tegen zijn anker over de afgelopen maand. Hard pegs annualiseren meestal onder 0,5%; zwevende boven 5–10%. De Python- en JavaScript-snippets eerder tonen één praktische implementatie. Combineer met de door het IMF gepubliceerde classificatie als referentie.

Aan de slag met Finexly

Klaar om realtime wisselkoersen te integreren die zowel met gepegde als zwevende valuta consistent werken? Haal je gratis Finexly-API-key — geen creditcard nodig. 1.000 requests per maand op het gratis plan, volledige toegang tot 170+ valuta inclusief alle grote pegs, en dezelfde JSON-structuur of je nu HKD of TRY bevraagt. Bouw één keer, behandel elk regime.

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 →