Hoe koppel je Python aan MetaTrader 5 via de MT5 library?

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

Je wilt Python koppelen aan MetaTrader 5? Slimme zet. MT5 is een krachtig platform, maar met Python erbij krijg je pas echt controle over algoritmische trading bots, backtesting en risicomanagement.

Je bouwt je eigen scripts, test ze zonder emotie en stuurt orders aan via brokers die MT5 ondersteunen. In deze handleiding leg ik je stap-voor-stap uit hoe je die koppeling maakt via de MT5-library. Geen jargon, gewoon praktisch. We doen dit samen, alsof we achter je laptop zitten.

Wat je nodig hebt voordat je begint

Voordat we code typen, zorgen we dat de basis staat. Je hebt een werkende computer nodig met Windows, macOS of Linux. MT5 draait het soepelst op Windows, maar de MT5-library werkt ook op macOS en Linux.

Je hebt minimaal 4 GB RAM nodig, maar 8 GB of meer is beter als je straks grotere datasets voor backtesting verwerkt.

Installeer Python 3.9 of nieuwer via python.org. Kies de stabiele versie, niet de allernieuwste experimental.

Zorg dat je tijdens installatie “Add Python to PATH” aanvinkt, anders werken commando’s straks niet. Reken op 10 minuten voor de installatie. Download en installeer MetaTrader 5 van je broker.

Populaire brokers zoals IC Markets, Pepperstone en Admiral Markets bieden gratis MT5-accounts.

Maak een demo-account aan voor testdoeleinden. Gebruik geen echt geld tijdens het opzetten van je eerste bot. Je hebt een IDE nodig. Visual Studio Code is gratis en werkt uitstekend. Installeer de Python-extensie. Zorg dat je een terminal kunt openen. Tijd: 15 minuten.

Veelgemaakte fout: Python installeren zonder “Add to PATH”. Test dit met python --version in je terminal. Werkt het niet? Installeer opnieuw en vink het vakje aan.

Stap 1: Installeer de MetaTrader 5-library

Open je terminal of command prompt. Typ het volgende en druk op Enter:

pip install MetaTrader5 Deze opdracht installeert de officiële MT5-library van MetaQuotes.

Het duurt meestal 1 tot 3 minuten. Als je foutmeldingen ziet, controleer dan of je de juiste Python-versie gebruikt en of je internetverbinding stabiel is. Test de installatie door Python te starten en het volgende te typen: import MetaTrader5 as mt5
print(mt5.__version__)

Je zou een versienummer moeten zien, bijvoorbeeld 5.0.42. Zie je geen foutmelding?

Dan is de library goed geïnstalleerd en kun je kijken naar de beste technische analyse libraries voor je strategie.

Veelgemaakte fout: pip installeren zonder admin-rechten op Windows. Los op door je terminal als administrator te starten of gebruik python -m pip install MetaTrader5.

Stap 2: Verbind met je MT5-terminal

Start de MetaTrader 5-terminal van je broker. Zorg dat je bent ingelogd op je demo-account.

Noteer het pad naar de terminal.exe. Bijvoorbeeld: C:\Program Files\MetaTrader 5\terminal64.exe.

Open je Python-omgeving en typ: import MetaTrader5 as mt5
mt5.initialize() Als je terminal op de standaardlocatie staat, werkt initialize() direct.

Anders geef je het pad mee: mt5.initialize("C:\\Program Files\\MetaTrader 5\\terminal64.exe") Je krijgt True als verbinding lukt. Controleer je accountgegevens: account_info = mt5.account_info()
print(account_info)

Je ziet balans, equity en free margin. Dit bevestigt dat Python praat met MT5. Wil je meer leren? Lees dan onze Python voor financiële analyse gids.

Veelgemaakte fout: terminal niet openen voordat je initialize() aanroept. Sluit je script en open eerst MT5. Tijd om te fixen: 2 minuten.

Stap 3: Haal marktdata op en plaats een order

Test eerst of je data kunt ophalen. Voor EURUSD op timeframen M15:

rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_M15, 0, 100) Dit haalt de laatste 100 candles.

Je krijgt een array met open, high, low, close, volume en tijd. Handig voor backtesting en live bots. Plaats een testorder met risicomanagement.

