The 2 Biggest Mistakes System Traders Make

1) Over Optimizing  

Using the data for gold from January 1986 through December 2006 I’m going to develop two 100% objective fully automated trading systems.

Gold 1986-2006
The first system uses a maximum of 5 parameters,total possible combinations using 5 parameters 119,325,440.

The second system using 8 parameters, the same 5 parameters in system 1 with 3 additional parameters in an attempt to make the system more profitable with a smaller drawdown. Total possible combinations using 8 parameters 347,170,997,796,864.

Once the trading parameters are defined on the “in sample data”  I’ll trade the systems on  “out of sample” data from 2007 to 2016.

Gold 2007-2016

Then match “in sample” performance (1987-2006) to the “out of sample” performance (2007-2016).

Model 1 optimization parameters

1) I’ve varied the number of data days from 1 to 5 in increments of 1 day

2) Volatility multiplier from 0.30 to 1.00 in increments of 0.01

8) Trailing stop from $2,500 to $5,000 in increments of $100

9) High volatility filter from 1,000 to 6,000 in increments of 25

11) Profit objective $2,500 to $10,000 in increments of $250

Total possible combinations 119,325,440

Model 1 in sample results (1987-2006)

Net profit +$85,335.00
Worst case drawdown -$18,256.99
Return on risk 4.67 to 1
(return on risk = cumulative total profit divided by maximum drawdown)

Model 1 out of sample results 2007 through 2016

Net profit $141,693.98
Worst case drawdown -$20,316.00
RR – Return on risk 6.97 to 1

In the case of model 1 the out of sample performance (2007-2016) was superior to in sample performance (1987-2006).

Model-1 spreadsheet including all supporting historical price data, every order generated (2007-2016) and full disclosure of this automated trading system.

Model 2

1) I’ve varied the number of data days from 1 to 10 in increments of 1 day.

2) Volatility multiplier from 0.30 to 3.00 in increments of 0.01.

4) Slope period from 10 to 90 days in increments of 2 days.

5) Slope multiplier 0.00 to 5.00, increments of 0.02. (makes entries dynamic to trend, quicker entries with the trend, slower or no entries against the trend)

6) Slope filter in ticks -90 to 990 in increments of 10 ticks (qualifies the strength of the trend)

8) Trailing stop from $2,500 to $5,000 in increments of $100

9) High volatility filter from 1,000 to 9,000 in increments of 100

10) Low volatility filter from 0 to 900 in increments of 100

11) Profit objective $1,500 to $10,000 in increments of $100, (the slope filters can also make objectives dynamic to trend and volatility).

Total possible combinations 347,170,997,796,864 versus
119,325,440 combinations in model 1.

In this example I’ve expanded the parameters in model 1, added slope filters to make the model dynamic to market trend and a low filter in an attempt to minimize “whipsaw” during uncertain trendless periods. My objective was achieving a higher return on risk in model 2 than achieved in model 1 of 4.67 to 1

Model 2 in sample results (1987-2006)

Net profit $149,005.00
Worst case drawdown -$8,560.00
RR – Return on risk 17.41 to 1

A return on risk of 17.41 for an individual system is about as good as it gets.

Model 2 out of sample results 2007 through 2016

Net profit +$78,219.97
Worst case drawdown -$45,345.00
RR – Return on risk trading trading “out of sample” 1.72 to 1

For model 2 the out of sample performance with a RR = 1.72 was terrible relative to the in sample performance RR = 17.41 to 1.

Why?, because I curve fit the system on the data from 1987-2006 using the best set of parameters out of 347 trillion+ possible combinations.

Model-2 spreadsheet including all supporting historical price data, every order generated (2007-2016) and full disclosure of this system.

Lesson, out of sample performance will give you far more realistic performance expectations. Testing your systems “out of sample” on a minimum 5 years of data is essential. If you don’t test your methodologies “out of sample” your just kidding yourself as to what you can expect from that system and risk exhausting all funds because you weren’t prepared for the inevitable drawdowns that will occur trading any methodology technical or fundamental.

2) Not diversifying your trading strategies in the markets you trade.

Many traders stop after they develop one system or fall in love with one methodology; experience will prove this is the wrong procedure to follow.

Don’t get lazy, maintain your objectivity, keep researching additional trading strategies, find which ones complement one another and produce the highest return on risk.

For the additional systems qualify them using the same procedure of in and out of sample testing.


Try to find a minimum of 6 trading strategies that have performed out of sample on Gold over a 10 year period.


3 momentum traders

1 short term GC01R
1 intermediate GC2T
1 longer term GC03T

3 range traders

1 short term GC01R
1 intermediate GC02R
1 longer term GC03R

Once you have qualified the systems use the mark to market out of sample daily performance data to determine the mixture of strategies that produces the highest return on risk


A total of 6 systems produces 63 possible combinations

Linked here is the spreadsheet containing all 63 combinations for the 6 systems listed above.

The combination with the highest return on risk is set number 63

Qualify the allocation’s daily and monthly out of sample distribution of profits for the life of the allocation. (in this case 2007-2016)

The objective is to ensure all gains were not generated in a given period or during specific market conditions.


Set number 63 performance

Combined net profit, $788,308.00
Maximum combined drawdown, -$26,528.00
Current drawdown 20 October 2016, -$3,395.00

