Algorithmic Trading Model for Mean-Reversion with Bollinger Bands and Stop Loss Signals Using Python

NOTE: This script is for learning purposes only and does not constitute a recommendation for buying or selling any stock mentioned in this script.

SUMMARY: This project aims to construct and test an algorithmic trading model and document the end-to-end steps using a template.

INTRODUCTION: This algorithmic trading model employs a simple mean-reversion strategy using the Bollinger Bands as the entry and exit signals. The model will use a trend window size of 20 days for long trades only. When the stock price reaches the lower band, the model will initiate a long position. Conversely, the model will exit that long position when the stock price reaches the upper band. In addition, the model will also generate an exit signal when the holding reaches a 10% loss at the end of the day. Finally, we will compare two models where one model has a 10% stop-loss limit while the other does not.

ANALYSIS: In this modeling iteration, we analyzed ten stocks between January 1, 2016, and August 6, 2021. The models’ performance appeared at the end of the script. Also, the models without stop-loss produced a better return six out of the ten stocks. Moreover, the simple buy-and-hold approach came out ahead for all stocks except one.

CONCLUSION: For most stocks during the modeling time frame, the long-only trading strategy with Bollinger Bands did not produce a better return than the buy-and-hold approach. We should consider modeling these stocks further by experimenting with more variations of the strategy.

Dataset ML Model: Time series analysis with numerical attributes

Dataset Used: Quandl

The HTML formatted report can be found here on GitHub.