Gratis koersdata downloaden met de Yfinance library

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Financiële Data & Kwaliteit · 2026-02-15 · 6 min leestijd

Je wilt aan de slag met algoritmische trading, backtesting of simpelweg je eigen analyses doen.

Dan heb je koersdata nodig. Veel data. En als je net begint, wil je niet meteen honderden euros neertellen voor een data-abonnement.

Yfinance is hier je beste vriend. Het is een gratis Python-bibliotheek waarmee je direct historische en actuele koersdata van Yahoo Finance kunt ophalen. Geen gedoe met API-sleutels, geen maandelijkse kosten. Gewoon data, klaar voor je Python-scripts.

Deze gids leert je hoe je yfinance installeert, data ophaalt voor enkele aandelen of entire indices, en hoe je de data direct in Pandas DataFrames krijgt voor verdere analyse.

We richten ons op de praktische kant, want je wilt nu eenmaal code kunnen schrijven voor je trading bots of backtesting-modellen.

Waarom yfinance gebruiken voor je trading projecten?

Stel je voor: je bouwt een backtesting-framework in Python. Je hebt data nodig voor de S&P 500, of voor een specifiek aandeel zoals ASML of Tesla.

Je kunt niet zonder betrouwbare data. Yfinance biedt een simpele, gratis oplossing.

De bibliotheek is open-source, ontwikkeld door Ran Aroussi, en valt onder de Apache Software License. Je mag het gratis gebruiken, zelfs voor commerciële projecten, hoewel de data zelf vooral voor persoonlijk en educatief gebruik is bestemd. Waarom is dit zo handig?

Ten eerste: geen account of API-sleutel nodig. Je installeert de library met één pip-commando en je bent direct klaar. Ten tweede: de data wordt teruggegeven als Pandas DataFrame. Dat betekent dat je meteen aan de slag kunt met analyse, visualisatie of het trainen van je algoritmische modellen.

Ten derde: yfinance haalt data direct van de publieke Yahoo Finance-endpoints. Hoewel Yahoo zelf de officiële API heeft stopgezet in 2017, blijven deze endpoints werken via community-projecten zoals yfinance.

Je ontwikkelomgeving configureren

Voordat je data kunt downloaden, moet je je Python-omgeving klaarzetten. Als je al een omgeving gebruikt voor algoritmische trading, weet je dit waarschijnlijk al.

Zo niet, dan leg ik het even uit. Yfinance werkt met Python 3.7 en hoger. Je hebt ook de bibliotheek Pandas nodig, omdat yfinance de data direct in DataFrames teruggeeft. Installeer yfinance eenvoudig via pip:

pip install yfinance

Zorg dat je een virtuele omgeving gebruikt om conflicts te vermijden. Als je werkt met Jupyter Notebooks voor je backtesting, kun je dit commando rechtstreeks in een notebookcel uitvoeren.

Voor wie liever Anaconda gebruikt: je kunt yfinance ook installeren via conda, maar pip is meestal de makkelijkste route.

Yfinance is niet gelieerd aan Yahoo, dus je krijgt geen officiële support. De data is 'as-is' en niet gegarandeerd door Yahoo. Controleer altijd of de data klopt, vooral voor backtesting. Een verkeerde data-punt kan je hele model vertekenen.

Historische data downloaden voor één ticker

Yfinance maakt het super simpel om data voor één aandeel of index op te halen. Laten we een voorbeeld nemen: je wilt de historische data voor Apple (AAPL) van de afgelopen jaar.

import yfinance as yf

# Data ophalen voor Apple
ticker = yf.Ticker("AAPL")

# Historische data van de laatste 365 dagen
data = ticker.history(period="1y")

Met yfinance is dit een paar regels code. Deze code geeft je een DataFrame met Open, High, Low, Close, Volume en Dividends, maar je kunt ook eenvoudig financiële ratio's zoals de P/E of EBITDA ophalen.

Je kunt de periode aanpassen: "1d", "5d", "1mo", "3mo", "1y", of zelfs "max" voor alle beschikbare data. Let op: voor intraday data (interval kleiner dan 1 dag) is de data beperkt tot de laatste 60 dagen. Voor 1-minuut data is dat zelfs maar 7 dagen.

