Waarom je ALTIJD een 'Requirements.txt' of 'Poetry' file moet gebruiken

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Foutmeldingen & Debugging Live Bots · 2026-02-15 · 9 min leestijd

Je hebt net een gave trading bot geschreven in Python. De backtests zien er mooi uit, de API van Interactive Brokers of Alpaca doet wat ie moet doen en je risicomanagement functies staan op punt.

Je zet de bot live, en drie dagen later crasht ie op een rare foutmelding. Het werkt niet meer op je server.

Wat is er gebeurd? Waarschijnlijk heb je geen Requirements.txt of Poetry bestand gebruikt. Dat is een pijnlijke maar makkelijk te voorkomen fout. Stel je voor dat je een machine bouwt.

Je hebt een specifieke moersleutel nodig, een bepaalde maat bout en een uniek onderdeel van een leverancier in Duitsland.

Als je de machine later opnieuw moet bouwen, maar je hebt geen lijst van die onderdelen, ben je de sjaak. Je gokt, je zoekt en uiteindelijk werkt het niet meer exact hetzelfde. Een requirements.txt of Poetry bestand is precies die lijst voor je code.

Wat zijn Requirements.txt en Poetry eigenlijk?

Stel je voor dat je een machine bouwt. Je hebt een specifieke moersleutel nodig, een bepaalde maat bout en een uniek onderdeel van een leverancier in Duitsland.

Als je de machine later opnieuw moet bouwen, maar je hebt geen lijst van die onderdelen, ben je de sjaak. Je gokt, je zoekt en uiteindelijk werkt het niet meer exact hetzelfde. Een requirements.txt of Poetry bestand is precies die lijst voor je code. Een requirements.txt is een simpel tekstbestandje.

Het bevat een lijst met alle Python bibliotheken (packages) die je bot nodig heeft. Denk aan pandas voor data-analyse, numpy voor wiskunde, ccxt voor crypto-exchanges of ib_insync voor Interactive Brokers.

Elk package heeft een versienummer, bijvoorbeeld pandas==2.1.4. Dat cijfer is cruciaal.

Poetry is een modernere tool die hetzelfde doet, maar slimmer. Het beheert niet alleen je packages, maar ook de exacte versies van de onderliggende afhankelijkheden. Het werkt met een pyproject.toml bestand en een poetry.lock bestand.

Die lock file is een soort vingerafdruk van exacte versies. Het zorgt ervoor dat elke ontwikkelaar en elke server precies dezelfde code draait.

Waarom is dit zo belangrijk voor algoritmische trading? Omdat je live bot draait op een server, vaak bij een cloud provider zoals AWS EC2 (vanaf €10/maand) of DigitalOcean (vanaf €6/maand). Die server is een schone lei.

Zonder lijst moet je handmatig alle packages installeren. En als je dan per ongeluk een andere versie pakt, kan je API-call naar Binance of Kraken falen.

Je bot stopt met traden, en je mist winst of loopt verlies.

Waarom dit essentieel is voor je trading bot

Denk aan een typische situatie: je bot draait op een Raspberry Pi thuis of een VPS in de cloud.

Je doet een update aan je code, voegt een nieuwe risicomanagement functie toe met een library als QuantLib (vanaf €0, gratis open source). Je test het lokaal en het werkt.

Maar als je het naar de server pusht, crasht de bot. Waarom? Omdat je lokaal QuantLib versie 1.28 had, maar op de server installeerde pip standaard versie 1.30, die een bug heeft in de optie-prijsberekening voor je backtesting. Backtesting is een ander hoofdpijngebied. Je gebruikt libraries zoals Backtrader of Zipline voor Python backtesting.

Deze zijn gevoelig voor versies. Stel je hebt een strategy die afhankelijk is van pandas_ta voor technische indicatoren.

Als je requirements.txt niet specifiek is, installeert pip de nieuwste versie. Die nieuwe versie kan een functie hebben hernoemd, zoals 'rsi' naar 'rsi_indicator'. Je backtest script faalt plotseling, en je vertrouwt op verkeerde resultaten voor je live bot.

