Python and Trend Following Trading Strategy (Backtest, Rules, Code, Setup)
Nowadays, data manipulation and programming are essential in finance for analyzing large datasets of historical data, modeling different financial scenarios, and, of course, backtesting trading strategies. But what do they use to do all this? The answer is Python.
Python is the most popular programming language in finance, but most people think it is complicated and hard to learn. However, it is pretty intuitive and easy to get started with. As we will show you, you can backtest a simple trading strategy by writing only a few lines of code.
In this article, we are going to demonstrate how to backtest a trading strategy in Python: from choosing the libraries and downloading the data to generating the trading signals and plotting the returns.
Also, if you are looking for a profitable investment strategy, you might want to check out that clickable link. We have hundreds of strategies with specific trading rules and backtests, also Python trading strategies.
Python-related resources
We have written many articles about Python, and you might find these interesting:
- Python Trading Strategy Backtesting – How To Do It (Plenty of examples with code and images)
- Get Started With Python Making Trading Strategies (Step By Step)
- How To Download Data For Your Trading Strategy From Yahoo!Finance With Python
- Best Python Libraries For Algorithmic Trading – Examples
- How To Measure Skewness Of A Trading Strategy Using Python
- How To Build A Trading Strategy From FRED Data In Python
- How To Measure Skewness Of A Trading Strategy Using Python
- How To Do A Monte Carlo Simulation Using Python
What libraries are we going to use?
A Python library is a collection of related modules. It contains bundles of code that can be used repeatedly in different programs. It makes Python Programming simpler and more convenient for the programmer as we don’t need to write the same code again and again for different programs.
This is one of the most important aspects to define because many libraries are dedicated exclusively to backtest trading strategies such as Zipline and Backtesting. However, in this case, we prefer to use pandas because it is more intuitive and easy to learn. Pandas is a very popular library used for data manipulation and analysis of large data sets.
Apart from pandas, we are going to use yfinance to download stock data from the Yahoo Finance website and matplotlib to create some charts and illustrate the results and performance of the strategy.
In the first few lines of our program, we need to import these libraries and define them:

Downloading stocks historical data
As we mentioned earlier, we are going to download our data from Yahoo Finance. Using the yfinance library, thi
