How To Develop A Futures Trading System Ebook
How To Develop A Futures Trading System Ebook
How To Develop A Futures Trading System Ebook
Contents
1. Introduction. 2. Timeframe. 3. Choosing an Instrument to Trade. 4. The Trade Set-up. 5. Entry Rules. 6. Stop Loss Rules. 7. Profit Taking Exits. 8. Ways to Improve the Profit per Trade. 9. Money Management Rules. 10. Conclusion.
1. Introduction
A trading strategy is simply a pre-determined set of rules that a trader has developed to guide their trading. The advantages to the trader of developing a trading strategy are: It removes emotions from trading. A trader following a strategy knows what to do whatever the market does. A trader that does not have a strategy tries to make decisions when the market is open and is liable to become emotionally attached to positions. They may experience panic and indecision when the market does not move in their favour, as they do not have a prepared response. Saving time. Developing a trading strategy that has an edge is hard work. However, once developed the rules can easily be automated freeing the trader from having to watch charts all day and allowing time to develop further strategies. However, developing a trading strategy that is effective can become a complex process. There are computer programs available (such as TradeStation and WealthLab) which aim to automate the process. Unfortunately the ease with which systems can be developed and optimised using these programs can mislead the unwary trader. Fundamentally a strategy must be built around some kind of statistical edge. It is this edge that will play out over time and create positive cashflow for the system and the trader.
In this article we will examine each stage in the process of developing a trading strategy, from identifying a possible edge through to a written trading plan. Along the way we will develop a simple strategy to day trade the Dow Jones index.
2. Timeframes.
It is important to decide the timeframe that we are going to work towards in our system. This really comes down to how much time we are prepared to spend trading and how active we require the system to be in terms of the number of trades. Broadly speaking there are four main timeframes: Timeframe Long-Term Medium-Term Short-Term Day-Trade Length of Trade Months Weeks Days Up to 1 day Data Used End of Day End of Day Intra Day Intra Day
Long Term trading systems will save on commission costs and have larger profits per trade. Shorter term trading systems will rack up the commission costs and generally make less per trade but the frequency of trading opportunities will make up for this. For example: System 1 makes an average of 250 points per trade but only trades 4 times a year. System 2 only makes an average of 10 points per trade but trades 200 times a year. System 1 makes 1,000 pts a year but system 2 makes 2,000 points a year. However if we allow 5 pts per trade for commission and slippage then system 1 costs 20 pts/year whereas system 2 costs 1,000 pts/year. Both systems make a similar net profit over the course of a year however there are a number of points to bear in mind: With only 4 trades per year for system 1 every trade is important and must be taken. It is likely that the bulk of the profits will come from only one of the trades so this must not be missed. With system 2 producing a new signal every day it is not so reliant on individual trades. System 1 will require a larger capital base to trade as the trades will have to ride wider swings. System 2 will require a lot more work to trade as intra day data will have to be monitored. System 2 will be psychologically easier to trade as the equity draw down periods will be shorter. Well designed and robust day trading systems will rarely have losing months.
The frequency of trading is an essential element of any trading system and our choice of timeframe will help to determine it. There is no right answer it is very much a case of what suits the individual trader. For the purpose of this article we will look at developing a day trading system.
In order to develop a trading strategy it is extremely important to obtain historical data for the actual instrument that we intend to trade. Although derivatives based on the same underlying instrument will move generally in tandem with each other it will not be exact. The futures will move more quickly and to greater extremes than the underlying cash index. We cannot, therefore, develop a system using the cash index and expect it to perform to the same degree when trading futures or any other derivative.
So far we have decided to develop a system to day trade the mini Dow Jones future. Next we need to identify a market characteristic that can provide a statistical edge to form the set-up for our trades. A set-up is a standardised set of conditions that we will use to identify a potential trade. Once the market characteristic that we want to take advantage of is identified then the set-up conditions can be derived. Lets work through an example. The open-range breakout is a very popular trading style. The theory behind it is that markets will tend to put in an extreme for the day (either the high or the low) relatively early in the trading day. How true is this though? Examining the mini Dow Jones futures data for the period January 2004 to June 2004 (124 trading days) we find the following results: Opening Range for first : 15 minutes 30 minutes 45 minutes 60 minutes 75 minutes 90 minutes 105 minutes 120 minutes 135 minutes 150 minutes 165 minutes 180 minutes High or Low already in place: 41 57 78 86 91 95 103 105 112 112 113 115 Percentage of total (124 days): 33% 46% 63% 69% 73% 77% 83% 85% 90% 90% 91% 93%
We can see that 1/3 (33%) of the days examined either a high or low was in place within 15 minutes of the open, more than 2/3 (69%) within 1 hour and more than 90% in 3 hours. That looks statistically significant. If we trade a break of the high or low after 60 minutes with a stop outside of the other extreme up to that point we know that we will not be stopped out on 69% of our trades. However we need to examine our
data more closely as it could be the case that most of the days movement actually occurs within the opening period leaving us very little room for our trade to move into profit. So lets look at the opening range as a percentage of the total days range: Opening Range for first: 15 minutes 30 minutes 45 minutes 60 minutes 75 minutes 90 minutes 105 minutes 120 minutes 135 minutes 150 minutes 165 minutes 180 minutes Percentage of Days Range 24% 33% 43% 47% 52% 55% 58% 60% 62% 64% 66% 68%
We must assume that the percentage of the days range represents our stop, as this is the point where our reason for being in the trade (the breakout) becomes invalid. Our potential profit from the trade is represented by the balance of the days range. E.g. at 30 minutes the stop loss is 33% of the days range leaving 67% as the potential profit. We can also see from the first table that we have a 46% chance of not hitting the stop. We can calculate the maximum possible expectancy (the average percentage amount of the daily trading range that we capture) from these figures using the formula: Maximum Expectancy = (Pw x (1-Al)) ((1-Pw) x Al) Where Pw = percentage of days where the stop is not hit, from the first table. And Al = stop as a percentage of the total days range, from the second table. Opening Range for first: 15 minutes 30 minutes 45 minutes 60 minutes 75 minutes 90 minutes 105 minutes 120 minutes 135 minutes 150 minutes 165 minutes 180 minutes Calculated maximum expectancy: 9% 13% 20% 22% 21% 22% 25% 25% 28% 26% 25% 25%
We can see that the best combination of opening range and potential profit occurs at 135 minutes where we can expect to capture, on average, 28% of the days range. It must be remembered that this is the maximum available profit as, at the moment, we
are assuming that we close the trade at the second extreme of the day, i.e. exactly at the high or low. The purpose of this exercise was to prove that the open range breakout has the potential to form the basis of a trading set up. From the third table we can see that every range tested has a positive expectancy and that there is very little to separate a breakout of the first hour from that of the first 3 hours. The percentage of stop outs decreases but so does the potential profit. It makes very little difference whether we choose to trade a break out of the first hour, the first three hours or anything in between, but the maximum potential comes at 135 minutes (9.30am to 11.45am ET) so well use that.
5. Entry Rules.
Now we have our trade set-up established, we must decide exactly how we will enter a trade once the set-up criteria is met. The set-up for our strategy is very straight forward, we will wait until 11.45am ET and then enter a long (buy) if the high of the opening range (9.30am to 11.45am) is broken or a short (sell) if the low of the opening range is broken. The easiest way to establish this is to place a stop order to buy in the market at 1 tick above the high of the range and a stop order to sell in the market at 1 tick below the low of the range. As an example, lets take the trading day of 2 Jan 04. The opening range gives a high of 10510 at 10.58am and a low of 10462 at 10.00am. At 11.45 we place the following orders: Buy stop at 10511 Sell stop at 10461 When the market hits one of the stops to open a trade we will leave the other stop in the market as our initial stop loss. If that stop loss was hit then our reason for being in the trade would be invalid. Our entry rules are fairly simple but we could look at altering these in two ways: 1. We could wait a few more ticks after a break of the opening range before opening our trade. E.g. we could set our stops at 5 pts past the high and low of the range, in the example for 2 Jan 04 that would be a buy at 10515 and a sell at 10457. The reasoning behind this is to protect against the market just triggering our stop at just past the days high or low and then reversing. We can examine this theory by looking at the maximum favourable movement (MFE) on each trade that is triggered, that is the maximum amount the trade moves in our favour during the day.
MFE 0 1 2 3 4
No of trades 2 2 6 9 11
From the table we can see that on 2 occasions the market hit our stop and reversed immediately, costing 40 pts in total at the end of the day. To avoid this we could have a trigger of 2 points instead of 1 for the trade entry. However there are 109 trades in total for the sample and adding 1 point to each trade entry would cost an extra 107 point on the remaining trades, a net loss of 67 points. We can conclude that waiting more than 1 tick to enter the trade reduces the overall profitability of the system. 2. Alternatively, once the set-up is triggered we could wait for a retracement to occur before entering the trade. For example on 2 Jan 04 once the low of 10462 is broken we enter a limit order to sell at, say, 5 pts better at 10467. The danger here is that we may miss out on the biggest moves if the price does not retrace, however, we will make points on those that do. We need to examine the maximum move against our entry price (MAE): MAE 0 1 2 3 4 No of Trades 5 6 9 11 15 Missed Trades 305 348 534 634 717 Savings 0 103 200 294 376 Net Gain/(loss) (305) (245) (334) (340) (341)
From the table we can see that on 6 occasions the market did not retrace more than 1 point past our entry point and these 6 trades alone made a total of 348 points profit at the close. If we had waited for a retracement of just 1 point on every trade we would have saved 103 points (assuming the limit orders were filled), a net loss of 245 points. We can conclude that waiting for a retracement before entering a trade reduces overall profitability because the most profitable trades are missed.
For our strategy we will stick with entering the trades on a buy stop or a sell stop at 1 point beyond the high/low of the opening range (9.30-11.45am ET).
84% 74% 58% 50% 41% 31% 25% 21% 16% 11%
16% 26% 42% 50% 59% 69% 75% 79% 84% 89%
0.95 0.59 2.26 1.73 1.53 5.60 5.14 4.92 6.33 6.42
Expectancy per trade is calculated as (%W*Av W)-(%L*Av L) The above table is based on 109 trades being triggered over the 124 day test period. We can clearly see a payoff as the average loss is reduced by having a tighter stop, the percentage of losing trades increases. With a stop at 20% of the opening range we have an average loss of only 12 points and an average win of 37 A risk:reward ratio than many traders would like at 1:3. However we are stopped out 74% of the time giving an average expectancy of less than 1 point. Leaving the stop at the opposite side of the entry range means we are only stopped out 11% of the time for an average loss of 48 points. However, the average profit on the remaining 89% of trades is only 13 points. Many traders would be wary of a risk:reward ratio of 3.5:1 but the much better percentage of trades which are not stopped out at 89% means an average profit per trade of 6.42 points. In conclusion, it is essential to examine the interaction between percentage winners and losers as well as the average win and average lose. We cannot consider the risk:reward ratio without also checking the percentage of winning trades. We will continue to hold our stops at the opposite side of the opening range.
By setting a target we aim to increase the winning percentage, the trade off is that we reduce the average winning profit. We can see that setting a tight target at just 10% of the opening range gives us 88% of trades where the target is hit. Which psychologically is great, were winning almost 9 times out of every 10 trades. Unfortunately, our average win is just 6.47 points against an average loss of 19.00 points on the 12% of trades that do not hit the target. Setting a target has reduced the performance of our system, we will continue to hold trades until the close.
Three ideas for a filter system could be: Seasonal factors does the system perform better or worse on a particular day of the week? Markets will often consolidate the day after a large range expansion, do we want to avoid these days? Should we only take signals in the direction of the current trend? Firstly, lets look at the results that we get by the day of the week: Weekday Monday Tuesday Wednesday Thursday Friday Number of trades 19 26 23 22 19 Win %age 53% 46% 57% 32% 58% Average Win 39 44 52 26 32 Average Loss 21 25 24 32 20 Expectancy per trade 10.47 6.77 18.83 (13.32) 9.74
Each day is reasonably consistent, except Thursday. Thursday has the lowest percentage of winners (at 32%), the lowest average win (26 points), the highest average loss (32) and actually makes a loss per trade. It has to be pointed out that our sample sizes for the individual days is quite low at around 20, but Thursday is overwhelmingly poor. By not trading on Thursday we would raise our overall expectancy per trade to 11.41 from 6.42.
Secondly, when the market makes a relatively large move it will tend to pause and consolidate. Our breakout system will want to avoid days where the market is likely to consolidate. Lets say we wont trade when the actual trading range the day before was more than x times the average actual trading range for the previous 5 days. The actual trading range is defined as the difference between the high (or the previous close if it is higher) and the low (or the previous close if it is lower). We will test various values of x:
Number of Win %age Average Average Expectancy Trades Win Loss per trade 65 43% 43 23 5.38 1.1 71 45% 44 23 7.15 1.2 82 46% 44 25 6.74 1.3 86 48% 43 25 7.64 1.4 91 49% 42 25 7.83 1.5 96 51% 42 25 9.17 1.6 99 52% 41 26 8.84 1.7 101 51% 40 26 7.66 1.8 1.9 104 50% 40 25 7.50 107 50% 40 25 7.50 2.0 109 49% 40 26 6.34 2.5 We can see that if the previous days actual trading range is 1.6 or more times the average for previous 5 days then by not trading we will increase the winning percentage from 49% to 51%, increase the average win from 40 points to 42 points and cut the average losing trade from 26 to 25 points increasing the expectancy per trade to 9.17 points.
Value of X
Thirdly, another popular filter is to only take trades in the direction of the current trend. We could define the current trend, quite simply, as taking the difference between the latest closing price and the closing price from x days ago. If the latest close is higher then the trend is up and we will only take long trades, if it is lower then the trend is down and we will only take short trades. Lets test for various values of x, i.e. taking the close from x days ago. X days 1 2 3 4 5 No filter Number of Trades 57 50 55 48 60 109 Win %age 46% 42% 45% 42% 40% 49% Average Win 49 45 50 57 47 40 Average Loss 25 27 26 26 26 26 Expectancy Per Trade 9.04 3.24 8.20 8.86 3.20 6.34
There are two problems with these results: If we take our directional indicator as 1 day, 3 days or 4 days we improve our expectancy per trade, but if we take 2 days or 5 days we reduce it substantially. This inconsistency suggests the filter may not be too reliable for out of sample data. The number of trades taken is halved for a relatively small increase in expectancy, if we take 1 day as being the best value. Trade frequency is important and if we half the number of trades we would want to more than double the expectancy to compensate.
For these reasons I would not include a directional filter as defined above in our system. Overall we have now added two filters to our system: We will not take any trades on a Thursday. We will not take a trade if yesterdays average trading range is more then 1.6 x the average of the previous 5 days average trading range. The overall effect is: Number of Trades 109 80 Win %age 49% 54% Average Win 40 43 Average Loss 26 23 Expectancy per Trade 6.34 12.64
By using the two filters we cut out 29 trades which helps to increase our win percentage from 49% to 54%, average win to 43 points from 40 points and reduce our average loss from 26 points to 23 points. Overall our expectancy per trade doubles from 6.34 points to 12.64.
For money management we are most interested in the maximum drawdown. The mini Dow trades at $5 per point so the maximum draw down on 1 contract was 181 x $5 or $905. In order to trade through this period with one contract we would have needed a minimum of $905 plus the minimum account balance requirement (for Interactive Brokers) of $2,000 = $2,905 However, future performance of the system is unlikely to replicate our test period so for this reason we must be rather more conservative. Remember our objectives with money management minimise the chances of losing everything whilst maximising the potential. If we double our historical maximum drawdown of $905 and add on the minimum account balance requirement of $2,000 we get $3,810. So, if we begin trading 1 contract with $4,000 in our account we would need to immediately start a losing sequence which is twice as big as the maximum during our testing period in order to not be able to continue trading the system. A situation which could, of course, happen but is reasonably unlikely. The risk per trade may seem very high, if our stop is 50 points or $250 then we are risking 6.25% of our account where many books will recommend just 1%. However,
remember our objective with money management is to maximise the potential of our system. The only way to do that with a small account size is to increase risk to the limit of acceptability - we have shown that even at this higher level of risk we are unlikely to lose the whole account. If we were to risk only 1% then we would need at least $25,000 to trade just 1 contract, which given our maximum historic draw down of only $905 is blatantly over the top.
Once we have established the minimum required to begin trading the system we should look at how we will increase the number of contracts traded as the account balance grows. There are 2 main variations: Fixed Fractional. Here we will trade 1 contract for every $x in the account. In our example that is 1 contract for every $4,000. So at $8,000 we will trade 2 contracts, at $12,000 3 contracts and so on. Note, that if the account balance drops back below the threshold we will drop a contract. In summary: Account balance required: 4,000 8,000 12,000 16,000 20,000 24,000 28,000 32,000 36,000 40,000 Contracts: 1 2 3 4 5 6 7 8 9 10
We can continue to trade 1 contract below $4,000 down to the account minimum of $2,000 as established earlier. Fixed Fractional is a popular method of money management however it has a serious flaw. That is, it requires unequal achievement at different contract levels. To move from 1 contract to 2 we are required to make a profit of $4,000 from trading 1 contract. However, to move from 2 contracts to 3 contracts we still require $4,000 of profit but this time from 2 contracts. This means that small account balances will take time to grow and for larger account balances the number of contracts traded will jump wildly around. It is not suited to either small or large accounts! Fixed Ratio. Resolves the problem of fixed fractional by adding a variable to the calculation. This variable (or delta) is the amount required per contract to move to the next level. The lower the delta the more aggressive the system will be. The formula is: equity required to trade previous contract size + (number of contracts x delta) = Next level.
If we use $4,000 as our base level for 1 contract and a delta of $1,000 we get: Account balance required: 4,000 5,000 7,000 10,000 14,000 19,000 25,000 32,000 40,000 49,000 Contracts: 1 2 3 4 5 6 7 8 9 10
Comparing the tables shows that at lower account balances the risk is higher (we can trade more contracts) but as the account grows the risk is reduced. For example with an account balance of $10,000 we would be trading 4 contracts against only 2 for fixed fractional. For an account balance of $40,000, though, we will only trade 9 contracts against 10 for fixed fractional. If the account falls below $4,000 we will continue to trade just 1 contract with both methods. Fixed fractional allows us to be aggressive with a small account and reduce the risk as the account balance grows.
10. Conclusion.
Over the course of this article we have developed a trading system for the mini Dow Jones futures contract using data from January 2004 to June 2004. Starting with a basic idea for trading an open range breakout we have tested and added each component of the system in a methodical manner. It is important to realise that our system has been created using specific data and is optimised for that particular data set. If we have over optimised then we will find that when we testi using other periods the system will fall apart. Signs of an over optimised system are: Lots of different parameters Very specific values for the parameters. i.e. a value of 47 makes a profit but 46 or 48 dont. Different parameter values for different markets or even periods Using fixed values i.e. a fixed 35 point stop no matter what the current market volatility. The system makes a spectacular profit over the testing period and a spectacular loss the rest of the time! Lets recap our system to make sure it doesnt look too optimised: Market: Set-up: Entry: Stop Loss: Exit: Other rules: Mini Dow Jones $5 futures contract Trading Range 9.30am 11.45am ET Long on a break of the high, short on a break of the low of the opening range. The opposite entry point. Stop hit or 16.00 ET. Do not trade on Thursday. Do not trade if previous days average trading range > average previous 5 days.
Out set-up contains a specific value for the opening range 135 minutes. However we tested around this value and anything between 45 minutes and 180 minutes made very little difference overall. Not trading on Thursday is a very specific rule and could be optimised for our test dataset.
Out of Sample Data The final test for the system is to check the performance on out of sample data. Here are the results by month after allowing 3 points for slippage and commission.
Quarter Jan Mar 2003 Apr Jun 2003 Jul Sep 2003 Oct Dec 2003 Jan Mar 2004 Apr Jun 2004 Jul Sep 2004 Oct Dec 2004
Trades 39 36 38 41 42 35 43 37
Per Trade 10.08 5.83 10.18 5.22 9.90 10.26 1.40 5.81
As expected our sample period of Jan Jun 2004 does produce good results, however we also experience similar results for the 1st and 3rd quarters of 2003 suggesting that the system is not over optimised for one particular period.
Draw down During our test period we experienced a maximum draw down of 181 points, this is exceeded 4 times during our larger back test: Date 19 Feb 03 10 Jun 03 19 Aug 03 27 Sep 04 Points 234 254 215 189
These are all acceptable as in our money management section we allowed for 2 x 181 points or 362 points for maximum draw down.
Equity Curve Finally, a quick look at the equity curve for trading a single contract below shows that the system is fairly consistent over the entire period:
Equity Curve 14000 12000 10000 8000 6000 4000 2000 0 Jan-03 Jul-03 Oct-03 Jan-04 Jul-04 Oct-04 Apr-03 Apr-04 -2000
Money Management Trading a single contract makes 2,254 points profit ($11,270) over the 2 year period. Earlier we established a fixed ratio money management model based on our test data. Using this model to trade the system over the 2 year period, turns a starting balance of $4,000 into $47,785, a profit of $43,785. In this case the equity curves looks like:
Equity Curve with Money Management 60000 50000 40000 30000 20000 10000 0 Jan-03
Finally In this article we have examined stage by stage the development of a single trading system using as an example the mini Dow Jones futures contract. We have produced a system which is consistent and which over the past 2 years would have produced a reasonable profit, especially if aggressive money management is used. It should be noted that over these 2 years the Dow Jones index has experienced very low volatility when compared to previous years making it a fairly difficult time for day trading systems. However, the currency markets have been volatile over this period and we could have chosen to develop a system to trade dollar/euro or dollar/pound futures, which would have been far more profitable. The point of the article was to demonstrate a systematic approach to system development using an instrument that people are familiar with.
Jul-03
Oct-03
Jan-04
Jul-04
Oct-04
Apr-03
Apr-04
Reliance should not be placed a one system alone. A number of different systems should be developed (using the above methodology) using different instruments, timeframes and set-ups (both trend following and counter-trend). In the last year currencies have been more volatile than indexes whereas in 2002 the opposite was true. All systems have good periods and bad periods and by diversifying the systems traded we can substantially reduce the overall draw downs and produce much smoother equity curves.