Algorithmic Trading Model for Mean-Reversion with MACD 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 Moving Average Convergence/Divergence (MACD) indicator as the entry and exit signals. The model will use a 26-period Exponential Moving Average (EMA), a 12-period EMA, and a nine-period EMA as the signal line for long trades only. The model will initiate a long position when the long EMA line crosses the signal line from below. Conversely, the model will exit the long position when the long EMA line crosses the signal line from above.

ANALYSIS: In this modeling iteration, we analyzed ten stocks between August 1, 2016, and August 27, 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 MACD signals 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.