Gebruik een micro-lot (0.01) en een stop-loss van 20 pips: symbol = "EURUSD"
lot = 0.01
point = mt5.symbol_info(symbol).point
price = mt5.symbol_info_tick(symbol).ask
deviation = 20
sl = price - 20 * point
tp = price + 40 * point
request = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": lot,
"type": mt5.ORDER_TYPE_BUY,
"price": price,
"sl": sl,
"tp": tp,
"deviation": deviation,
"magic": 2024,
"comment": "Python script",
"type_time": mt5.ORDER_TIME_GTC,
"type_filling": mt5.ORDER_FILLING_IOC,
}
order = mt5.order_send(request)
print(order) Je ontvangt een result-code. 10009 betekent succes. Zo niet, check de errorcode.

Veelgemaakte fout: verkeerde filling-type voor je broker. IOC werkt bij veel brokers, maar FOK of IOC kan per broker verschillen. Check de brokerdocumentatie. Tijd om te fixen: 5 minuten.

Stap 4: Bouw een simpele algoritmische bot

Maak een script dat een moving average crossover strategie uitvoert. We gebruiken een 20-period en 50-period SMA.

Koop als de 20 boven de 50 komt, verkoop als het omgekeerd is. import MetaTrader5 as mt5
import pandas as pd
mt5.initialize()
symbol = "EURUSD"
rates = mt5.copy_rates_from_pos(symbol, mt5.TIMEFRAME_M15, 0, 200)
df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')
df['sma20'] = df['close'].rolling(20).mean()
df['sma50'] = df['close'].rolling(50).mean()
last = df.iloc[-1]
prev = df.iloc[-2]

Logica: if prev['sma20'] <= prev['sma50'] and last['sma20'] > last['sma50']:
# Koop signaal
# plaats een buy order zoals hierboven
elif prev['sma20'] >= prev['sma50'] and last['sma20'] < last['sma50']:
# Verkoop signaal
# plaats een sell order Deze bot is een startpunt. Voeg risicomanagement toe: max 1% risico per trade, stop-loss en take-profit. Test op een demo-account.

Veelgemaakte fout: geen null-checks op SMA-waarden. Rolling gemiddelden geven NaN voor de eerste candles. Wacht tot je voldoende data hebt. Tijd om te fixen: 3 minuten.

Stap 5: Backtesten en verifiëren

Backtesting is essentieel voor algoritmische trading. Gebruik je eigen historische data van je broker.

Haal meer data op: rates = mt5.copy_rates_from(symbol, mt5.TIMEFRAME_M15, 0, 5000) Verwerk deze data in pandas. Bereken je entry- en exit-punten, simulatie van slippage en kosten.

Reken met een spread van 0.5 tot 1.5 pips voor EURUSD, afhankelijk van je broker. Voor serieuze backtesting kijk je naar libraries als backtrader of vectorbt.

Die integreren met MT5-data. Test je bot op minimaal 1000 trades voor statistische significantie.

Verificatie-checklist: Als alle items groen zijn, ben je klaar om live te gaan met kleine bedragen. Begin met micro-lots en een beperkte risicopercentage.

  • Python-versie 3.9 of nieuwer geïnstalleerd
  • MetaTrader5-library geïmporteerd zonder fouten
  • MT5-terminal draait en is verbonden met demo-account
  • mt5.initialize() retourneert True
  • account_info toont correcte balans en equity
  • copy_rates_from_pos() levert bruikbare candles
  • order_send() retourneert result-code 10009
  • Bot plaatst trades volgens SMA-crossover logica
  • Risicomanagement actief: stop-loss, take-profit, max 1% risico
  • Backtest toont realistische resultaten na 1000+ trades

Monitor je bot de eerste dagen nauwgezet. Met deze stappen koppel je Python soepel aan MetaTrader 5 via de MT5-library.

Je hebt een basis voor algoritmische bots, backtesting en risicomanagement. Pas de voorbeelden aan naar je eigen broker, instrumenten en strategie. Bekijk ook onze handige checklist met Python libraries voor je trading architectuur. Succes en veel plezier 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 Python Libraries voor Algoritmische Trading
Ga naar overzicht →