Trend-Following Trading System, Quantitative Trading in Python

Subscribe to newsletter

In a previous post, we demonstrated the mean-reverting and trending properties of SP500. We subsequently developed a trading system based on the mean-reverting behavior of the index. In this installment, we will develop a trend-following trading strategy.

Trend following or trend trading is a trading strategy according to which one should buy an asset when its price trend goes up, and sell when its trend goes down, expecting price movements to continue.

There are a number of different techniques, calculations and time-frames that may be used to determine the general direction of the market to generate a trade signal (forex signals), including the current market price calculation, moving averages and channel breakouts. Traders who employ this strategy do not aim to forecast or predict specific price levels; they simply jump on the trend and ride it. Due to the different techniques and time frames employed by trend followers to identify trends, trend followers as a group are not always strongly correlated to one another. Read more

Subscribe to newsletter https://harbourfrontquant.beehiiv.com/subscribe Newsletter Covering Trading Strategies, Risk Management, Financial Derivatives, Career Perspectives, and More

We continue to use simple moving averages as noise filters in order to generate buy and sell signals. Recall that the SP500 index is trending in the long term, therefore we will use a long-term moving average along with a shorter one.

The trading rules are as follows,

If 3-day simple moving average > 200-day simple moving average, buy $10000 worth of stock

Exit if 3-day simple moving average < 200-day simple moving average

We downloaded SPY data from Yahoo Finance and implemented the above trading rules in a Python program. The picture below shows the equity line of the strategy. We note that using the 3-  and 200-day simple moving averages the strategy is overall profitable.

Quantitative Trading in Python

Next, we proceed to test the robustness of this system. To do so, we vary the length of the second moving averages (200 days in the above example).  The graph below shows the total PnL as a function of the length of the second moving average. We observe that the overall profit remains positive when we change the length of the second moving average. This would indicate that the strategy performance is stable in this parameter regime.

Quantitative Trading in Python

In summary, we developed a simple trading strategy based on the trending property of the SP500 index. The strategy appears to be profitable and stable.


To download the accompanying Excel workbook or Python program for this post:
1. Subscribe to the newsletter. If you're already a subscriber, go to the next step
2. Once subscribed, refer a friend
After completing these steps, you’ll gain access to the file for this post, along with files for a dozen other posts.

Subscribe to newsletter https://harbourfrontquant.beehiiv.com/subscribe Newsletter Covering Trading Strategies, Risk Management, Financial Derivatives, Career Perspectives, and More

Further questions

What's your question? Ask it in the discussion forum

Have an answer to the questions below? Post it here or in the forum

LATEST NEWSTata Steel to Cut 1,600 Dutch Jobs in Cost Reduction Push
Tata Steel to Cut 1,600 Dutch Jobs in Cost Reduction Push

Tata Steel Ltd. plans to cut about 1,600 jobs in the Netherlands as it seeks to cut costs and fund its transition to green steel.

Stay up-to-date with the latest news - click here
LATEST NEWSOneVest Transforms Mobile Wealth Management for Advisors & Clients with a Customizable Mobile App for Today’s Modern Investor
OneVest Transforms Mobile Wealth Management for Advisors & Clients with a Customizable Mobile App for Today’s Modern Investor

NEW YORK — OneVest is pushing the limits of modular wealth infrastructure with its white-labeled mobile app, deployed and transforming the way customers and advisors operate today. Designed with simplicity, the mobile app enables businesses to deliver a modern, fully branded wealth management experience, driving…

Stay up-to-date with the latest news - click here
LATEST NEWSMilei Needs Rush of Soy Dollars to Calm Peso Selloff in Argentina
Milei Needs Rush of Soy Dollars to Calm Peso Selloff in Argentina

Marcelo Cervigni, like thousands of Argentine farmers, is getting ready for the main event of the year: the soybean harvest. The timing couldn’t be better for President Javier Milei, who needs the billions of dollars that shipments fetch to offset the country’s spiraling foreign-exchange deficit.

Stay up-to-date with the latest news - click here
LATEST NEWSConstellation Software Inc., Topicus.com Inc. and Lumine Group Inc. Announce Annual Meetings
Constellation Software Inc., Topicus.com Inc. and Lumine Group Inc. Announce Annual Meetings

TORONTO, April 09, 2025 (GLOBE NEWSWIRE) — The Topicus.com Inc. (“Topicus”) (TSXV:TOI) annual general meeting of shareholders will be held on Tuesday, May 13, 2025 at 8:00 a.m. EST using a virtual meeting format with proceedings conducted solely via live audio webcast. The Lumine Group…

Stay up-to-date with the latest news - click here
LATEST NEWSConstellation Software Inc., Topicus.com Inc. and Lumine Group Inc. Announce Annual Meetings
Constellation Software Inc., Topicus.com Inc. and Lumine Group Inc. Announce Annual Meetings

TORONTO, April 09, 2025 (GLOBE NEWSWIRE) — The Topicus.com Inc. (“Topicus”) (TSXV:TOI) annual general meeting of shareholders will be held on Tuesday, May 13, 2025 at 8:00 a.m. EST using a virtual meeting format with proceedings conducted solely via live audio webcast. The Lumine Group…

Stay up-to-date with the latest news - click here

Leave a Reply