Handig voor scalping-strategieën, maar niet voor lange backtests. Wil je automatisch rekening houden met stock splits en dividend?

Gebruik de parameter auto_adjust=True. Dit past de sluitingsprijzen aan, zodat je historische data consistenter is voor technische analyse. Zonder deze instelling krijg je de ruwe data, wat handig is voor fundamentele analyse maar minder voor prijsmodellen.

Meerdere tickers tegelijk downloaden

Werken met meerdere aandelen tegelijk? Yfinance ondersteunt het ophalen van data voor een lijst van tickers in één keer.

tickers = ["AAPL", "MSFT", "GOOGL", "TSLA"]
data = yf.download(tickers, period="1mo")

Dit is ideaal voor het bouwen van een portfolio-analyse tool of een mean-reversion strategie op meerdere aandelen. Deze code haalt voor elk aandeel de data van de laatste maand op en geeft een MultiIndex DataFrame terug. Je kunt de data per ticker splitsen of direct verwerken in je trading bot. Voor ultra-snelle aandelen data voor indices zoals de S&P 500 gebruik je simpelweg "^GSPC" als ticker.

Voor de AEX (Nederland) is het "^AEX". Een praktische tip: als je een backtesting-script schrijft, sla de data dan lokaal op met data.to_csv().

Zo voorkom je dat je telkens opnieuw moet downloaden en vermijd je rate-limits.

Yahoo's endpoints zijn gratis, maar niet onbeperkt. Voor intensief gebruik is lokaal opslaan een must.

Fundamentele data ophalen met yfinance

Naast koersdata biedt yfinance ook fundamentele data, zoals balansinformatie, winstcijfers en dividenduitkeringen. Dit is nuttig voor diepgaande analyses of voor het filteren van aandelen in een quant-strategie.

# Balansinformatie
balance_sheet = ticker.balance_sheet

# Winst- en verliesrekening
income_stmt = ticker.income_stmt

# Dividend historie
dividends = ticker.dividends

Deze data wordt ook als Pandas DataFrame teruggegeven. Je kunt het combineren met technische indicatoren voor een hybride trading-strategie.

Bijvoorbeeld: alleen traden als de koers-winstverhouding laag is én de 50-dagen moving average een buy-signaal geeft. Let wel: fundamentele data is niet altijd even actueel. Yahoo Finance update deze informatie met een vertraging, dus voor real-time trading is het minder geschikt. Voor backtesting van aandelen op basis van fundamentele factoren is het echter een prima gratis bron.

Praktische tips voor algoritmische trading

Yfinance is een krachtige tool, maar er zijn een paar dingen om rekening mee te houden. Ten eerste: de data is niet 100% gegarandeerd.

Voor serieuze backtesting raden we aan om de data te cross-checken met een andere bron, zoals je broker of een betaalde data-provider.

Ten tweede: voor intraday trading moet je rekening houden met de beperkte historie. Yfinance is niet geschikt voor diepgaande backtests van scalping-strategieën over maanden. Combineer yfinance met andere bibliotheken voor een complete setup.

Gebruik Pandas voor data-manipulatie, TA-Lib voor technische indicatoren, en Backtrader of Zipline voor het testen van je trading-strategieën. Voor risicomanagement kun je gratis real-time data voor Python gebruiken om volatiliteit te berekenen en stop-loss levels te bepalen.

Als je een trading-bot bouwt, sla de data dan periodiek op en gebruik yfinance voor updates. Zo houd je je bot draaiend zonder constant nieuwe data te moeten downloaden. En vergeet niet: de bibliotheek is gratis, maar de data is voor persoonlijk gebruik. Gebruik het niet voor commerciële data-diensten zonder toestemming.

Yfinance is een must-have voor elke Python-gebruiker die aan de slag wil met algoritmische trading.

Het verlaagt de drempel, versnelt je ontwikkeling en geeft je direct toegang tot de data die je nodig hebt. Dus pak je terminal, installeer yfinance, en begin met bouwen.

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 Financiële Data & Kwaliteit
Ga naar overzicht →