← Alle Insights

Backtrader-Alternative Python-Frameworks und Migration.

Backtrader läuft bei vielen Python-Tradern noch, wird aber seit April 2023 nicht mehr weiterentwickelt: Die letzte Version 1.9.78.123 und der letzte Commit im Hauptzweig des Repositorys stammen vom 19.04.2023. Für reine Backtests auf einem stabilen Rechner ist das kein Notfall, für Live-Handel und neue Python-Versionen aber ein wachsendes Risiko. Stand Oktober 2026 gibt es gepflegte Nachfolger für unterschiedliche Zwecke: backtesting.py für einfache Einzelstrategien, vectorbt für Parameterstudien, NautilusTrader für ereignisgetriebenes Live-Trading und QuantConnect LEAN für Multi-Asset mit Cloud-Option. Dieser Artikel ordnet den Wartungsstatus ein, zeigt eine Migrationsmatrix nach Anwendungsfall und beschreibt einen Paritätstest, mit dem Sie prüfen, ob alter und neuer Backtest dieselben Trades liefern. Er richtet sich an private Trader mit eigenem Code ebenso wie an Teams, die ein bestehendes System modernisieren wollen.

Wird backtrader noch gepflegt?

Nein, nicht im Sinne einer aktiven Weiterentwicklung. Auf PyPI ist 1.9.78.123 vom 19.04.2023 die letzte Version, und im Hauptzweig des Repositorys mementum/backtrader stammt der letzte Commit vom selben Tag. Das Projekt ist weder archiviert noch offiziell eingestellt, und es hat rund 23.000 Sterne auf GitHub. Bugfixes, Anpassungen an neue Bibliotheksversionen oder Sicherheitskorrekturen kommen aber seit über drei Jahren nicht mehr.

Auch der Ausweg über einen Fork trägt nur begrenzt. Der bekannteste Community-Fork backtrader2 hat seinen letzten Commit im November 2021. Wer auf backtrader bleibt, übernimmt die Wartung also faktisch selbst.

Das ist nicht automatisch ein Grund zur Eile. Backtrader ist reines Python mit wenigen Pflichtabhängigkeiten, und eine eingefrorene Umgebung mit festen Paketversionen kann jahrelang dieselben Ergebnisse liefern. Das Risiko entsteht an den Rändern: neue Python-Versionen, neue Versionen von pandas, NumPy oder matplotlib, und vor allem Broker-Anbindungen im Live-Betrieb.

Welche Risiken bringt ein ungepflegtes Framework mit sich?

Drei Risiken sollten Sie getrennt bewerten, weil sie sehr unterschiedlich schwer wiegen.

Für reine Forschung auf einem abgeschotteten Rechner sind diese Risiken überschaubar. Für einen Bot, der rund um die Uhr Orders an einen Broker schickt, sind sie es nicht.

Die Alternativen im Überblick: backtesting.py, vectorbt, NautilusTrader, LEAN.

backtesting.py (Version 0.6.6 vom 22.07.2026, Lizenz AGPL-3.0) ist eine schlanke Bibliothek mit einem Klassenmodell, das backtrader-Nutzern vertraut vorkommt. Die API ist klein: Sie leiten eine Klasse von Strategy ab, berechnen Indikatoren in init() und handeln in next(). Ein Backtest bekommt genau einen OHLC-Datensatz, ist also auf ein Instrument je Lauf ausgelegt. Market-, Limit- und Stop-Orders sowie Stop-Loss und Take-Profit sind eingebaut, Gebühren und Spread lassen sich parametrieren. Live-Handel gehört nicht zum Umfang.

vectorbt (Open-Source-Version 1.1.1 vom 26.09.2026, Python 3.11 bis 3.14) rechnet vektorisiert auf pandas- und NumPy-Strukturen, beschleunigt über Numba und seit Version 1.0 optional über eine Rust-Engine. Damit lassen sich Tausende Parameterkombinationen in kurzer Zeit testen. Die Logik ist anders als bei backtrader: Sie erzeugen Signal-Arrays statt Ereignisse in einer Schleife zu verarbeiten. Limit-Orders und Hebel nennt der Hersteller als Funktionen der kostenpflichtigen PRO-Version. Die Lizenz ist Apache 2.0 mit Commons Clause: Die Nutzung ist frei, der Verkauf von Produkten oder Diensten, die im Wesentlichen aus der Software selbst bestehen, ist aber ausgeschlossen.

