Skip to content
Support for Oanda-V20 API in backtrader
Branch: master
Clone or download
happydasch Merge pull request #31 from edesmars/multiprocessing
Allow Cerebro to run on multiple CPU
Latest commit d27f4b3 Feb 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
btoandav20 wrap threading.event to allow it to be serialized for multiprocessing… Feb 12, 2019
examples/oandav20test Added candle support for live data. This will provide volume. Nov 21, 2018
.travis.yml adding pytest Mar 6, 2018
LICENSE Initial commit Mar 1, 2018 Adding available features Feb 12, 2019
Requirements.txt initial setup Mar 1, 2018


Build Status

Support for Oanda-V20 API in backtrader

This integration is still under development and may have some issues, use it for live trading at your own risk!

We are looking for contributors: if you are interested to join us please contact us

What is it ?

backtrader-oandav20 is a package to integrate OANDA into backtrader. It uses the v20 API of OANDA. It can be used with demo or live account. We highly recommend to have a specific account to use backtrader with OANDA. You should not trade manually on the same account if you wish to use backtrader.

It includes all necessary utilities to backtest or do live trading:

  • Store
  • Broker
  • Data Feeds
  • Sizers

Available features:

  • Accessing oandav20 API
  • Streamming prices
  • Streamming events
  • Get history price for backtesting
  • Replay functionality for backtesting
  • Support different type of orders:
    • Order.Limit
    • Order.Stop
    • Order.StopLimit (using Stop and upperBound / lowerBound prices)
    • Order.StopTrail
    • Bracket orders are supported by using the takeprofit and stoploss order members and creating internally simulated orders.
  • 4 different Sizers:
    • OandaV20Percent - returns position size which matches the percent amount of total cash
    • OandaV20Cash - return position size which matches the cash amount
    • OandaV20RiskPercent - returns position size which matches the total risk in percent of total amount (max stop loss)
    • OandaV20RiskCash - returns position size which matches the total risk in percent of total amount (max stop loss)
  • Possibility to load existing positions from the OANDA account

Required dependencies


No package is available at the moment so you need to install it manually. The following steps have been tested on Mac OS High Sierra and Ubuntu 16 and 18.

  1. Install backtrader pip install backtrader[plotting] (
  2. Download a zip file of the master branch
  3. Extract the zip files
  4. Copy the btoandav20 into your own working directory
  5. Install dependencies:
    • pip install pyyaml
    • pip install v20
  6. Import btoandav20 into your script: import btoandav20 (this is considering your script is at the root of your folder)
  7. You can then access the different such as :
    • Store: btoandav20.stores.OandaV20Store
    • Data Feed: btoandav20.feeds.OandaV20Data
    • Broker: btoandav20.brokers.OandaV20Broker
    • Sizers: btoandav20.sizers.OandaV20Cash (other sizers are available)

If you encounter an issue during installation, please check this url first: and create a new issue if this doesn't solve it.

Get Started

See the example folder for more detailed explanation on how to use it.


All code is based on backtrader oandastore which is released under GNU General Public License Version 3 by Daniel Rodriguez

You can’t perform that action at this time.