De rol van 'Intellectual Property' (IP): Hoe bescherm je je code?
Je hebt maandenlang gesleuteld aan je Python-bot. Je backtests op Interactive Brokers en Alpaca laten een scherpe equity curve zien.
Je API-sleutels zijn veilig opgeslagen. Klaar om te cashen, denk je. Maar dan komt die ene vraag op: wat als iemand je script jat?
Je hebt zomaar je meest waardevolle bezit in handen: je intellectuele eigendom (IP).
In de wereld van quant trading is je code je goudmijn. Je kunt die niet zomaar onbeschermd online gooien. Dit is hoe je je code en je bot beschermt, zonder dat je een fulltime jurist inhuurt.
Stap 1: De basis op orde – Gebruik een NDA
Voordat je überhaupt overweegt om je code te delen met een potentiële partner, investeerder of developer, moet je een geheimhoudingsverklaring (NDA) opstellen.
Zie het als een slot op je voordeur. Het is je eerste en belangrijkste verdedigingslinie.
Zonder NDA loop je het risico dat iemand je strategie kopieert en claimt dat het zijn idee was. Je hoeft geen duur advocatenkantoor in te schakelen voor een simpel NDA. Gebruik een template van een betrouwbare bron, maar pas het specifiek toe op je trading activiteiten. Wat je nodig hebt:
- Een simpel NDA-template (te vinden op sites als LegalZoom of lokale equivalenten, kost vaak €0-€50).
- De naam en contactgegevens van de persoon met wie je praat.
- Een duidelijke omschrijving van wat 'vertrouwelijke informatie' is (bijv.
- Download een template: Zoek online naar 'NDA template Nederland' of 'geheimhoudingsverklaring'. Kies er een die wederzijds is (mutual) of eenzijdig (one-way), afhankelijk van wie de info deelt.
- Specificeer je niche: Voeg een clausule toe dat alle data en code gerelateerd aan 'algoritmische handelsstrategieën, backtesting modellen op QuantConnect of Backtrader, en API-integraties met brokers zoals Interactive Brokers of Bux Zero' onder de overeenkomst vallen.
- Stuur het op: Deel het document voordat je een diepgaande technische discussie start. Zeg: 'Even voordat we verder praten, tekenen we even dit NDA. Dan kunnen we vrijuit spreken.'
- Check de handtekening: Zorg dat het ondertekend is voordat je ook maar één regel code laat zien.
'alle Python-code, backtest-data, API-sleutels en handelsstrategieën'). Tijdsindicatie: 30 minuten tot 1 uur om het goed in te vullen.
Veelgemaakte fout: Vergeten om een specifieke 'scope' toe te voegen.
'Code' is te algemeen. Noem expliciet de API's en de brokers. Ook: te laat tekenen. Doe het voor het eerste gesprek, zeker als je jouw bot wilt aanbieden voor copy trading.
Stap 2: Je code waterdicht maken – Licenties en repositories
Een NDA is een contract, maar je code zelf beschermen doe je met techniek en rechten. Je code is automatisch beschermd door auteursrecht op het moment dat je hem schrijft, maar dat is vaag.
Je moet actief bepalen wat anderen ermee mogen. De makkelijkste manier? Gebruik een licentie. Als je je code op GitHub of GitLab zet, kies je standaard voor 'private'. Maar wat als je een klein stukje openbaar wilt maken voor een portfolio?
- Kies een licentie:
- MIT: Super permissief. Iedereen mag je code gebruiken, zelfs voor commerciële doeleinden, mits ze jouw naam noemen. Handig als je snel naamsbekendheid wilt.
- GPL (v3): Streng. Als iemand je code gebruikt en verbetert, moeten ze die verbeteringen ook weer openbaar maken. Goed om te voorkomen dat bedrijven je code stiekem integreren in hun eigen gesloten systemen.
- Apache 2.0: Een middenweg. Mag commercieel gebruikt worden, maar gebruikers moeten aangeven dat ze jouw code hebben gebruikt.
- Voeg het bestand toe: Maak in je repository een bestand aan genaamd
LICENSE. Plak de tekst van je gekozen licentie erin (te vinden op choosealicense.com). - Lees de 'Terms of Service' van je broker: Als je een API van Interactive Brokers of Kraken gebruikt, check hun voorwaarden. Vaak mag je hun API niet reverse engineeren of gebruiken voor een eigen broker-dienst. Je licentie mag dit niet conflicteren.
- Gebruik Private Repos: Voor je volledige, winstgevende bot: hou hem privé. Betaal voor GitHub Pro (€4/maand) of gebruik GitLab's gratis private repos. Deel alleen publieke 'read-only' versies als het echt moet.
Wat je nodig hebt:
- Een GitHub of GitLab account (gratis).
- Een licentiebestand (LICENSE) in je repository.
- Kennis van de GPL, MIT of Apache 2.0 licenties.
Tijdsindicatie: 15 minuten.
Veelgemaakte fout: Zomaar een 'open source' licentie kiezen zonder na te denken. Als je je trading bot als SaaS wilt verkopen, wil je niet dat iemand anders hem gratis mag verspreiden. En vergeet niet: private repos zijn je vriend.
Stap 3: Code Obfuscation en API Keys
Stel je voor: je hebt je bot gedraaid op een VPS. Per ongeluk commit je je config.py met daarin je API-sleutels van Binance of Interactive Brokers.
Binnen een uur is je account leeggehaald. Dit is geen IP-diefstal, het is diefstal van je vermogen. Daarnaast wil je niet dat iemand je script reverse-engineert.
- Scheid credentials van code: Maak een bestand
.envaan. Zet hier je sleutels in:
IB_API_KEY=yourkey
IB_SECRET=yoursecret
Voeg.envtoe aan je.gitignorebestand. Zo belandt het nooit per ongeluk op GitHub. - Laad ze in Python: Gebruik
from dotenv import load_dotenvenload_dotenv()in je script om de sleutels te laden. - Obfusceer je script (als je het deelt): Als je een script moet distribueren (bijv. aan een klant), gebruik dan
pyarmor. Dit draait je Python-code om in een onleesbare binary.
Commando:pyarmor gen your_script.py
Dit maakt het moeilijker om je logica te stelen. Let op: het is geen waterdichte beveiliging, maar het houdt de meeste nieuwsgierige blikken tegen. - Vermijd hardcoden: Hardcode nooit bedragen, limieten of specifieke API-parameters in je hoofdscript. Zet die altijd in de
.envof een losseconfig.json.
Je moet je code 'obfusceren' (verminken) en je credentials veilig opbergen. Wat je nodig hebt:
- Python packages:
python-dotenvenpyarmor(of vergelijkbaar). - Een .env bestand. Tijdsindicatie: 20 minuten om in te richten, daarna 1 minuut per keer om te gebruiken.
.env file weliswaar niet committen, maar wel per ongeluk een screenshot van je code maken waar de sleutels op staan. Wees paranoid.
Stap 4: Bescherm je strategie, niet alleen je code
Een algoritmische trading strategie is vaak meer waard dan de code zelf. De code is slechts de uitvoering van het idee. Overweeg daarom goed de voor- en nadelen van open sourcing; een patent aanvragen op een handelsstrategie is in Europa namelijk bijna onmogelijk en extreem duur (denk aan €10.000+).
Bovendien duurt het jaren. Je hoeft niet naar de rechter om je IP te beschermen.
- Documenteer alles (intern): Schrijf je strategie uit in een 'whitepaper'. Leg uit: de marktinefficiëntie die je benut, de risicomanagement regels (hoeveel risico per trade?), de asset class (crypto, aandelen, forex). Dateer dit document. Dit is je bewijs dat jij de originator bent.
- Maak het 'Black Box': Verkoop nooit je code. Verkoop toegang tot de bot via een API. De klant stuurt data, jij stuurt een order terug. De klant ziet nooit de Python-code achter de
def strategy(). Dit is de gouden standaard voor Monetarisatie. - Gebruik een holding: Zet je code onder een BV of eenmanszaak. Als iemand je code steelt, spreek je ze aan als bedrijf, niet als privé-persoon. Dit beschermt je persoonlijke bezittingen.
- Non-Compete (optioneel): Als je iemand inhuurt om je bot te verbeteren (bijv. via Upwork), laat ze dan een 'Non-Compete' clausule tekenen. Hierin staat dat ze 2 jaar lang geen vergelijkbare trading bots mogen bouwen voor derden. Dit kost je €0, maar werkt afschrikwekkend.
Je kunt het strategisch aanpakken. Wat je nodig hebt:
- Een 'paper trail' (bewijs).
- Een juridische entiteit (eenmanszaak of BV).
Tijdsindicatie: 2 uur om een goed whitepaper te schrijven.
Veelgemaakte fout: Alles mondeling uitleggen. Als het niet op papier staat, bestaat het niet. Zorg voor een gedateerd document.
Verificatie-checklist: Is je code veilig?
Voordat je nu je bot live zet of aan een klant laat zien, loop deze checklist na. Beantwoord elke vraag met 'Ja'.
- Contracten: Is er een getekend NDA voordat ik code deel?
- Licenties: Heb ik een LICENSE file toegevoegd aan mijn repositories?
- Geheimhouding: Zijn alle API-sleutels en wachtwoorden verplaatst naar een .env bestand?
- Git: Staat het .env bestand in mijn .gitignore?
- Beveiliging: Gebruik ik een tool zoals PyArmor of ben ik van plan de code alleen als service (SaaS) aan te bieden?
- Bewijs: Heb ik een gedateerd document waarin mijn strategie en logic beschreven staan?
- Rechtspersoon: Is mijn code eigendom van mijn bedrijf en niet van mij persoonlijk?
Als er een 'Nee' staat, weet je wat je te doen staat. Als je hier bovenstaand hebt afgevinkt, ben je beter beschermd dan 90% van de retail traders. Nu kun je veilig opschalen.
