Money Management Trading Systems Day Trading & Scalping Developing a Trading Strategy Part 2

In the first part of this article, which can be read here, we looked at choosing an instrument and timeframe to trade, as well as establishing the set-up and entry rules. In the second and final part we will consider how to establish exit rules as well as various filters and money management rules to maximise the profitability of the system.

6. Stop Loss Rules.

Our strategy already has a natural stop loss in the stop order that does not get filled. The objective of the strategy is to capitalise on those days where the high or low for the day is in place early (9.30-11.45am). If we enter a trade on a breakout of either the high or the low and then the market subsequently hits the other stop we know that our trade is invalid. We know from our testing earlier that this only occurred 10% of the time.

We could add additional rules for the stop loss such as:
  • Moving the stop to breakeven when we are a certain amount in profit. However, how or why would the market care where our breakeven point is?

  • Trailing the initial stop loss as the trade moves into profit.

  • Having a fixed maximum stop (say 35 pts). Fixed point values should be avoided, they do not take into account changes in market volatility and do not "future proof" the system.

  • Setting the stop at a percentage of the opening range. The theory being that if the market has retraced a certain amount then it is likely to continue and eventually hit our original stop.

  • The opening range that we have concluded produces the best system expectancy over our test period, can be relatively wide, averaging 62% of the days range. So, if the days range is 200 points our stop would be 124 points on average. Many traders prefer a much tighter stop for psychological reasons. However, as we discovered with the opening range, there is a payoff between a tighter stop loss and a lower winning percentage.

Let's examine results based on setting the stop loss at a percentage of the opening range. Assume that the trade is closed at 4.00pm ET if not stopped:
Stop as a %age of opening range%age stoppedAverage loss on stopped trades%age not stoppedAverage profit on trades not stoppedExpectancy per trade
10% 84%6.5316%44.410.95
20%74%12.3526%36.790.59
30%58%18.1942%29.702.26
40%50%24.2650%27.051.73
50%41%28.7659%23.451.53
60%31%35.1869%23.515.60
70%25%40.3075%20.355.14
80%21%44.0479%18.434.92
90%16%45.7684%15.806.33
100%11%48.0089%13.156.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.

7. Profit Taking Exits.

At the moment our only profit taking exit rule is to
close at the end of the day, quite simply because we are developing a day trading system with no overnight risk. Generally on a strongly trending day (the type we are aiming to capture) the market will close at very near the high/low for the day so closing the trade at the market close makes sense.

However, there are days where the market will break one way or the other and then stage a reversal before the close. If we are waiting until the end of the day to close we may find that our trade moves substantially into profit before reversing and giving that profit up.

The most common profit taking exits are:
  • A trailing stop
  • A target

Let's examine both of these concepts in regards to our Dow system, starting with a trailing stop. Rather than leave our stop at the opposite extreme of the opening range we'll trail it behind the market - if we are 10 points in profit then our stop will move 10 points. Of course, the trailing stop can only move in our favour, we should never move it further away.

Trailing the stop behind the market produces a net profit of 5.55 points per trade, compared to 6.50 when we did not trail it. On this particular system, trailing the stop seems to be inferior to leaving the stop alone.

How about setting a target? In order to future proof our system we should ensure that the target is a function of current market volatility. Therefore we'll use a percentage of the opening range as a target.
Target as a %age of opening range%age where target hitAverage profit where target hit%age where target not hitAverage profit on trades where target not hitExpectancy per trade
10%88%6.4712%(19.00)3.43
25%72%15.2628%(20.29)5.15
50%45%28.2955%(17.57)3.05
100%21%51.3079%(8.03)4.49
150%9%73.0091%(3.11)3.87
200%6%91.6794%0.505.52
250%3%116.0097%2.615.73
300%1%108.0099%5.096.03
No target0100%6.426.42

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, we're 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.

8. Ways To Improve The Profit Per Trade.