API's van brokers zoals Interactive Brokers, Alpaca of Degiro zijn ook kritiek. Ze gebruiken vaak specifieke Python wrappers.

Als je ib_insync versie 0.98 draait op je laptop, maar 0.99 op de server, kunnen de callback functies anders werken.

Je bot krijgt geen orderbevestiging en blijft hangen. Een requirements.txt of Poetry lock file voorkomt dit door consistentie te garanderen. Het bespaart je uren debuggen en potentieel duizenden euros aan verkeerde trades.

En vergeet risicomanagement niet. Je bot moet stop-losses en position sizing correct berekenen.

Libraries zoals numpy en scipy worden hier intensief voor gebruikt. Een kleine versieverschil kan floating-point fouten introduceren.

Je denkt dat je risico 1% is, maar het is 1.2%. Over 100 trades met €1000 per trade, is dat €200 extra verlies. Met een lock file weet je zeker dat je berekeningen identiek zijn in test en live.

Hoe ze werken: een praktische handleiding

Laten we beginnen met een requirements.txt. Open je terminal in je projectmap.

Typ eerst 'pip freeze > requirements.txt'. Dit maakt een lijst van alle packages die je nu hebt geïnstalleerd. Open het bestand.

Het ziet er zo uit: pandas==2.1.4, numpy==1.26.2, ccxt==4.2.31. Stuur dit bestand mee als je je code deelt via GitHub. Op een nieuwe server clone je de repo en typ je 'pip install -r requirements.txt'.

Binnen minuten heb je exact dezelfde omgeving. Maar pip freeze heeft een nadeel: het zet álles erin, inclusief onnodige packages.

Voor trading bots is dat oké, maar poets het bestand op. Verpak alleen wat je echt nodig hebt: pandas, numpy, ib_insync, backtrader, en misschien requests voor API calls. Voor een simpele bot heb je misschien 10-15 regels. Test je trading bot functies altijd eerst lokaal in een virtuele omgeving met 'python -m venv venv' en 'source venv/bin/activate' (of venv\Scripts\activate op Windows).

Poetry is krachtiger voor complexere bots. Installeer het eerst met 'pip install poetry'.

Start een nieuw project met 'poetry init'. Het vraagt naar je package naam, versie en afhankelijkheden. Voeg packages toe met 'poetry add pandas numpy ccxt'.

Poetry berekent de compatibiliteit en maakt een pyproject.toml en een poetry.lock. Die lock file is goud: het bevat exacte hashes van elke versie, zodat geen enkele update per ongeluk insluipt.

Om de omgeving te reproduceren, exporteer je de lock file naar een requirements-achtig bestand: 'poetry export -f requirements.txt --output requirements.txt'. Dit geeft je het beste van beide werden. Voor live bots op een server, gebruik je 'poetry install' om alles te installeren.

Het duurt iets langer (5-10 minuten voor een volledige bot), maar het is robuust. Prijzen voor Poetry? Het is gratis, open source.

Je betaalt alleen voor je server, zoals een AWS t3.micro instance voor €8-10 per maand.

Een specifiek voorbeeld voor trading: stel je bot gebruikt ccxt voor exchange data en pandas voor dataframes. Je backtest script importeert 'import ccxt' en 'import pandas as pd'. Als je geen lock file hebt, kan ccxt updaten naar een versie met een nieuwe API-sleutel structuur, wat vaak leidt tot de meest voorkomende Python fouten in trading scripts.

Je bot crasht omdat de exchange niet herkend wordt. Met poetry.lock blijft ccxt op 4.2.31, en je bot werkt elke keer hetzelfde.

Verschillen tussen modellen en kostenoverzicht

Requirements.txt is het klassieke model, perfect voor eenvoudige bots. Het is gratis en werkt met elke Python installatie.

Geen extra tools nodig. Voor een beginner met een bot die €500 per maand rendeert via Alpaca API, is dit voldoende. Je kunt het in 5 minuten opzetten.

De enige 'kost' is tijd: ongeveer 10-15 minuten om te leren en te testen.

