|
||
|
|
Multi-Market Techniques for Robust Trading Strategies by Michael R. Bryant
One of the biggest concerns among systematic traders is over-fit trading strategies. An over-fit strategy looks great in back-testing but fails in forward testing or in real-time trading. There are many factors that affect whether or not a strategy is over-fit, but one big factor is robustness. In this context, robustness refers to how sensitive a strategy is to variations in the data on which it relies. A more robust strategy is less sensitive to variations in the price data. In other words, a robust strategy will perform well for a wider variety of market prices than a less robust strategy.
Arguably, a trading strategy that works well on a variety of different markets is more robust than one that works on just one of those markets. However, building strategies that work on a variety of markets is just one way to achieve robustness using a multi-market approach to strategy design. This article discusses some of the different multi-market techniques that can be used to build more robust trading strategies.
Insensitivity to Prices The key element of strategy robustness that I want to focus on is insensitivity to prices. Insensitivity means that the strategy can trade profitably for a wide variety of prices. The degree of variation in prices can range from small differences, such as the high or low being different by a few ticks, to large differences, such as completely different markets.
For small variations, it should be
clear that a strategy should not be so dependent on a specific price or pattern
of prices that even a few ticks variation in the pattern will cause the strategy
to fail. Nonetheless, this can happen in practice if a strategy is designed for
a specific market using techniques such as price patterns in which the entry or
exit conditions depend on certain prices or the relationship between specific
prices. Since the future never exactly replicates the past, it's important not
to rely on patterns that are so tied to the past that they're not likely to be
repeated. In fact, in most cases, such "patterns" are probably just random
market noise. At this end of the spectrum of robustness, then, a worthwhile
objective would be to make strategies less sensitive to random market noise.
Techniques for Different Degrees of Robustness In this section, I'll discuss three different techniques for building robustness into a trading strategy, each one focused on a different degree of robustness. To illustrate the ideas, I'll use examples generated by Adaptrade Builder, a strategy discovery and code generation tool that builds trading strategies in EasyLanguage for TradeStation and MultiCharts.
Multi-Market Strategies The first technique, which is also the most commonly encountered, is to build a strategy over multiple markets, where each market is different. Some traders only trade multi-market strategies based on the belief that single-market strategies are too likely to be over-fit. Other traders prefer to focus on a single market.
Regardless of your preference, a trade-off between robustness and performance should be expected when building strategies. It would be asking too much to expect a strategy designed to trade multiple markets to perform as well on any given market as a strategy designed specifically for that market. On the other hand, the risk of over-fitting will generally be higher for a single-market strategy.
A middle ground is possible, however. While there's nothing wrong with trying to develop a strategy that reliably trades a basket of largely unrelated markets -- say, crude oil, gold, wheat, stock indexes, forex, etc. -- another approach is to group related markets and build over only the markets in each group. I'll focus on the latter approach here.
In the example below, I've built a strategy over three stock index futures: E-mini S&P MidCap 400 (EMD), mini Russell 2000 (TF), and E-mini S&P 500 (ES). Using five years of daily bars and assuming $25 per contract for trading costs (slippage, commissions, etc.), I built a strategy by maximizing the net profit while minimizing the drawdown, where the net profit was weighted twice as much as the drawdown. I reserved the last 25% of the data for out-of-sample testing. Position sizing was set to use one contract per trade. The results are shown below in Fig. 1.
Figure 1. Equity curves for a trading strategy built over daily bars of the ES, EMD, and TF futures markets.
The thicker curve at the top represents the combined (portfolio) equity curve, whereas the three curves below represent the respective equity curves for each market. It's apparent from the equity curves for each market that the strategy trades very similarly on each market.
While the three markets are related and probably have a high degree of correlation, the actual prices are different in each price series. We can conclude that the strategy is therefore insensitive to the variation in prices among the markets -- it works pretty much the same on each market even though the tick-by-tick details of the prices are different for each market. This helps achieve the goal of making the strategy insensitive to random market noise since, presumably, random elements will be different from market to market even in related markets.
Moreover, it's reasonable to conclude that the strategy logic is keying in on elements that the three markets have in common. Since all three markets are stock index futures, these elements are presumably related to how stock index futures trade on this time frame.
Intraday Single-Market Strategies Another technique for making strategies more robust is one that can be applied to a single-market strategy on intraday data. Let's say you want to develop a trading strategy for 5 minute bars of the E-mini S&P 500 futures (ES). If you want to focus on the ES but you're concerned about inadvertently fitting spurious patterns at that bar size, you can try fitting it simultaneously to other, similar bar sizes. This approach is based on the idea that a strategy that trades on, say, 5 minute bars should also hold up on, say, 7 minute bars. Any strategy that doesn't trade similarly on both bar sizes would be presumed to be over-fit to one price series and therefore excluded.
In Fig. 2, the results of building a strategy over 5, 7, and 9 minute bars of the ES (day session) are shown. One year of intraday data was used, and $25 per contract for trading costs was assumed. The other settings were the same as in the previous example except that 33% of the data was reserved for out-of-sample testing.
Figure 2. Equity curves for a trading strategy built over 5, 7, and 9 minute bars of the ES futures market.
Directly Including Noise If the goal is make sure the strategy being developed is insensitive to market noise, the most direct approach is to include noise in the build process. There are several ways to do this. In an article from my other newsletter, The Breakout Bulletin, I explained how to create synthetic price data by randomizing certain elements of an existing price series.
In that article, I randomized the order of the price changes, which preserves the price changes themselves but loses any serial dependency in the data. There are at least two alternative approaches that would preserve the serial correlations while creating a randomly modified version of the original series:
Regardless of which method is chosen,
the resulting series would be added to the portfolio, just as in the prior
examples. Since the goal is to make sure the resulting strategy is insensitive
to the random elements introduced into the data, at least several such synthetic
price series should be added to the portfolio in addition to the original
prices. The strategies would then be built over all series, original and
synthetic, as a portfolio. Conclusions Achieving insensitivity to price variation is one way to build robustness into a trading strategy. The degree of price variation can range from random fluctuations (i.e., noise) to prices from a completely different market. To develop a strategy that's insensitive to the desired degree of price variation, the strategy can be built and tested over a portfolio of markets consisting of the original or target price series together with other price series that introduce the desired degree of variation.
The three techniques discussed in this article differed in how the price variation was created. The first technique used different but related markets. The second technique used different bar sizes of the same market. The last technique proposed using synthetic price data generated from the original series by randomly modifying elements of the original series.
Regardless of the approach used, the basic idea of building trading strategies to be less sensitive to the data used to design and test them should help you create more robust trading strategies. And a robust trading strategy is less likely to be over-fit to the market and therefore more likely to hold up well in real-time trading.
Mike Bryant Adaptrade Software
*This article appeared in the August 2012 issue of the Adaptrade Software newsletter.
HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN INHERENT LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT ACTUALLY BEEN EXECUTED, THE RESULTS MAY HAVE UNDER- OR OVER-COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY. SIMULATED TRADING PROGRAMS IN GENERAL ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFITS OR LOSSES SIMILAR TO THOSE SHOWN. |
If you'd like to be informed of new developments, news, and special offers from Adaptrade Software, please join our email list. Thank you.
For Email Marketing you can trust
|
||||||||||||||
Copyright (c) 2004-2019 Adaptrade Software. All rights reserved.