There are two ways to improve the profit per trade:
  • Increase the profit from the winning trades or reduce the losses from the losing trades - which is what we were trying to achieve through the use of stops and targets in the previous sections.
  • Decrease the number of losing trades through the use of filters - which is what we will examine in this section.

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, let's look at the results that we get by the day of the week:
Weekday Number of trades Win %age Average Win Average Loss Expectancy per trade
Monday 1953%392110.47
Tuesday2646%44256.77
Wednesday 2357%522418.83
Thursday2232%2632(13.32)
Friday 1958%32209.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. Let's say we won't 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:
Value of X Number of Trades Win %age Average Win Average Loss Expectancy per trade
1.16543%43235.38
1.2 7145%44237.15
1.3 8246%44256.74
1.4 8648%43257.64
1.5 9149%42257.83
1.6 9651%42259.17
1.79952%41268.84
1.8 10151%40267.66
1.9 10450%40257.50
2.0 10750%40257.50
2.5 10949%40266.34

We can see that if the previous day's actual trading range is 1.6 or more times the average for the 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.

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. Let's test for various values of x, i.e. taking the close from x days ago.
X days Number of Trades Win %age Average Win Average Loss Expectancy Per Trade
1 5746%49259.04
2 5042%45273.24
3 5545%50268.20
4 4842%57268.86
5 6040%47263.20
No filter 10949%40266.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 yesterday's average trading range is more then 1.6 x the average of the previous 5 day's average trading range.

The overall effect is:
Number of Trades Win %age Average Win Average Loss Expectancy per Trade
Without Filters 10949%40266.34
With Filters 8054%432312.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.

9. Money Management Rules

Once we have developed the actual trading rules there is one further, important, consideration - how much to risk on each trade. Good money management serves two purposes:
  • Minimises the risk of losing the whole trading account before the system edge has a chance to work out.
  • Maximises the potential of the trading system when conditions are favourable.

Many traders will, mistakenly, try to minimise their risk by setting tighter stop levels. Stop levels should, actually, be set as a function of market action. If the losses taken when those stops are hit are unacceptable to us then we should reduce the number of contracts traded, rather than merely tighten the stop. As we have seen this course of action is likely to lead to increased losing trades and an overall degradation of the system performance. In other words, money management controls risk not stop orders.

In order to establish money management rules for our system we need to examine how it has performed over our test period:

Test Period:​
January - June 2004

Total Points Profit:​
1012

Total Trades:​
80

Allowance for Slippage/Commission
(3pts per trade):​

(240)

Net Profit:​
772

Maximum Draw down:​
181

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:
Contracts:
4,000​
1​
8,000​
2​
12,000​
3​
16,000​
4​
20,000​
5​
24,000​
6​
28,000​
7​
32,000​
8​
36,000​
9​
40,000​
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:
Contracts:
4,000​
1​
5,000​
2​
7,000​
3​
10,000​
4​
14,000​
5​
19,000​
6​
25,000​
7​
32,000​
8​
40,000​
9​
49,000​
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 test 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 don't.
  • 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!

Let's recap our system to make sure it doesn't look too optimised:
Market:Mini Dow Jones $5 futures contract
Set-up:Trading Range 9.30am - 11.45am ET
Entry:Long on a break of the high, short on a break of the low of the opening range.
Stop Loss:The opposite entry point.
Exit:Stop hit or 16.00 ET.
Other rules:Do not trade on Thursday.
Do not trade if previous day's
average trading range > average previous 5 days.

Our 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.
QuarterNet Points Trades Per Trade
Jan - Mar 20033933910.08
Apr - Jun 2003210365.83
Jul - Sep 20033873810.18
Oct - Dec 2003214415.22
Jan - Mar 2004416429.90
Apr - Jun 20043593510.26
Jul - Sep 200460431.40
Oct - Dec 2004215375.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:
DatePoints
19 Feb 03234
10 Jun 03254
19 Aug 03215
27 Sep 04189

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


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


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.

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.
 
Last edited by a moderator:
I actually got positive slippage on this today!!!

Still losing as I speak.

JonnyT
 
poekmeister, I'm not sure your trade for 24 Jan is correct - should be long 10428 and stopped at 10378 for -50.

Good to hear of some positive slippage JonnyT, how'd ya manage that? You must have got a couple of points profit if you held on right to the close!
 
