Automated Trading Strategy #50
Strategy 50 is our first portfolio strategy. You can also trade each contract on its own. Within the portfolio, ES and YM have the highest profit factor at 8.61 and 11.57, respectively.
There is no guarantee that these strategies will have the same performance in the future. Some may perform worse and some may perform better. We use backtests to compare historical strategy performance. Backtests are based on historical data, not live data. There are no guarantees that this performance will continue in the future. Trading futures is extremely risky. If you trade futures live, be prepared to lose your entire account. We recommend using our strategies in simulated trading until you/we find the holy grail of trade strategy.
One of my new favorite shows is called Pirate Gold Of Adak Island and it’s a reality tv series that documents a treasure hunt for approximately $365 million of gold buried around Adak Island in Alaska. Buried in 1882, a few tins of gold coins have been found in the 140 years since it was buried, and now this show seeks to document an attempt to find the rest. I won’t spoil the show for anyone that plans on watching it, but it did not disappoint.
In many ways, what we’re doing with this newsletter is the same thing they’re doing on Adak Island. We know there’s gold, but we have to find it. ATS seeks to document the journey.
As a quick reminder, our goal is to find the holy grail of automated trade strategy. Today we’re publishing a milestone strategy: Strategy 50. These are all the strategies we’ve published so far on our hunt.
Click here for links to all strategies.
Where are we now? Like the treasure hunters in Adak Island, Alaska, we’ve found a few gold coins, but we’re looking for the treasure. And, we may have found that treasure in Strategy 50. It uses a minute based data series on several different contracts on the same high performing, low trade count strategy.
These are the futures contracts we backtested:
6B - British Pound (FX)
6E - Euro (FX)
CL - Crude Oil
ES - E-Mini S&P 500
FDAX - DAX
GC - Gold
NQ - E-Mini NASDAQ 100
RTY - E-Mini Russell 2000
YM - Mini Dow
ZB - 30 year Bond
ZN - 10Year Note
ZS - Soybeans
ZW - Wheat
The standard backtest, based on Strategy 50 and a 10 minute data series yielded the following results:
Both charts show the results of Strategy 50 over one year. The top chart shows the results of the strategy when it closes at the end of the day. The bottom chart shows the results of the strategy when it does not close at the end of the day. In general, strategies that close at the end of the day pose less risk, but are less profitable. You also don’t have to pay initial margin. As a result, we tend to focus on strategies that close at the end of the day, but I wanted to show the results of both scenarios. To learn more about the impact of initial margin, click here.
In the top chart, you’ll notice that ES and YM have the highest profit factor at 8.61 and 11.57, respectively. The trend continues in the bottom chart with ES and YM having a profit factor of 9.14 and 13.22, respectively.
If we look at the number of profitable trades compared to unprofitable trades, ES and YM also lead the pack. In the first chart YM is profitable 87.88% of the time and ES is profitable 80% of the time. This is the same for both charts.
If we look at total portfolio results in green, we have an average profit factor of 2.43, and an annual net profit of $64K on 430 trades for Strategy 50 if it closes at the of the day. If it does not close at the end of the day, the average profit factor, net profit and trade count increases to 2.67, $73K and 434, respectively.
Due to the way in which portfolio stats are presented, we don’t have a max drawdown to share, but the average max drawdown for each contract is less than $1,500 under both scenarios.
What are the main takeaways here? There are several:
If you can only trade one contract, or if you want to start with one contract on Strategy 50 use YM. YM only made 33 trades in the standard backtest, but 88% were profitable. Unfortunately, YM only made $8,875 in one year, which is low.
One way to increase net income is to add additional YM contracts, so instead of running only 1 contract for $8,875, you can run 5 contracts for 5x the net income. Another way to increase income is to add additional contracts using the same strategy. For our portfolio we decided to run everything except for ZW, ZS, and ZB.
The first step in our testing process is to run a standard backtest. The next test is a backtest using high order fill, however, you can’t do this when you’re using more than one underlying contract so we had to skip to the next test: market replay. Market replay results are more accurate than both standard and high order fill results because there’s more data — more data equates to a better simulation of the market and how the strategy will perform in the market.
Unfortunately, due the size of data for market replay it is difficult and time consuming to run market replay data for a year so we just ran it for two weeks from 6/12/2022 to 7/1/2022. The results were mixed. Certain contracts like YM and ES confirmed the standard backtest results. Other contracts like FDAX, NQ and ZN did not. In fact, the results were the exact opposite. So we flipped the strategy on these contracts and ran them over the same time period. These were the results:
This is the portfolio we’ll be tracking in the Mudder Report going forward for Strategy 50.
Now it’s time for some bad new/good news.
Bad news - The bad news about Strategy 50 is that the market replay results varied from the standard backtest. The results varied so much that we had to manipulate the final portfolio results (flip the strategy for three contracts). I contemplated throwing this strategy out altogether. But there’s some good news here too.
Good news - First, YM and ES perform exceptionally well using Strategy 50 in both the standard backtest as well as the market replay. Second, both YM and ES also performed much better in terms of net income, which is the reason we’re using multiple contracts on Strategy 50 in the first place. If the market replay test is showing much higher net income for YM and ES, we can focus on only using YM and ES for the portfolio. Combined, the two contracts have an average profit factor over 10 for Strategy 50, which is phenomenal. Third, one of the primary benefits of a portfolio is that it spreads the risk around. This portfolio is diversified in both strategy command and contract type. By testing this portfolio strategy, we’ll have a chance to see what this diversification looks like over time.
Admittedly, Strategy 50 has the potential to be one of the best or worst strategies we’ve ever shared, but based on preliminary results I have good reason to think it’s the former. And with stats this good, that good reason is enough to really excite the soul.
The next step in the test is to run the portfolio strategy on a simulated live account on a virtual server located in Chicago (the closer you can get to the actual exchange, the better), which is what we’re doing now. We just started the live test on Tuesday (7/5). Over the next few months we’ll know what kind of strategy this is. It’s too soon to tell just yet, but subscribers can follow results of this portfolio in the Mudder Report.
The first report on Strategy 50’s live performance will come out in the next Mudder Report.
Now, I’m going to get into how to recreate Strategy 50. The strategy is also available for download (C#) below.
We found Strategy 50 after much analysis around the same basic structure. We’ve looked at this divergence structure before in Strategy 43, but this time we went back to see which parts of that strategy were the most successful. Ultimately it led us to 8 different strategies (and I’ve included all 8 strategies in the download section below). Originally referred to as Strategy 50c1, Strategy 50 is the best of those strategies.
Now, this is going to get a little confusing, but I’m hoping it helps to provide an understanding for how we found Strategy 50.
In Strategy 43, we introduced the idea of creating a double variable around two indicators. Strategy 43 is the cumulative product of all those variations. For Strategy 50 we wanted to find the best performing variations so we dissected Strategy 43 and performed a standard backtest on each possible variation. These are the results of all combinations with a profit factor of 2 or higher:
Note, we optimized each strategy based on minutes. You’ll notice that 54 combinations had a profit factor of 2.0 or above.
If you were to trade the entire portfolio, based on standard backtest results, net profit is $613K and profit factor is 3.66. However, we don’t like to trade multiple strategies on the same contract because it may produce conflicting long/short orders (even with the low trade count) — we only want to trade the best strategy on each contract. So, we put the strategies with the highest profit factor (top chart) and highest net income (bottom chart) for each contract into a separate portfolio. These were the results:
Strategy 50c1 is the highest performing strategy across most contracts. So we took Strategy 50c1 and renamed it Strategy 50.
I’m going to provide you with all 8 downloads for all 8 strategies above (Strategy 50, 50_original, 50d, 50i, 50f1, 50c, 50a1 and 50f) in the ‘downloads’ section below — again, they are all variations on Strategy 50. I’m also going to provide a description for how to create Strategy 50.
Now, let’s get into the strategy description. All downloads are available (C#) at the end.