Yahoo API Hinweis :
[2018-11-16] Nach einigen Tests scheint es, dass Daten-Downloads erneut über die Webschnittstelle (oder API v7 ) angewiesen werden können.Tickets
Das Ticketsystem wurde (tatsächlich) meistens missbraucht, um Ratschläge zu Proben zu bitten.
Feedback/Fragen/... Verwenden Sie die Community
Hier ein Ausschnitt mit einem einfachen gleitenden Durchschnittskreuzung. Es kann auf verschiedene Arten erfolgen. Verwenden Sie die Dokumente (und Beispiele) Luke!
Aus der DateTime -Importdatetime importieren
Backtrader als BT importieren
Klasse Smacross (Bt.SignalStrategy):
def __init __ (selbst):
SMA1, SMA2 = bt.ind.sma (Periode = 10), bt.ind.sma (Periode = 30)
Crossover = bt.ind.crossover (SMA1, SMA2)
self.Signal_add (bt.Signal_long, Crossover)
cerebro = bt.cerebro ()
cerebro.addStrategy (Smacross)
Data0 = bt.feeds.yahoofInedata (Dataname = 'msft', fromdate = datetime (2011, 1, 1),
todate = datetime (2012, 12, 31))
cerebro.adddata (Data0)
cerebro.run ()
cerebro.plot ()
Einschließlich eines vollständigen Diagramms. Probieren Sie es aus! Dies ist in den Proben als sigsmacross/sigsmacross2.py enthalten. Entlang der sigsmacross.py kann es aus der Befehlszeile parametrisiert werden.
Live Trading- und Backtesting -Plattform in Python geschrieben.
- Live -Daten -Feed und Handel mit
- Interaktive Makler (benötigt
IbPyund profitiert stark von einem installiertenpytz)- Visual Diagramm (benötigt eine Gabel von
comtypes, bis eine Pull -Anforderung in die Veröffentlichung integriert ist und vonpytzprofitiert)- Oanda (Bedarf
oandapy) (Nur Rest -API - V20 hat Streaming bei der Implementierung nicht unterstützt)- Datenfeeds von CSV/Dateien, Online -Quellen oder von Pandas und Blaze
- Filter für Daten, z. B. ein tägliches Balken in Brocken, um Intraday zu simulieren oder mit Renko -Ziegeln zu arbeiten
- Mehrere Datenfeeds und mehrere Strategien unterstützt
- Mehrere Zeitrahmen gleichzeitig
- Integriertes Resampling und Wiederholung
- Schritt -für -Schritt -Backtesting oder sofort (außer bei der Bewertung der Strategie)
- Integrierte Batterie von Indikatoren
- Ta-Lib- Indikatorunterstützung (Bedarf Python Ta-Lib / Überprüfen Sie die Dokumente)
- Einfache Entwicklung von benutzerdefinierten Indikatoren
- Analysatoren (zum Beispiel: TimerTurn, Sharpe -Verhältnis, SQN) und
pyfolio-Integration ( veraltet )- Flexible Definition von Provisionsprogrammen
- Integrierte Broker-Simulation mit Markt , Schließen , Limit , Stopp , Stopp , Stoptrail , Stoptraillimit *und *OCO -Bestellungen, Halterungsbestellungen, Schlupf, Volumenfüllstrategien und kontinuierlichem Cash-Anpassung für zukünftige Instrumente
- Sizer für automatisiertes Sitzen
- Cheat-on-Close- und Cheat-on-Open-Modi
- Scheduler
- Handelskalender
- Auftreten (erfordert Matplotlib)
Der Blog:
- Blog
Lesen Sie die vollständige Dokumentation unter:
- Dokumentation
Liste der integrierten Indikatoren (122)
- Indikatoren Referenz
- Python> =
3.2- Es funktioniert auch mit
pypyundpypy3(kein Plotten -matplotlibwird unter pypy nicht unterstützt)
backtrader ist in sich geschlossen, ohne externe Abhängigkeiten (außer wenn Sie planen möchten)
Von pypi :
pip install backtrader
pip install backtrader[plotting]Wenn
matplotlibnicht installiert ist und Sie einige Planungen durchführen möchten
Notiz
Die minimale Matplotlib -Version ist 1.4.1
Ein Beispiel für IB -Datenfeeds/Handel:
IbPyscheint nicht in Pypi zu sein. BEIDE Machen:PIP Installieren Sie GIT+https: //github.com/blampe/ibpy.gitoder (wenn
gitin Ihrem System nicht verfügbar ist):PIP Installation https://github.com/blampe/ibpy/archive/master.zip
Für andere Funktionen wie: Visual Chart , Oanda , TA-Lib , überprüfen Sie die Abhängigkeiten in der Dokumentation.
Aus Quelle:
- Platzieren Sie das Backtrader -Verzeichnis in den Quellen in Ihrem Projekt
Xyzi
- X: Hauptversionsnummer. Sollte stabil bleiben, es sei denn, etwas Großes wird wie eine Überarbeitung verändert, um
numpyzu verwenden- Y: Minor -Versionsnummer. Beim Hinzufügen eines vollständigen neuen Merkmals geändert werden oder (Gott verbietet) eine inkompatible API -Änderung.
- Z: Revisionsversionsnummer. Für Dokumentationsaktualisierungen, kleine Änderungen, kleine Fehlerbehebungen geändert werden
- I: Anzahl der bereits in die Plattform eingebauten Indikatoren