Git en GitHub voor traders: Hoe beheer je de versies van je code?
Stel je voor: je hebt eindelijk je Python-script voor een handelsbot op Interactive Brokers of Alpaca aan de praat. De backtests zien er veelbelovend uit met een Sharpe ratio van 1.5.
Je voert een kleine tweak door aan je risicomanagement-logica, sluit je laptop, en gaat slapen.
De volgende dag werkt alles niet meer. Je weet niet meer precies wat je veranderd hebt en hoe je terug moet naar de versie van gisteren. Herkenbaar? Dat is het moment dat je Git en GitHub nodig hebt. Dit is je onzichtbare veiligheidsnet, je tijdmachine en je samenwerkingstool in één, specifiek voor de chaos van algoritmisch traden.
Wat je in huis moet halen
Voordat we beginnen, even checken of je spullen klaarstaan. Dit is geen urenlang gedoe; je bent in 15 minuten klaar om je eerste repository te initialiseren.
- Een computer met toegang tot de commandolijn: Voor Windows is dat PowerShell of Command Prompt, voor macOS en Linux is het Terminal. Je hoeft geen expert te zijn, alleen maar commando's te kunnen typen.
- Git geïnstalleerd: Download de nieuwste versie (rond versie 2.40+) van de officiële Git-website. Het installatieproces is standaard, klik op 'Next' tot het klaar is.
- Een code editor: Gebruik Visual Studio Code (VS Code). Het is gratis, populair en heeft ingebouwde ondersteuning voor Git. Zorg dat je de basisinstellingen hebt doorlopen.
- Een GitHub-account: Ga naar github.com en maak een gratis account aan. Kies een username die je professioneel vindt, bijvoorbeeld je eigen naam of iets als 'QuantTrader01'.
- Jouw trading code: Zorg dat je Python-bestanden (bijvoorbeeld
main.py,backtest_engine.pyofrisk_manager.py) in een map op je computer staan. Je hoeft nog niets te draaien.
Stap 1: Je lokale project opzetten (de basis)
Deze stap zorgt ervoor dat je computer begrijpt dat dit een speciaal project is waarvan je de geschiedenis wilt bijhouden.
- Open je terminal (of PowerShell).
- Navigeer naar de map waar je trading code staat. Gebruik het commando
cd pad/naar/jouw/map. Bijvoorbeeld:cd Documents/TradingBots/MomentumStrategie. - Typ het commando
git initen druk op Enter. Je ziet een korte bevestiging. Dat is het; je lokale repository is geboren. - Check de status met
git status. Je ziet nu rode namen van bestanden die nog niet 'gevolgd' worden. Dat is normaal. - Maak een
.gitignorebestand aan. Dit is cruciaal voor traders. Open een tekstbestand, voeg deze regels toe, en sla het op als.gitignorein je map:__pycache__/(tijdelijke Python bestanden)*.env(bestand met je API keys, nooit delen!)data/*.csv(grote data bestanden hoef je niet te versiebeheer).ipynb_checkpoints/(Jupyter rommel)
Dit doe je één keer per project. Tijdsindicatie: 5 minuten.
Veelgemaakte fout: Vergeten een .gitignore aan te maken.
Je commit per ongeluk je API-sleutels (keys) naar een openbare repository. Dit is een groot veiligheidsrisico. Maak dit direct goed.
Stap 2: De eerste versie vastleggen (commit)
Een 'commit' is een snapshot van je code op een specifiek moment. Je kunt dit zien als het opslaan van een level in een game, maar dan met een beschrijving erbij.
- Typ
git add .in je terminal. Hiermee zeg je tegen Git: "Pak alles wat in deze map zit, behalve wat in .gitignore staat". - Typ
git status. De namen moeten nu groen zijn. Ze staan klaar om opgeslagen te worden. - Typ
git commit -m "Initial commit: basis script met IBKR API connectie". De tekst tussen de aanhalingstekens is essentieel. Wees specifiek. Schrijf nooit "update" of "fix". - Wil je zien wat er allemaal is gebeurd? Typ
git log --oneline. Je ziet nu je eerste commit met een unieke code (zoalsa1b2c3d).
Tijdsindicatie: 2 minuten.
Veelgemaakte fout: Commit messages schrijven als "iets aangepast". Over 2 maanden weet je niet meer *wat* je hebt aangepast en *waarom*.
Voeg context toe: "Verlaagde stop-loss naar 2% op basis van backtest data van 2023".
Stap 3: Uploaden naar GitHub (de cloud)
Nu je lokale versie goed staat, wil je deze online zetten. Dit dient als backup en maakt het makkelijker om later op een andere computer verder te werken.
- Log in op GitHub.
- Klik rechtsboven op het '+' icoon en selecteer "New repository".
- Vul een naam in, bijvoorbeeld
AlgoTradingBot-IBKR. Laat de rest op 'Public' of 'Private' (wat jij wilt). Vink NIET de optie "Add a README file" aan, want die hebben we lokaal nog niet. - Klik op "Create repository".
- GitHub laat nu een scherm zien met commando's. Kopieer de regel die begint met
git remote add origin...en plak deze in je terminal. Druk op Enter. - Kopieer de volgende regel, die begint met
git push -u origin main(of 'master'), en plak deze in je terminal. - GitHub vraagt nu om je username en wachtwoord. Let op: tegenwoordig werkt dit vaak via een 'Personal Access Token' (PAT) in plaats van je wachtwoord. Volg de instructies van GitHub als je hier om vraagt.
Tijdsindicatie: 5 minuten.
Veelgemaakte fout: De repository online aanmaken met een README file, terwijl je die lokaal ook hebt. Dit veroorzaakt een conflict. Volg de stappen in volgorde: lokaal init, dan online aanmaken, dan pushen.
Stap 4: De dagelijkse workflow (werken met branches)
Dit is de manier waarop professionals werken. Voordat je wijzigingen doorvoert, is het verstandig om unit testing voor trading bots toe te passen. Je wilt nooit direct in je 'main' code sleutelen, want dat is je stabiele versie.
Als je een nieuwe strategie test of je risicomanagement aanpast, maak je een 'tak' (branch).
- Typ
git checkout -b mean-reversion-strat. Je maakt een nieuwe branch en schakelt er direct naartoe. Je werkt nu in een veilige omgeving. - Voeg je nieuwe Python-bestand toe, bijvoorbeeld
mean_reversion.py. - Test je code lokaal. Zorg dat ie draait (geen syntax errors).
- Commit de wijzigingen:
git add .engit commit -m "Toegevoegd: mean reversion logica op basis van 5-min candles". - Push je nieuwe branch naar GitHub:
git push origin mean-reversion-strat.
Stel, je wilt een nieuwe 'Mean Reversion' strategie toevoegen: Op GitHub zie je nu een melding dat je een 'Pull Request' (PR) kunt aanmaken. Dit is een verzoek om jouw nieuwe code samen te voegen met de hoofdcode.
Je kunt hier ook comments aan jezelf toevoegen of collega's vragen om te reviewen. Tijdsindicatie: Per wijziging 3-10 minuten.
Veelgemaakte fout: Je branch nooit updaten met de laatste versie van de main code. Als de main code intussen is veranderd, kan het samenvoegen later problemen geven ('merge conflicts').
Stap 5: Veelvoorkomende problemen oplossen
Als trader wil je snel schakelen. Voordat je begint, is het slim om eerst een Python virtuele omgeving in te richten. Hier zijn drie scenario's en hoe je ze oplost met Git.
Scenario A: Je hebt iets kapotgemaakt en wilt terug naar gisteren.
Typ git log --oneline. Kopieer de code van de commit van gisteren (bijv. a1b2c3d). Typ daarna git checkout a1b2c3d. Je bestanden zijn nu terug in die staat.
Om weer verder te kunnen werken, maak je een nieuwe branch: git checkout -b fix-bug-van-gisteren. Scenario B: Je bent je wachtwoord van GitHub vergeten.
Geen paniek.
Ga naar GitHub instellingen en maak een 'Personal Access Token' (Classic) aan.
Geef deze rechten voor 'repo'. Gebruik dit token als wachtwoord wanneer de terminal erom vraagt. Sla het op in een wachtwoordmanager zoals 1Password of Bitwarden, en vergeet niet om je trading server te beveiligen tegen brute-force.
Scenario C: Je wilt weten wat er in een backtest script is veranderd sinds vorige week.
Typ git diff. Dit laat exact zien welke regels code zijn toegevoegd (groen) of verwijderd (rood).
Handig om te checken of je per ongeluk je stop-loss logica hebt aangepast. Veelgemaakte fout: De fout niet herhalen. Als je een conflict krijgt bij het samenvoegen, forceer het niet zomaar. Open de betreffende bestanden en kies welke code je wilt houden (jouw nieuwe of de oude main).
Verificatie-checklist
Check even of je de basis goed hebt staan. Beantwoord deze vragen met 'Ja'.
- Is Git geïnstalleerd en werkt
git --versionin je terminal? - Heb je een map met je trading code waar een verborgen
.gitmap in zit? (Check metls -aop Mac/Linux ofdir /aop Windows). - Staat je
.gitignorebestand in je map en bevat het*.env? - Is je code te zien op je GitHub profiel?
- Kun je
git statustypen en begrijp je wat de output betekent (welke bestanden nieuw of aangepast zijn)? - Heb je minimaal 2 commits gemaakt met een duidelijke boodschap?
Als je hier ja op hebt, ben je al verder dan 80% van de beginnende traders. Je hebt nu een professionele set-up voor je algoritmische handel. Veel succes met je backtests!
