Bollinger Bands berekenen met NumPy en Pandas

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Python Libraries voor Algoritmische Trading · 2026-02-15 · 5 min leestijd
Stel je voor: je zit achter je scherm, de markt beweegt wild en jij wilt orde scheppen uit die chaos. Bollinger Bands zijn een klassieke tool om te zien of een prijs extreem hoog of laag staat. Met NumPy en Pandas bouw je die berekening razendsnel in Python, perfect voor je algoritmische trading bot. Je haalt data via een broker API, backtest de strategie en beheert je risico zonder dat je handmatig hoeft te tellen.

Wat zijn Bollinger Bands eigenlijk?

Een Bollinger Band bestaat uit drie lijnen: een middellijn (meestal een simpele moving average) en twee buitenbanden die verder van de middellijn af staan. De buitenbanden zijn standaard een bepaald aantal standaarddeviaties verwijderd, vaak twee.

Hoe verder de prijs van de middellijn af beweegt, hoe sterker de markt reageert.

Waarom is dit handig? Omdat het je helpt inschatten of een prijs tijdelijk te ver is doorgeschoten. Als de prijs een buitenband raakt, kan dat een signaal zijn voor een omkeer of voor een doorbraak.

Het is geen glazen bol, maar een hulpmiddel voor context. Denk aan een aandeel dat rond €50 beweegt. De middellijn loopt op €49,50, de bovenband op €52,00 en de onderband op €47,00. Raakt de prijs €52,00? Dan is het tijd om extra kritisch te kijken.

Waarom dit berekenen met NumPy en Pandas?

NumPy is supersnel met wiskundige operaties op arrays. Pandas geeft je DataFrame-structuur voor tijdseries, met handige functies voor rolling windows en gemiddelden.

Samen maak je een berekening die in milliseconden draait, ideaal voor live data via een broker API.

Backtesting wordt een stuk soepeler. Je laadt historische data, past de berekening toe en test je entry- en exit-regels. Je ziet meteen hoeveel trades je zou hebben gedaan en wat je risico was.

Zo voorkom je dat je blind op een indicator vaart. Je bouwt je bot in Python, bijvoorbeeld met libraries voor interactie met je broker.

Je kunt de berekening direct in je trading loop stoppen, zonder dat je telkens opnieuw moet rekenen. Dat bespaart tijd en verlaagt de kans op fouten.

De kern: stap-voor-stap berekening

Begin met je data. Haal een DataFrame op met een kolom 'close'. Gebruik een broker API of een CSV voor backtesting.

Zorg dat je tijdzone en frequentie kloppen, bijvoorbeeld 1-minuut of 5-minuut candles.

Bereken de middellijn met een rolling window. Veel traders gebruiken 20 perioden.

In Pandas is dat: df['mid'] = df['close'].rolling(window=20).mean(). Bereken de standaarddeviatie over hetzelfde window: df['std'] = df['close'].rolling(window=20).std(). Stel de multiplier in, vaak 2.

De bovenband is df['upper'] = df['mid'] + 2 * df['std']. De onderband is df['lower'] = df['mid'] - 2 * df['std'].

Zo heb je drie kolommen die je direct kunt plotten of in je strategie gebruikt. Check op NaN-waarden na het rolling window. De eerste 19 rijen zijn leeg. Je kunt die weggooien of opvullen, afhankelijk van je backtest-opzet.

Praktische code in Python

Hier is een compact voorbeeld om gewogen voortschrijdende gemiddelden te berekenen. Zorg dat je Pandas en NumPy geïnstalleerd hebt.

import pandas as pd import numpy as np # df bevat een kolom 'close' en een index met datetime window = 20 multiplier = 2 df['mid'] = df['close'].rolling(window=window).mean() df['std'] = df['close'].rolling(window=window).std() df['upper'] = df['mid'] + multiplier * df['std'] df['lower'] = df['mid'] - multiplier * df['std']

Wil je een functie maken voor hergebruik? Dat kan simpel: Gebruik deze functie in je backtesting-loop. Roep hem aan na het laden van data per symbool en timeframe. Zet je data klaar met Pandas en je bent klaar voor signalen.

def add_bollinger(df, window=20, multiplier=2): df = df.copy() df['mid'] = df['close'].rolling(window=window).mean() df['std'] = df['close'].rolling(window=window).std() df['upper'] = df['mid'] + multiplier * df['std'] df['lower'] = df['mid'] - multiplier * df['std'] return df

Varianten en prijsindicaties voor trading bots

Je kunt de lengte van het window aanpassen. Een korter window, bijvoorbeeld 10, maakt de bands gevoeliger en geeft meer signalen.

Een langer window, bijvoorbeeld 30, filtert ruis en geeft minder valse entries.

Kies wat past bij je timeframe en instrument. De multiplier bepaalt hoe breed de bands zijn. Een multiplier van 1,5 geeft nauwere bands en meer raakpunten.

Een multiplier van 2,5 geeft wijde bands en minder signalen. Experimenteer met waarden die bij je risicomanagement passen.

Je kunt de bands combineren met andere indicatoren. Gebruik een RSI voor bevestiging bij een aanraking van de bovenband. Of koppel een volume-indicator aan een doorbraak van de onderband. Zo voorkom je dat je alleen op Bollinger Bands vaart.

Voor prijsindicaties: als de prijs de bovenband raakt en daarna terugvalt naar de middellijn, kan dat een verkoopsignaal zijn.

Blijft de prijs boven de bovenband en stijgt volume? Dan kan een trend doorzetten. Gebruik dit niet als los signaal, maar als onderdeel van je bot-logica.

Risicomanagement en backtesting tips

Stel een stop-loss in bij elke trade. Een veelgebruikte methode is de onderband als dynamische stop, of een vaste procentuele stop zoals 1% tot 2% per trade. Pas dit aan op basisijl en volatiliteit.

Backtest over een lange periode en meerdere instrumenten. Test op minimaal 2 jaar data, bijvoorbeeld van 2022 tot 2024.

Gebruik realistische transactiekosten en slippage, want die bepalen je daadwerkelijke resultaat. Beperk je positiegrootte.

Gebruik een vaste fractie van je kapitaal, bijvoorbeeld 1% per trade. Bereken je risico per trade op basis van de afstand tot de stop. Zo blijft je drawdown beheersbaar.

Log elke trade in je bot. Sla de entry, exit, stop, aantal eenheden en de Bollinger-waarden op.

Analyseer later wat werkt en wat niet. Pas je parameters geleidelijk aan, niet in één keer. Test ook op verschillende brokers en API’s. Sommige brokers hebben andere data-kwaliteit of tick-grootte. Je berekening moet robuust blijven, ook als de data iets afwijkt.

Afronding en volgende stappen

Je hebt nu een heldere manier om Bollinger Bands te berekenen met NumPy en Pandas. Je kunt deze code direct in je algoritmische trading bot stoppen, koppelen aan een broker API en gebruiken in je backtesting-pipeline.

Begin klein: test op één instrument en één timeframe. Zie hoe de bands zich gedragen en hoe je signalen vallen. Voeg daarna extra filters toe en breid uit naar meerdere markten.

Onthoud: Bollinger Bands geven context, geen garanties. Combineer ze met risicomanagement, een goede backtest en een strakke bot-architectuur.

Zo bouw je een betrouwbaarder trading systeem.

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 Python Libraries voor Algoritmische Trading
Ga naar overzicht →