Actually ended up -2

I've had positive slippage a few times over the years. Essentially a stop order gets triggered by price movement but by the time your order gets executed the market moves back to where it came from.

Nice when you get it. On the flip side I've experienced 15 points slippage before aswell...

JonnyT
 
I am looking at developing a system in the same vein as this but no diddly squat about programming. I do not really want to go through and test all the permutations by hand so does any one have a formula/code skeleton that i can use to test the same variables addressed in the article but for a different market? Also, where do you get all the historical data as i have esignal and only get like the front month futures contract data. One more quick q - what is a better time period for the sample data as i was looking for about 1 year and then the out of sample data being around 2 years.

Any help/hints would be greatly appreciated.

Regards

David Dunne
 
The comparison between the NQ and YM look a little strange.
It seems like too many numbers are the same between the two, can they be that correlated?

Just looking for confirmation
 
Thank you for spotting that sulong. It was my mistake, I copied the wrong figures from Excel - the eyes must be tired after a long week of staring at screens! I have now corrected it.
 
ianp, yes exactly the same settings for each market.

The system made 3 profitable trades out of 4 last week on the Dow. I won't post another link to my site but the daily breakdown can be found in the usual place.
 
Excellent article all round. I think the real benefit of the article is not whether that specific method works or not (although that is a bonus), but it gives a great disciplined methology for newcomers to develop systems of their own.
 
This might sound like a really dumb question but how do you back-test a system? I mean as in when you have the data, how do you test whether or not your parameters work?

Gotta say mate, the most informative and useful article i have read on trading. Quit trading and write a book - you'd make a fortune!
 
Thanks ddunne82!

I use Excel to backtest but I write VBA code to automate the actual testing - that way I can simply change the parameters, click a button and wait for the results to come out. I'm working on a user friendly version that will allow anyone to mess around with the parameters and find the results.

Last week the system triggered just 1 trade on the mini Dow for a whopping 8 points of profit - Don't spend it all at once! Trading System Backtest
 
Trade-by-Trade results?

sidinuk said:
Thanks ddunne82!

I use Excel to backtest but I write VBA code to automate the actual testing - that way I can simply change the parameters, click a button and wait for the results to come out. I'm working on a user friendly version that will allow anyone to mess around with the parameters and find the results.

Last week the system triggered just 1 trade on the mini Dow for a whopping 8 points of profit - Don't spend it all at once! Trading System Backtest

Sidinuk, would you happen to have the trade-by-trade results of the other Symbols tested availabe in the same excel format? The reason for asking is that I am trying to find the optimimum combination of symbols to trade to minimise risk further (portfolio mgt)

Thanks,
Poekmeister
 
Possible Improvement

Hello,

on Wednesday I noticed that YM dropped quite sharply into close, which was even a relative minimum, since it gained again in after hours. It is obvious to me that no strategy can catch the best theoretical return each day, but in my opinion similiar price movements ocurred rather often. We should spend some thoughts on wether exiting each day at 16:00 EST represents the ideal time.

I assume there exist more long positions among day traders than short positions. Many brokers (e.g. IB) require day traders to reduce their positions by 15:45 EST if they were on full margin before. This might lead to a price decrease into close. If our system's position is long, this reduces our result.

So I suggest Sidinuk might backtest how results vary by replacing the current exit time with 15:45 or even 15:30, at least for the days where a long position is entered previously...

Thanks in advance!
 
Bounty_One. I have already tested different closing times and 16.00 is optimal. What tends to happen is that, as you say, daytraders begin to wind down their positions from 15.30 to 15.45 to avoid the doubling of margin so you get a temporary reversal of the days trend into 15.45. The main trend then resumes after 15.45 when the daytraders have all closed out. Equally, as the futures market has a short break at 16.15 the rest of the daytraders (those that aren't forced to close at 15.45!) will start to close between 16.00 and 16.15.
 
A spreadsheet with all the back test trades from Jan2003 to today for Dow Jones, Nasdaq100, S&P500, S&Pmidcap400 and Russell2000 is now available here.
 
Top