NautilusTrader (stabil 1.231.0 vom 02.08.2026, Python ab 3.12, Lizenz LGPL-3.0) ist ereignisgetrieben wie backtrader, aber auf Live-Betrieb ausgelegt: Dieselbe Strategie läuft im Backtest und live, Adapter gibt es unter anderem für Interactive Brokers, Binance, Bybit und Databento. Version 2.0 mit Rust-Kern ist als 2.0.0rc6 vom 05.10.2026 noch Release Candidate. Details stehen im Artikel NautilusTrader 2.0: was der Rust-Kern für Python-Trader ändert.

QuantConnect LEAN ist eine quelloffene Engine (Apache 2.0) für Python und C#, mit Aktien, Optionen, Futures, Forex und Krypto. Die LEAN CLI (Version 1.0.229 vom 28.08.2026) führt Backtests lokal in Docker aus oder schickt sie in die QuantConnect-Cloud; für den Live-Handel unterstützt sie zahlreiche Broker, darunter Interactive Brokers. Laut Dokumentation setzt die CLI die Mitgliedschaft in einer Organisation mit bezahltem Tarif voraus.

Welches Framework passt zu welchem Anwendungsfall?

Die richtige Wahl hängt weniger davon ab, welches Framework „am besten“ ist, als davon, wofür Sie backtrader heute einsetzen.

Ihr Anwendungsfall mit backtraderNaheliegender NachfolgerMigrationsaufwandAchten Sie auf
Einzelstrategie auf einem Instrument, nur Backtestbacktesting.pygering, ähnliches KlassenmodellStandard-Positionsgröße, AGPL-Lizenz bei Weitergabe
Parameterstudien, viele Instrumente, Screeningvectorbtmittel, Umdenken von Schleife zu ArraysAusführungszeitpunkt der Signale, Order-Logik der Open-Source-Version
Ereignisgetriebener Live-Handel, z. B. über Interactive Brokers oder Krypto-BörsenNautilusTrader 1.x stabil, 2.0 beobachtenhoch, neues DomänenmodellRC-Status von 2.0, Python ab 3.12
Multi-Asset-Portfolios, Optionen und Futures, Cloud-Infrastruktur gewünschtQuantConnect LEANhoch, eigene API und DatenformateTarifbindung der CLI, Datenbeschaffung, Docker
Bestehender Live-Bot mit eigener Broker-Schicht, backtrader nur als Backtestervorerst keiner, Umgebung einfrierenkein Umbau, aber Pflegeaufwandfeste Paketversionen, isolierte Umgebung

Häufig ist eine Kombination sinnvoll: vectorbt für die Breitensuche über Parameter, ein ereignisgetriebenes Framework für die realistische Simulation einzelner Kandidaten. Wie sich vektorisierte und ereignisgetriebene Ansätze grundsätzlich unterscheiden, beschreibt der Artikel Backtesting mit Python: Frameworks und eigene Lösungen. zipline-reloaded taucht in vielen älteren Vergleichen auf; die letzte Version 3.1.1 erschien am 19.07.2025. Prüfen Sie den Pflegestatus eines Zielframeworks vor der Migration genauso gründlich wie bei backtrader.

Migration planen: Strategie-Logik, Daten, Gebühren, Ordertypen.

