Building a Simple Currency Trading System, 01/20/09
Building a Simple Currency Trading System
A simple trend following system for the Euro using a moving average crossover to enter and exit trades. The development model demonstrates the iterative style of trading system development and using statistical significance and the System Ranking Tool to validate each step.
First iteration. A system based solely on a moving average crossover:
-
Buy when the average(c, 10) crosses over the average(c,20)
Exit long when the average(c,10), crosses below the average(c,20)
Sell Short when the average(c, 10) crosses under the average(c,20)
Exit short when the average(c,10) crosses below the average(c,20)
Results, 1/1/2001-1/20/2009:
23/62, 37%, avg $630, sd 4779, z 1.0 <-- NOT statistically significant
System Rank: .078
This system is not statistically significant, but the z score moves into significance if a stop is added (not shown). Normally, an insignificant first test means stop and look for something new, but in this case, there is significance if a stop is added. The annual results are relatively consistent indicating the idea is worth another iteration.
Master's Secret: Consistency matters, especially over a long back-test period. It's usually worth digging deeper when consistency is discovered across results because it may indicate the ability to withstand regime changes.
Second iteration. Add a longer term trend filter also based on a moving average crossover but with a longer time frame:
-
Buy when the average(c, 50) is above the average(c,100) {long term trend is up}
and when the average(c, 10) crosses over the average(c,20) {short term trend is down}
Exit long when the average(c,10), crosses below the average(c,20)
Sell Short when the average(c,50) is below the average(c,100) {long term trend is down}
and when the average(c, 10) crosses under the average(c,20) {short term trend is down}
Exit short when the average(c,10) crosses below the average(c,20)
Results, 1/1/2001-1/20/2009:
21/46, 46%, avg $1724, sd 5301, z 2.2 <-- now statistically significant
System Rank: 0.24
Third Iteration. Add an interest rate filter:
-
Buy when the average(c,5) of US Bonds is below the average(c,10) of US Bonds
and when the average(c, 50) is above the average(c,100) {long term trend is up}
and when the average(c, 10) crosses over the average(c,20) {short term trend is down}
Exit long when the average(c,10), crosses below the average(c,20)
Sell Short when the average(c,5) of US Bonds is above the average(c,20) of US Bonds
and when the average(c,50) is below the average(c,100) {long term trend is down}
and when the average(c, 10) crosses under the average(c,20) {short term trend is down}
Exit short when the average(c,10) crosses below the average(c,20)
Results, 1/1/2001 - 1/20/2009:
22/42, 52%, avg $1888, sd 4748, z 2.6
System rank: 0.5
Conclusion: A simple and statistically significant trading system discovered when some consistency appeared during early testing.
Data: Euro futures, daily bars.