Yahoo API Note:
[2018-11-16] After some testing it would seem that data downloads can be
again relied upon over the web interface (or API v7)
Tickets
If it's NOT an issue (i.e.: bug), don't post it as an issue. It will be automatically closed.
For feedback/questions/... use the Community
Here a snippet of a Simple Moving Average CrossOver. It can be done in several different ways. Use the docs (and examples) Luke!
from datetime import datetime
import backtrader as bt
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=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()
Including a full featured chart. Give it a try! This is included in the samples
as sigsmacross/sigsmacross2.py. Along it is sigsmacross.py which can be
parametrized from the command line.
Live Trading and backtesting platform written in Python.
- Live Data Feed and Trading with
- Interactive Brokers (needs
IbPy2and benefits greatly from an installedpytz)- Visual Chart (needs a fork of
comtypesuntil a pull request is integrated in the release and benefits frompytz)- Oanda (needs
oandapy) (REST API Only - v20 did not support streaming when implemented)- Data feeds from csv/files, online sources or from pandas and blaze
- Filters for datas, like breaking a daily bar into chunks to simulate intraday or working with Renko bricks
- Multiple data feeds and multiple strategies supported
- Multiple timeframes at once
- Integrated Resampling and Replaying
- Step by Step backtesting or at once (except in the evaluation of the Strategy)
- Integrated battery of indicators
- TA-Lib indicator support (needs python ta-lib / check the docs)
- Easy development of custom indicators
- Analyzers (for example: TimeReturn, Sharpe Ratio, SQN) and
pyfoliointegration (deprecated)- Flexible definition of commission schemes
- Integrated broker simulation with Market, Close, Limit, Stop, StopLimit, StopTrail, StopTrailLimit*and *OCO orders, bracket order, slippage, volume filling strategies and continuous cash adjustmet for future-like instruments
- Sizers for automated staking
- Cheat-on-Close and Cheat-on-Open modes
- Schedulers
- Trading Calendars
- Plotting (supports 2 backends: matplotlib and bokeh)
The blog:
Read the full documentation at:
List of built-in Indicators (122)
- Python >=
3.2- It also works with
pypyandpypy3
Compatibility is tested during development with 2.7 and 3.5
The other versions are tested automatically with Travis.
backtrader is self-contained with no external dependencies (except if you
want to plot)
From pypi:
pip install backtrader
pip install backtrader[plotting]If
matplotlibandbokehare not installed and you wish to do some plotting
Note
The minimum matplotlib version is 1.4.1
An example for IB Data Feeds/Trading:
pip install ibpy2
For other functionalities like: Visual Chart, Oanda, TA-Lib, check
the dependencies in the documentation.
From source:
- Place the backtrader directory found in the sources inside your project
X.Y.Z.I
- X: Major version number. Should stay stable unless something big is changed like an overhaul to use
numpy- Y: Minor version number. To be changed upon adding a complete new feature or (god forbids) an incompatible API change.
- Z: Revision version number. To be changed for documentation updates, small changes, small bug fixes
- I: Number of Indicators already built into the platform