API Yahoo Remarque :
[2018-11-16] Après certains tests, il semblerait que les téléchargements de données puissent à nouveau être invoqués sur l'interface Web (ou API v7 )Billets
Le système de billets est (en fait) le plus souvent abusé pour demander des conseils sur les échantillons.
Pour comment les commentaires / questions / ... utilisez la communauté
Ici, un extrait d'un simple crossover moyen mobile. Cela peut être fait de plusieurs manières différentes. Utilisez les documents (et les exemples) Luke!
à partir de Datetime Import Datetime
Importer Backtrader en tant que BT
classe Smacross (bt.signalstrategy):
def __init __ (soi):
SMA1, SMA2 = bt.ind.sma (période = 10), bt.ind.sma (période = 30)
crossover = bt.ind.crossover (SMA1, SMA2)
self.signal_add (bt.signal_long, crossover)
cerebro = bt.cerebro ()
cerebro.addstrategy (smacross)
data0 = bt.feeds.yahoofinancedata (dataname = 'msft', fromdate = datetime (2011, 1, 1),
Todate = Datetime (2012, 12, 31))
cerebro.adddata (data0)
cerebro.run ()
cerebro.plot ()
Y compris un graphique en vedette complet. Essayez-le! Ceci est inclus dans les échantillons en tant que sigsmacross/sigsmacross2.py . Le long, c'est sigsmacross.py qui peut être paramétré à partir de la ligne de commande.
Plateforme de trading et de backtesting en direct écrit en python.
- Feed de données en direct et trading avec
- Brokers interactifs (a besoin
IbPyet profite grandement d'unpytzinstallé)- Tableau visuel (a besoin d'une fourche de
comtypesjusqu'à ce qu'une demande de traction soit intégrée dans le communiqué et bénéficie depytz)- Oanda (a besoin
oandapy) (API REST uniquement - V20 n'a pas pris en charge le streaming lors de la mise en œuvre)- Feeds de données à partir de CSV / fichiers, de sources en ligne ou de pandas et d'incendie
- Filtres pour les données, comme diviser une barre quotidienne en morceaux pour simuler l'intraday ou travailler avec Renko Bricks
- Plusieurs flux de données et plusieurs stratégies soutenues
- Plusieurs délais à la fois
- Rééchantillonnage et relecture intégrés
- Étape par étape Backtesting ou à la fois (sauf dans l'évaluation de la stratégie)
- Batterie intégrée d'indicateurs
- Prise en charge de l'indicateur TA-Lib (a besoin de Python Ta-lib / vérifiez les documents)
- Développement facile des indicateurs personnalisés
- Analyseurs (par exemple: TimeTurn, Sharpe Ratio, SQN) et
pyfolioIntegration ( déprécié )- Définition flexible des régimes de commission
- Simulation du courtier intégré avec le marché , la fermeture , la limite , l'arrêt , le stoplimit , la bouche , la bouteille, les commandes de l'OCO * et * OC
- Sizers pour le jalonnement automatisé
- Modes de triche-fer et de triche-ou d'ouverture
- Planificateurs
- Calendriers commerciaux
- Traçage (nécessite un matplotlib)
Le blog:
- Blog
Lisez la documentation complète à:
- Documentation
Liste des indicateurs intégrés (122)
- Référence des indicateurs
- Python> =
3.2- Il fonctionne également avec
pypyetpypy3(pas de tracé -matplotlibn'est pas pris en charge sous Pypy )
backtrader est autonome sans dépendances externes (sauf si vous voulez tracer)
De PYPI :
pip install backtrader
pip install backtrader[plotting]Si
matplotlibn'est pas installé et que vous souhaitez effectuer un traçage
Note
La version minimale matplotlib est 1.4.1
Un exemple pour les flux de données IB / trading:
IbPyne semble pas être dans PYPI. Faire soit:pip install git + https: //github.com/blampe/ibpy.gitou (si
gitn'est pas disponible dans votre système):PIP installe https://github.com/blampe/ibpy/archive/master.zip
Pour d'autres fonctionnalités telles que: Visual Chart , Oanda , TA-Lib , consultez les dépendances dans la documentation.
De la source:
- Placez le répertoire du backtrader trouvé dans les sources à l'intérieur de votre projet
Xyzi
- X: Numéro de version majeure. Devrait rester stable à moins que quelque chose de grand ne soit modifié comme une refonte pour utiliser
numpy- Y: numéro de version mineure. Pour être modifié lors de l'ajout d'une nouvelle fonctionnalité complète ou (Dieu interdit) un changement d'API incompatible.
- Z: Numéro de version de révision. Pour être modifié pour les mises à jour de la documentation, les petites modifications, les petites corrections de bogues
- I: Nombre d'indicateurs déjà intégrés dans la plate-forme