Defining allocations to trade

After you’ve found 20 to 100 systems that work out of sample you need to define an allocation to trade.

In this allocation I’ve covered stocks, metals, energy and currencies.

Market Trade Size
AAPL (Apple) 1,000 shares
GOOGL (Alphabet Class A) 100 shares
JPM (JP Morgan Chase & Co.) 1,000 shares
EUR (Euro currency unit) 62,500 Eurodollars
CHF (Swiss Franc) 62,500 Swiss Franc
JPY (Japanese Yen) 6,250,000 Japanese Yen
GC (Gold-futures) 100 Troy Ounces
CL (Crude Oil-WTI-Futures) 1,000 Barrels
ES (E-Mini-S&P-500-futures) $50.00 times the index

If you’re trading 9 markets, 6 systems in each market there are a total of 54 systems active, defining an allocation can be challenging.

Lets assume you wanted to trade the best combination of 18 systems out of the 54 you have on deck, the total number of market sets combined 18 at a time = 96,926,348,578,604, doing an exhaustive enumeration could take over 70 years.

Genetic algorithms have to come into play, if programmed correctly you should be able to achieve a portfolio optimization efficiency of better than 80% taking several minutes rather than the 70+ years an exhaustive enumeration would require.

This report took less than 2 minutes to generate, click here for the spreadsheet containing the top combinations

 Implementing your Automated trading strategies

Many trade desks can fully automate any 100% objective trading system eliminating your daily responsibility of canceling and replacing orders.

Most of these desks provide a daily summary of the cumulative total for each system in the allocation enabling you to match your actual performance to the system performance to ensure the system(s) are being traded by your clearing firm exactly as represented.

Example report

Date 161020, 16=Year 2016, 10=Month October, 20=Day
Cumulative performance for each active system in the allocation
TOT $5,110,843.50, cumulative total of trades, all active systems
Current drawdown -$12,632.00 (current distance from highest high)
Maximum drawdown -$41,738.00 (highest high to lowest low)

Many also provide “orders” reports enabling you to;

  • Match the system orders to those reported online for your account
  • Efficiently monitor the performance for every system in your account
  • Monitor drawdowns for each individual system to quickly identify any system that is problematic enabling you to eliminate that system and replace it.
  • Monitor systems you may want to add to your portfolio


Gold, system GC01T

Reading the “orders” report

Looking at the “orders” report for GC01T

I should be long gold at $1,263.14 (actual price $1,263.20)

Orders are rounded to the nearest tic

The sell stop reversal should be $1,261.79 (actual order $1,261.80 stp)

The GC01T objective should be $1,363.14 (actual order $1,363.10 limit)

Cumulative net gain S/B +$142,418.14 net of $50.00 deducted for bid/ask spreads, order execution slippage and all fees per roundturn trade.

Current drawdown for GC01T as of 20 October 2016, -$1,194.00

The maximum drawdown for GC01T life of program 2007 through 2016, -$16,303.02,

For an example daily “orders” report trading the 54 systems in this allocation see 21-10-2016 orders-knight-allocation 47

Managing your systems

I think we all know there is no “holy grail” for trading

Automated trading systems eliminate emotion, react far faster than we would making a subjective trading decision but they can and do fail.

From personal experience the difference between successful automated trading and failure is how you diversify, qualify your systems and prepare for any potential outcome good or bad.

If you’re trading 54 different systems in 9 markets if one fails it’s nothing more than a bump in the road not the financial hemorrhage you may experience when you’re trading 1 to 3.

Lesson, diversify not only the markets you trade but the way you trade them.

Define your risk tolerance for the system prior to trading it

Example, using the GC01T trading system (Gold trend momentum 1)

My rule

If the maximum drawdown increases by 30% growing from -$16,303.02 to -$21,193.94 all trades for GC01T will be suspended from the allocation.

The remaining 5 gold systems will remain active

2 remaining momentum traders

1 intermediate GC02T
1 longer term GC03T

3 range traders

1 short term GC01R
1 intermediate GC02R
1 longer term GC03R

Failed system replacement procedure

Always have multiple systems on deck for each active market

In the case of gold I track the daily performance of 15 objective trend and counter trend mythologies in addition to the ones I trade, the monthly performance of over 100.

Using the top 15 (out of the 100 systems on deck) I take the mark to market daily performance for the top 15 (.all files)

Total possible combinations of the 15 systems, 32,767.

In less than 3 seconds an exhaustive enumeration can be generated ranking the 2007-2016 performance and return on risk for all 32,767 possible combinations of the 15 systems.

Ranked by return on risk (R/R) in descending order.

In the event GC01T fails I could revise my gold allocation eliminating GC01T the same day as the drawdown violation occurred.

In this example,

I could replace GC01T, GC02T, GC03T with market set 4156 on the report above, trading GC04T, GC05T, GC06T.

All changes could be implemented on or before market on close

Once my instructions are sent to my desk, my desk confirms the automated order entry platform has been revised and all current gold positions are consistent with the revised system allocation for gold.

Qualify your systems, define your risk tolerance, maintain your discipline.

The purpose of these reports is to motivate all of us to share solutions to the challenges of making money during the coming major market moves generated by the current extreme fundamentals.

More on automated trading programs

Published by

Asset Investment Management

Family Office, Advisors