Poetry is het moderne model, ideaal voor teams of complexe bots. Als je meerdere strategieën combineert, zoals trendvolgen en mean-reversion, met libraries als scikit-learn voor machine learning (gratis), dan is Poetry beter. Het voorkomt versieconflicten tussen, zeg, TensorFlow en pandas. Kosten: nul euro voor de tool zelf.

Maar je server moet krachtiger zijn; een VPS met 2GB RAM kost €10-15 per maand bij DigitalOcean, nodig voor de extra berekeningen. Voor risicomanagement bots die real-time data van brokers verwerken, is Poetry aan te raden.

Stel je gebruikt QuantLib voor optieprijzen (gratis). Een requirements.txt kan werken, maar als QuantLib een C++ afhankelijkheid heeft, kan pip dat soms vergeten. Poetry pakt dat beter op.

Prijzen voor professionele tools: als je een enterprise broker API zoals Bloomberg (€2000+/maand) gebruikt, is consistentie nog crucialer.

Maar voor retail traders met IBKR (€0 voor data, €2 per trade), is Poetry gratis en effectief. Vergelijk de onderhoudskosten: Met requirements.txt update je handmatig met 'pip install --upgrade package'. Dat kan elke week nodig zijn voor beveiligingspatches.

Met Poetry draai je 'poetry update' en het lost dependencies op. Voor een bot met 20 packages, bespaart Poetry 1-2 uur per maand aan onderhoud.

Als je uurloon €50 is, is dat €50-100 besparing. Kies based on je complexiteit: simple bot = requirements.txt, complexe multi-strategie bot = Poetry.

Praktische tips voor je trading setup

Begin altijd met een virtuele omgeving. Gebruik venv of conda. Voor een trading bot, test je omgeving met een mock API call.

Schrijf een simpel script dat 'import ccxt' doet en een prijs ophaalt van Binance (gratis).

Als het werkt, exporteer je de lijst. Doe dit voordat je live gaat.

Het voorkomt dat je om 2 uur 's nachts je server moet fixen omdat de bot crasht. Version control is je vriend. Push je requirements.txt of Poetry bestand naar GitHub na elke significante update.

Als je een nieuwe risicomanagement functie toevoegt, bijvoorbeeld een Kelly criterium berekening met numpy, update dan de lijst.

Gebruik branches voor experimenten. Op een cloud server zoals AWS, clone en installeer. Zet een cron job om elke dag je bot te herstarten met de juiste omgeving. Monitor je omgeving.

Gebruik tools als 'pip check' of 'poetry check' om fouten te vinden. Voor live bots, log de package versies in je bot output.

Als je een fout ziet, zoals 'module not found', weet je meteen wat het is.

Test backtests regelmatig met een kleine dataset (bijvoorbeeld 1 jaar AAPL data via Alpaca API). Als de resultaten veranderen zonder code aanpassingen, is er een versie issue. Specifieke tips voor je niche: Als je bot draait op een Raspberry Pi (€35-75), hou de lijst licht; minder dan 10 packages om geheugen te besparen.

Voor crypto bots met ccxt, test op meerdere exchanges om API-versie compatibiliteit te garanderen. Als je brokers zoals Degiro gebruikt (€0 account, €2 per trade), controleer of hun wrapper library up-to-date is. En altijd: backup je data.

Een requirements.txt redt je code, maar niet je verloren trades. Tot slot, maak het een gewoonte.

Voor elke bot die je bouwt, van simpele backtest tot live algo, start met deze bestanden. Het voelt als extra werk, maar fouten opsporen in je trading bots betaalt zich terug in gemoedsrust.

Je bot draait stabiel, je winst is voorspelbaar, en je nachtrust is veilig. Probeer het eens met een kleine bot op een €6/maand VPS en zie het verschil.

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Over Alex de Vries

Alex is een ervaren quantitatief analist en Python-ontwikkelaar die complexe trading concepten vertaalt naar begrijpelijke, praktische handleidingen voor zowel beginners als gevorderden.

Volgende stap
Bekijk alle artikelen over Foutmeldingen & Debugging Live Bots
Ga naar overzicht →