Package: autotrader
AutoTraderAutoTrader is Python-based platform intended to help in the development, optimisation and deployment of automated trading systems.
A basic level of experience with Python is recommended for using AutoTrader, but thedocsaim to make using it as easy as possible with detailed tutorials and documentation.Latest NewsVersion 0.7 has been released, adding integrations withCCXTanddYdXcrypto exchanges. Many more powerful upgrades too.AutoTrader has been featured in GitClone's recent article,Top Crypto Trader Open-Source Projects on Github.FeaturesA feature-rich trading simulator, supportingbacktestingand
papertrading. The 'virtual broker' allows you to test your strategies in a risk-free, simulated environment before going live. Capable
of simulating multiple order types, stop-losses and take-profits, cross-exchange arbitrage and portfolio strategies, AutoTrader has
more than enough to build a profitable trading system.Integrated data feeds, making OHLC data retrieval as easy as possible.Automated interactive visualisationusingBokehLibrary of custom indicators.Live tradingsupported for multiple venues.Detailed documenation and tutorialsRepositoryof example strategies[back to top]Supported Brokers and ExchangesBrokerAsset classesIntegration statusOandaForex CFDsCompleteInteractive BrokersManyIn progressdYdXCryptocurrenciesCompleteCCXTCryptocurrenciesIn progress[back to top]InstallationAutoTrader can be installed using pip:pip install autotraderUpdatingAutoTrader can be updated by appending the--upgradeflag to the install command:pip install autotrader --upgrade[back to top]DocumentationAutoTrader is very well documented in-code and onRead the Docs. There is also adetailed walthrough, covering everything from strategy concept to livetrading.Example StrategiesExample strategies can be found in thedemo repository.[back to top]Backtest DemoThe chart below is produced by a backtest of the MACD trend strategy documented in thetutorials(and available in thedemo repository). Entry signals are defined by MACD crossovers, with exit targets defined
by a 1.5 risk-to-reward ratio. Stop-losses are automatically placed using the customswing detectionindicator, and position sizes are dynamically calculated based
on risk percentages defined in the strategy configuration.Running this strategy with AutoTrader in backtest mode will produce the following interactive chart.Note that stop loss and take profit levels are shown for each trade taken. This allows you to see how effective your exit strategy is - are you being stopped out too
early by placing your stop losses too tight? Are you missing out on otherwise profitable trades becuase your take profits are too far away? AutoTrader helps you
visualise your strategy and answer these questions.[back to top]ContributingTo contribute toautotrader, please read the instructions below,
and stick to the styling of the code.Setting up for DevelopmentCreate a new Python virtual environment to isolate the package. You
can do so usingvenvoranaconda.Install the code in editable mode using the command below (run from
inside theautotraderroot directory). Also install all dependencies
using the[all]command, which includes the developer dependencies.pip install -e .[all]Install thepre-commithooks.pre-commit installStart developing! After following the steps above, you are ready
to start developing the code. Make sure to follow the guidelines
below.Developing AutoTraderFork the repository and clone to your local machine for development.Runblackon any
code you modify. This formats it according toPEP8standards.Document as you go: usenumpy styledocstrings, and add to the docs where relevant.Write unit tests for the code you add, and include them intests/.
This project usespytest.Commit code regularly to avoid large commits with many changes.Write meaningful commit messages, following theConventional Commits standard.
The python packagecommitizenis a great tool to help with this, and is already configured for this
repo. Simply stage changed code, then use thecz ccommand to make a
commit.Open aPull Requestwhen your code is complete and ready to be merged.Building the DocsTo build the documentation, run the commands below.cd docs/
make html
xdg-open build/html/index.htmlIf you are actively developing the docs, consider usingsphinx-autobuild.
This will continuosly update the docs for you to see any changes
live, rather than re-building repeatadly. From thedocs/directory, run the following command:sphinx-autobuild source/ build/html --open-browser[back to top]LegalLicenseAutoTrader is licensed under theGNU General Public License v3.0.DisclaimerThis platform is currently under heavy development and should not be considered stable for livetrading until version 1.0.0 is released.Never risk money you cannot afford to lose. Always test your strategies on a paper trading account before taking it live.[back to top]