Eine Migration scheitert selten an der Strategie-Idee, sondern an stillen Annahmen, die backtrader für Sie getroffen hat. Diese Annahmen sollten Sie aufschreiben, bevor Sie die erste Codezeile umbauen.

  1. Strategie-Logik trennen: Ziehen Sie Signalberechnung und Regeln aus der backtrader-Klasse in reine Python-Funktionen, die nur Daten bekommen und Entscheidungen zurückgeben. Diese Funktionen lassen sich danach in jedes Framework einhängen und einzeln testen.
  2. Ausführungszeitpunkt festhalten: Backtrader führt Market-Orders standardmäßig zum Eröffnungskurs der nächsten Bar aus, sofern Sie kein Cheat-on-Close aktiviert haben. backtesting.py tut das ebenfalls, bietet mit trade_on_close aber eine Abweichung an. Bei vectorbt hängt der Ausführungspreis davon ab, welchen Preis und welche Signalverschiebung Sie übergeben. Eine Bar Versatz reicht, um jeden Trade zu verändern.
  3. Positionsgröße prüfen: Der Standard-Sizer von backtrader handelt eine feste Stückzahl, backtesting.py investiert ohne Angabe fast das gesamte verfügbare Kapital. Setzen Sie die Größe in beiden Systemen explizit.
  4. Gebühren und Slippage abbilden: Übertragen Sie Kommissionsmodell, Spread und Slippage bewusst. Prozentuale und feste Gebühren, Mindestgebühren und Spread werden in jedem Framework anders parametriert.
  5. Ordertypen abgleichen: Prüfen Sie, ob Limit-, Stop-, Stop-Limit- und OCO-Logik im Zielframework existieren und gleich ausgelöst werden, etwa wenn Stop-Loss und Take-Profit in derselben Bar erreicht werden.
  6. Daten identisch halten: Nutzen Sie für alt und neu exakt dieselbe Datei mit denselben Zeitstempeln, Zeitzonen und Anpassungen für Splits und Dividenden. Aufwärmphasen von Indikatoren und deren Glättung (etwa beim RSI) unterscheiden sich zwischen Bibliotheken.

Paritätstest: gleiche Trades in alt und neu.

Ein Paritätstest vergleicht nicht Kennzahlen wie Sharpe-Ratio oder Endkapital, sondern die einzelnen Trades. Gleiche Kennzahlen können aus unterschiedlichen Trades entstehen. Gleiche Trades führen bei gleichen Kosten dagegen zum gleichen Endkapital; Kennzahlen wie die Sharpe-Ratio können trotzdem leicht abweichen, weil Frameworks sie unterschiedlich berechnen und annualisieren. Wenn ich bestehende Systeme auf ein neues Framework umziehe, steht dieser Vergleich deshalb vor jeder Optimierung.

Exportieren Sie aus beiden Systemen eine Trade-Tabelle mit Einstiegszeit, Ausstiegszeit, Richtung, Größe und Preisen. In backtrader sammeln Sie dafür abgeschlossene Trades in notify_trade(), backtesting.py liefert sie in stats['_trades'], vectorbt über pf.trades.records_readable. Nach einer Vereinheitlichung der Spaltennamen prüft eine kurze Funktion beide Listen:

import pandas as pd

def vergleiche_trades(alt, neu, toleranz=1e-6):
    # Spalten: entry_time, exit_time, side, size, entry_price, exit_price
    m = alt.merge(neu, on=["entry_time", "side"], how="outer",
                  suffixes=("_alt", "_neu"), indicator=True)
    nur_einseitig = m[m["_merge"] != "both"]
    b = m[m["_merge"] == "both"]
    abweichend = b[
        (b["exit_time_alt"] != b["exit_time_neu"])
        | (b["size_alt"] != b["size_neu"])
        | ((b["entry_price_alt"] - b["entry_price_neu"]).abs() > toleranz)
        | ((b["exit_price_alt"] - b["exit_price_neu"]).abs() > toleranz)
    ]
    return nur_einseitig, abweichend

Gehen Sie in Stufen vor. Zuerst ohne Kosten und mit einer einzigen Market-Order-Logik, bis beide Listen identisch sind. Danach Gebühren und Slippage, dann Stop- und Limit-Orders, zuletzt Positionsgrößen über mehrere Instrumente. Jede verbleibende Abweichung sollten Sie erklären und dokumentieren können, etwa „unterschiedliche Füllregel bei Gap über den Stop“. Unerklärte Abweichungen sind ein Hinweis auf einen Fehler in der alten oder der neuen Version, nicht auf einen Rundungsunterschied. Legen Sie den Test als automatisierten Test im Repository ab, damit er bei jedem späteren Update erneut läuft.

Wann sich ein Wechsel (noch) nicht lohnt.

Ein Wechsel kostet Zeit und bringt neue Fehlerquellen. In einigen Fällen ist Abwarten die bessere Entscheidung.

Auch die Alternativen haben Grenzen. backtesting.py ist auf ein Instrument je Backtest ausgelegt, die Open-Source-Version von vectorbt hat einen eingeschränkten Ordertypen-Umfang, LEAN bindet Sie an Datenformate und für die CLI an einen bezahlten Tarif. Die Lizenzen (AGPL, Commons Clause, LGPL, Apache 2.0) wirken sich unterschiedlich aus, sobald Sie Software weitergeben oder als Dienst anbieten. Das sollten Sie im Einzelfall rechtlich prüfen lassen. Und kein Framework ändert etwas daran, dass ein Backtest überangepasst sein kann. Ein sauberer Umzug macht eine schwache Strategie nicht besser, und automatisierter Handel kann zu hohen Verlusten bis zum Totalverlust führen.

