Een eenvoudige Sentiment Bot bouwen met de Twitter API
Stel je voor: je bouwt een bot die continu de stemming op Twitter afspeurt en op basis daarvan handelssignalen genereert.
Geen uren meer scrollen, maar een systeem dat voor je werkt. In deze gids bouwen we een eenvoudige sentiment bot met Python en de Twitter API, specifiek voor algoritmische handel. We houden het praktisch, zonder onnodige complexiteit, en we letten op de valkuilen die beginners vaak tegenkomen.
Waarom een sentiment bot voor trading?
De markten reageren snel op nieuws en publieke opinie. Een tweet van een invloedrijke persoon kan de koers van Bitcoin of een aandeel in een paar seconden veranderen.
Een sentiment bot scant deze berichten en probeert de stemming te vangen — positief, negatief of neutraal — en zet die data om in handelssignalen.
Dit is geen magie, maar een manier om data sneller te verwerken dan een mens kan. Denk aan een bot die een piek in positieve tweets over een aandeel detecteert en een koopsignaal geeft. Of een toename van negatief sentiment rond een crypto die een verkoopsignaal triggert.
Het doel is niet om perfect te zijn, maar om een voorsprong te krijgen door snelheid en objectiviteit. Deze aanpak sluit aan bij algoritmische trading, waarbij je regels definieert en de bot ze uitvoert.
Je kunt deze sentiment-data combineren met andere indicatoren, zoals prijsbewegingen of volume, voor een robuustere strategie. Laten we beginnen met de basis.
De basis: Twitter Developer Portal en API-toegang
Voordat je code schrijft, moet je toegang krijgen tot de Twitter API.
Ga naar het Twitter Developer Portal en maak een account aan. Dit is gratis voor basisgebruik, maar je hebt een "Project" nodig. Kies voor de Free-tier, die ongeveer 1.500 requests per maand toestaat — genoeg voor een simpele bot die elke 10 seconden pollt. Zodra je project is aangemaakt, moet je de app-permissies instellen.
Standaard staat dit op "Alleen-lezen". Verander dit naar "Lezen en schrijven" als je niet alleen tweets wilt lezen, maar ook wilt reageren of liken.
Dit is cruciaal voor veel trading bots die actie ondernemen. Vervolgens genereer je de tokens: de API-sleutel (API Key), het API-geheim (API Secret), de toegangstoken (Access Token) en het toegangsgeheim (Access Token Secret).
Bewaar deze veilig, bijvoorbeeld in een .env-bestand. Een veelgemaakte fout is het vergeten van de permissie-wijziging. Als je alleen-lezen laat staan, werkt je bot niet als je probeert te schrijven.
Test dit direct na het aanmaken van de tokens. Houd ook de API-limieten in de gaten: de Free-tier is beperkt, dus voor productiegebruik moet je upgraden naar de Basic-tier (ongeveer €90 per maand) voor meer requests.
Het bouwen van de bot: Python met pytwitter
We gaan voor Python, omdat het ideaal is voor algoritmische handel. Je kunt makkelijk backtesting doen met bibliotheken zoals Backtrader en integreren met brokers via API's zoals die van Interactive Brokers of Alpaca.
Gebruik de `pytwitter` library — installeren met `pip install pytwitter`. De basiscode is eenvoudig: je stelt je credentials in en pollt nieuwe tweets. De kern van de bot is een loop die regelmatig checkt op nieuwe tweets. Gebruik een variabele `last_tweet_id` om te voorkomen dat je op dezelfde tweets reageert.
import time
from pytwitter import Api
api = Api(
consumer_key='JE_API_KEY',
consumer_secret='JE_API_SECRET',
access_token='JE_ACCESS_TOKEN',
access_token_secret='JE_ACCESS_TOKEN_SECRET'
)
last_tweet_id = None
while True:
tweets = api.get_tweets(queries=['Bitcoin'], count=10)
for tweet in tweets:
if last_tweet_id and tweet.id == last_tweet_id:
continue
# Analyseer sentiment hier (bijv. met TextBlob of VADER)
print(f"New tweet: {tweet.text}")
last_tweet_id = tweet.id
time.sleep(60) # Poll elke minuut, niet elke 10 seconden
Hieronder een voorbeeldcode in pseudocode-stijl (pas aan met je eigen credentials): Waarom sleep(60) en niet 10 seconden?
Omdat een korte polling-interval snel je API-limieten opgebruikt en inefficient is voor een simpele bot.
Voor sentiment trading op basis van sociale media kun je een eenvoudige library zoals TextBlob gebruiken om de score te berekenen (positief/negatief). Integreer dit met je trading-strategie: bijvoorbeeld, als sentiment boven een drempel (bijv. 0.5) is, koop dan een kleine positie in Bitcoin via je broker-API.
Combineer dit met risicomanagement: stel stop-losses in en beperk je positiegrootte. Gebruik backtesting met historische Twitter-data om je strategie te valideren voordat je live gaat. Vooruitlopen op economisch nieuws met geavanceerde trading bots helpt je bovendien om sneller te reageren op marktvolatiliteit. Tools zoals Python's pandas helpen bij het analyseren van oude tweets en het simuleren van trades.
Vaak gemaakte fouten en hoe je ze vermijdt
Een klassieke fout is een ononderbroken while True-loop met een te korte slaap, zoals in sommige tutorials. Dit leidt tot API-rate limits en onnodige serverbelasting.
Los het op door interval te verhogen naar 60 seconden of meer, afhankelijk van je behoeften. Monitor je request-teller in het Developer Portal. Een andere fout is het gebruik van verouderde libraries.
Sommige Node.js-tutorials raden de Twit-library aan, maar die wordt niet meer onderhouden.
Kies voor moderne alternatieve zoals `twitter-api-v2` in Node.js, of blijf bij Python met `pytwitter` of `tweepy`. Test je code altijd met mock-data voordat je live gaat. Voor de Nederlandse markt: de API-regels zijn wereldwijd, maar zorg dat je tweets in het Nederlands verwerkt als je op NL-georiënteerde aandelen handelt.
Gebruik taal-specifieke sentiment-modellen om nauwkeuriger te zijn. En vergeet niet: sentiment is subjectief — combineer het altijd met andere data voor betere beslissingen.
Praktische tips voor je sentiment trading bot
Begin klein: test met één symbool, zoals BTC/USD, en een beperkte budget (bijv. €100).
Gebruik een broker met API-toegang, zoals Binance voor crypto (gratis, lage fees) of Interactive Brokers voor aandelen (ongeveer €0,005 per aandeel). Backtest je strategie met minimaal 6 maanden historische data om te zien hoe het zou hebben gepresteerd. Begin met een eenvoudige Moving Average Crossover bot en investeer daarna in risicomanagement: stel een maximum verlies in van 2% per trade en diversifieer over meerdere assets. Voor geavanceerde features, zoals machine learning voor sentiment, kun je libraries zoals scikit-learn toevoegen — maar houd het eerst eenvoudig.
Kosten voor hosting: een VPS zoals DigitalOcean kost ongeveer €5 per maand voor een basisinstance. Als je bot eenmaal draait, monitor hem dagelijks.
Pas je parameters aan op basis van prestaties, maar niet te vaak — emotionaliteit is de vijand van algoritmische handel.
Veel succes met bouwen; met een beetje oefening heb je een handig hulpmiddel in handen.
