Een eenvoudige arbitrage bot bouwen tussen Kraken en Coinbase
Stel je voor dat je €50 op Kraken ziet liggen voor één Bitcoin, terwijl diezelfde Bitcoin op Coinbase €50,20 kost. Op het eerste gezicht is dat een klein verschil, maar in de wereld van algoritmische trading bots is dat precies waar de winst zit.
Je koopt op de goedkope beurs en verkoopt direct op de dure. Dat is arbitrage. In deze gids bouwen we een eenvoudige bot in Python die deze kansen tussen Kraken en Coinbase voor je zoekt en benut. We houden het simpel, praktisch en direct toepasbaar, zonder ingewikkelde wiskunde of onnodige rompslomp.
Wat is arbitrage eigenlijk?
Arbitrage is het profiteren van prijsverschillen tussen twee markten voor hetzelfde actief.
In crypto betekent dit dat je Bitcoin op Kraken koopt en direct op Coinbase verkoopt, of omgekeerd. Het mooie is dat je geen richting op de markt hoeft te voorspellen; je handelt puur op het tijdelijke verschil.
Denk aan een prijsverschil van €30 op een Bitcoin van €45.000. Dat lijkt klein, maar met een snelle bot en voldoende volume loopt het op. Waarom is dit belangrijk? Omdat de markt nooit perfect efficiënt is.
Door latency, verschillende volumes en handelsactiviteit ontstaan er voortdurend kleine gaten. Een bot kan die gaten vinden sneller dan jij handmatig kunt klikken.
Bovendien helpt het om emotie uit te schakelen: je bot handelt volgens regels, niet op basis van angst of hebberigheid. Zo blijft je risicomanagement strak. Let wel: arbitrage is geen gratis geld.
Je rekening moet voldoende saldo hebben op beide exchanges, je moet transactiekosten meenemen en rekening houden met opname- en stortingslimieten. Een bot helpt je efficiënt te zijn, maar het is geen magische geldprinter.
De kern: hoe de bot werkt tussen Kraken en Coinbase
Onze bot draait om drie simpele stappen: prijzen uitlezen, verschil berekenen en handelen als het de moeite waard is.
We gebruiken de API’s van Kraken en Coinbase, die beide goed gedocumenteerd zijn. In Python pakken we de bibliotheken requests voor HTTP-verzoeken en eventueel websockets voor snellere data. Je kunt ook een wrapper als ccxt gebruiken, maar we blijven dicht bij de native API’s voor maximale controle.
Eerst de prijzen. Kraken levert een ticker via /0/public/Ticker?pair=XBTUSD. Coinbase gebruikt /v2/prices/BTC-USD/spot.
Beide geven je een actuele prijs. Je script haalt elke seconde de data op, vergelijkt de koersen en berekent het verschil.
Zorg dat je timestamps vergelijkt om clock-skew te voorkomen. Vervolgens de rekenlogica. Neem een voorbeeld: Kraken €45.000, Coinbase €45.030. Verschil €30. Transactiekosten liggen rond 0,16% maker/taker op Kraken en 0,5% op Coinbase (afhankelijk van volume).
Op €45.000 is 0,16% ongeveer €72, op Coinbase €225. Je arbitragewinst moet dus groter zijn dan deze kosten plus eventuele opnamekosten.
Een eenvoudige formule: winst = verkoopprijs - aankoopprijs - kosten - risico-buffer. De bot moet een drempelwaarde instellen. Stel je wilt minimaal €10 winst per trade na kosten.
Pas als het verschil groter is dan deze drempel, wordt er gehandeld.
Dit voorkomt onnodige trades en houdt je risicomanagement stabiel. Timing is cruciaal. Je bot moet orderboeken bekijken, niet alleen de mid-price.
Soms is de spread groot, maar is er weinig diepte. Je wilt weten of je genoeg volume kunt kopen op de goedkope exchange en verkopen op de dure, zonder de markt te verstoren.
Varianten, modellen en een realistisch voorbeeld
Er zijn verschillende arbitragemodellen. De eenvoudigste is simultane arbitrage: je koopt en verkoopt direct, zonder blootstelling aan koersrisico.
Een andere optie is latency arbitrage, waarbij je snellere datafeed gebruikt dan andere handelaren.
Dit is complexer en vereist snelle infrastructuur. Een derde is triangular arbitrage binnen één exchange, bijvoorbeeld BTC → ETH → EUR → BTC, maar dat gaat nu te ver voor een eenvoudige bot. Stel je ziet dit verschil: Kraken €45.000, Coinbase €45.040. Verschil €40.
Kosten: Kraken €72, Coinbase €225, totaal €297. Zonder hefboom is dit niet winstgevend.
Pas als het verschil groter is dan €350, wordt het interessant. In de praktijk zie je soms kortstondige pieken van €100–€200 verschil, vooral tijdens nieuws of grote orderboekverstoringen. Je bot moet die pieken snel herkennen. Een praktisch model: limietorders plaatsen op beide exchanges.
Op Kraken koop je met een limietorder op de biedkant, op Coinbase verkoop je met een limietorder op de vraagkant.
Zo beheers je de uiteindelijke prijs en voorkom je dat je te veel betaalt door spread. Je bot kan de orderstatus blijven monitoren en annuleren als de prijs te snel beweegt. Een andere variant is risicogestuurd handelen.
Je stelt een maximum bedrag per trade in, bijvoorbeeld €5.000 in Bitcoin. Dat beperkt je exposure, zodat je niet per ongeluk tradt in illiquide shitcoins met een te grote bot-positie als er iets misgaat.
Je kunt ook een daily loss limit instellen, bijvoorbeeld €200 per dag. Zo blijft het risico beheersbaar en voorkom je grote klappers.
Praktische tips voor een soepele bot
Begin klein. Test je bot met een demo-account of met heel kleine bedragen.
Kraken en Coinbase hebben beiden een sandbox-omgeving of paper trading-mogelijkheden. Zo leer je de API kennen zonder echt geld op het spel te zetten. Beveiliging is essentieel.
Gebruik API-sleutels met alleen trade-permissies, nooit withdraw. Pas goede veiligheidsmaatregelen voor je crypto trading bot toe en bewaar je sleutels veilig, bijvoorbeeld in environment variables en niet in je code.
Zet tweefactorauthenticatie aan op beide exchanges. Monitor je logs.
Je bot moet elke actie loggen: prijs, verschil, order-id, uitvoeringstijd en kosten. Als er iets misgaat, kun je snel terugkijken. Een simpel bestand of database volstaat; je hoeft niet meteen een complex monitoring-systeem te bouwen. Plan je onderhoud.
Exchanges updaten hun API’s af en toe. Zorg dat je bot fouten afvangt (bijv.
429 rate limits) en retries doet met backoff. Test regelmatig of je prijzen nog kloppen en of je orders goed uitvoeren. En tot slot: houd rekening met kosten.
Naast handelskosten zijn er soms netwerk- en opnamekosten. Als je Bitcoin tussen exchanges verplaatst, betaal je netwerkvergoedingen.
Een veelgebruikte aanpak is fiat-gebaseerde arbitrage: koop BTC op Kraken met euro’s, verkoop op Coinbase voor euro’s, en houd het saldo in fiat om transfers te minimaliseren.
Checklist voor je eerste arbitrage-bot
- API-toegang: Kraken en Coinbase met trade-permissies
- Python-omgeving: requests, eventueel ccxt, logging
- Prijsvergelijking: haal elke seconde data op, vergelijk mid-prices
- Cost calculation: neem maker/taker fees en eventuele netwerkkosten mee
- Drempelwaarde: minimaal €10–€50 winst na kosten, afhankelijk van volume
- Orderstrategie: limietorders op beide kanten, monitor en annuleer indien nodig
- Risicomanagement: max bedrag per trade, daily loss limit, API-beveiliging
- Logging & monitoring: elke actie vastleggen, errors afvangen en retries
Met deze stappen bouw je een eenvoudige, effectieve arbitrage bot die prijsverschillen tussen Kraken en Coinbase voor je benut. Het is een praktisch project waarmee je algoritmische trading begrijpt, risicomanagement toepast en direct resultaat ziet. Blijf experimenteren, verbeter je drempelwaarden, houd de kosten scherp en vergeet niet om belastingrapportages te genereren voor je crypto trades. Veel succes!