Was Sie jetzt konkret tun können.

  1. Bestand aufnehmen: Notieren Sie, wofür Sie backtrader nutzen (nur Backtest oder auch live), welche Broker-Anbindung, welche Python- und Paketversionen.
  2. Umgebung einfrieren: Schreiben Sie alle Paketversionen fest und sichern Sie einen reproduzierbaren Stand, bevor Sie irgendetwas ändern.
  3. Referenz-Trades erzeugen: Lassen Sie jede Strategie auf einem festen Datensatz laufen und speichern Sie die Trade-Liste als Referenz.
  4. Zielframework nach Anwendungsfall wählen: Nutzen Sie die Tabelle oben und testen Sie den Kandidaten zuerst mit Ihrer einfachsten Strategie.
  5. Paritätstest automatisieren: Erst wenn alt und neu dieselben Trades liefern, folgen Optimierung, Paper-Trading und erst dann echtes Kapital.

Wenn Sie dabei Unterstützung bei Architektur, Tests oder Live-Infrastruktur suchen, finden Sie auf der Seite Trading-Automatisierung beschrieben, wie ich private Trader und Unternehmen dabei begleite.

Häufige Fragen.

Wird backtrader noch weiterentwickelt?

Nein. Die letzte Version 1.9.78.123 erschien am 19.04.2023, und seitdem gab es keinen neuen Commit im Hauptzweig. Das Projekt ist nicht archiviert und läuft in vielen Umgebungen weiter, bekommt aber keine Fehlerkorrekturen, keine Anpassungen an neue Python-Versionen und keine Pflege der Broker-Anbindungen mehr.

Welche Python-Bibliothek ist die beste backtrader-Alternative?

Das hängt vom Einsatz ab. Für einfache Einzelstrategien ist backtesting.py am nächsten an backtrader. Für Parameterstudien über viele Instrumente eignet sich vectorbt. Für ereignisgetriebenen Live-Handel ist NautilusTrader stark, für Multi-Asset-Portfolios mit Cloud-Option QuantConnect LEAN. Einen Eins-zu-eins-Ersatz gibt es nicht.

Kann ich backtrader mit aktuellen Python-Versionen nutzen?

Möglicherweise, aber ohne Gewähr. Die PyPI-Angaben von backtrader reichen nur bis Python 3.7, neuere Versionen sind nicht offiziell getestet. Ob Ihre Strategie mit aktuellem Python, pandas und matplotlib fehlerfrei läuft, müssen Sie selbst prüfen, am besten mit festgeschriebenen Paketversionen und einem Vergleich gegen gespeicherte Referenz-Trades.

Was ist ein Paritätstest bei der Migration eines Backtests?

Ein Paritätstest prüft, ob alter und neuer Backtest auf denselben Daten dieselben Trades erzeugen: gleiche Ein- und Ausstiegszeitpunkte, Richtungen, Größen und Preise. Man beginnt ohne Kosten und mit einfachen Orders und ergänzt Gebühren, Stops und Positionsgrößen schrittweise. Jede verbleibende Abweichung sollte erklärbar sein.

Sollte ich jetzt auf NautilusTrader 2.0 migrieren?

Für Live-Handel mit echtem Kapital eher nicht. Stand 07.10.2026 ist 2.0 noch Release Candidate (2.0.0rc6), und das Projekt rät davon ab, Release Candidates live einzusetzen. Die stabile Version ist 1.231.0. Sinnvoll ist, die Strategie-Logik schon jetzt vom Framework zu entkoppeln und 2.0 parallel zu testen.

Quellen und Stand.

Stand: 7. Oktober 2026. Produkte, Funktionen und Preise ändern sich schnell; maßgeblich sind die Angaben der Anbieter und Behörden.

Sie wollen eine backtrader-Strategie auf ein gepflegtes Framework umziehen? Unverbindlich anfragen — wir klären Zielframework, Paritätstest und den Weg in den Live-Betrieb. Mehr zu meinem Angebot: Trading-Systeme entwickeln lassen.