Building a system

Building a trading system


The purpose of this page is to help you create a trading system that is reliable, consistent and hopefully profitable. It can also be designed to meet your appetite for risk.

We have already covered position sizing, entries and exits and money management so this page tells us how to bring them all together alongside our robust trading signals. I like to think of trading signals as triggers to start the process. They do not give you permission to buy or sell but instead to look more closely as the opportunity to buy or sell may be imminent. When your trigger fires then a lot of your criteria have been met but not yet enough to trade.

Many of the areas required to create a complete trading system have been touched on by other pages but now they are all being brought together. Any decisions you make here should always be reflected in your trading journal.

System design

Trading systems at their core should be very straightforward and compliment your own trading philosophy. If your trading philosophy is to swing trade then your system should identify opportunities to swing trade. This sounds obvious when written down but it is surprising how many people try to design or follow a strategy that goes against their own philosophy. You will have already documented your trading philosophy in your trading journal.

If the system you design is contrary to your trading philosophy then it is likely that you will break the trading rules when you encounter bad trades.

If the system you design is highly complex then it may suffer from being designed to meet a specific data set.

The following sections break down the various aspects of designing a trading system.

What are you going to trade?

As part of your trading journal you should have already documented what you intend to trade and the timeframe you will trade in. So that we can refer to real examples throughout this page we will be using the currency pair EUR/USD as our example.

What timeframe are you trading?

We will generate our trading signals on daily data but time our entries and exits on hourly data.

The first decision you need to make is to determine whether your system should generate signals for trending or range bound markets. This decision will determine which indicators and oscillators you choose to create your signals.

Our example of EUR/USD is a trending asset, as most currency pairs are. We will therefore adopt trend following indicators. We shall use simple moving averages for our signals.

Choosing indicators and oscillators

A common way of deploying these signals is to implement moving average crossovers. We would open a position when a fast moving crosses over a slow moving average and then reverse the position when it crosses in the opposite direction. This strategy is very limiting as it gives you very little scope to improve the system as you would always be in a trade.

We therefore break the system down into two sets of signals, one for a long only system and one for a short only system. Each system then has its own entry and exit signals. Instead of a simple moving average crossover we have now improved the system by having 4 discrete signals that work independently of each other.

Now we need to decide on the initial inputs that make up these 4 discrete signals.

Long only trading system

For our long only trading system we decide to use Fibonacci numbers (5, 8 and 21) as inputs to our moving averages.

We will therefore look to enter a new long position in EUR/USD when the 8 day moving average crosses above the 21 day moving average.

We will look to exit the long position in EUR/USD when the 5 day moving average crosses below the 21 day moving average.

Short only trading system

For our short only trading system we decide to use Fibonacci numbers (5, 8, 21 and 13) as inputs to our moving averages.

We will therefore look to enter a new short position in EUR/USD when the 5 day moving average crosses below the 21 day moving average.

We will look to exit the short position in EUR/USD when the 8 day moving average crosses above the 13 day moving average.

Confirming indicators

Our trading system so far is designed to generate signals based upon moving averages. We would like to add a confirming indicator to help identify price areas where there is a greater chance of buying low or selling high.

We will do this by adding the Relative Strength Index to our long and short trading systems. This index helps to identify when an asset is overbought or oversold. This is exactly what we need to act as confirmation for our moving averages.

For our long and short trading systems we will compute a 14 day RSI.

We will only enter a new long position in EUR/USD when the RSI is oversold. This means the RSI must be below 30.

We will only enter a new short position in EUR/USD when the RSI is overbought. This means the RSI must be above 70.


Now we have developed our system we will need to test our design using real data. If you are fortunate then you may have software that will do this for you. For the majority of us we will have to use a spreadsheet to do this for us.

I would suggest setting up a spreadsheet in a manner that it can be re used for other tests. You will almost certainly be refining your initial design.

You will notice that our system design has not specified stop losses or take profits levels. This is deliberate at the design stage as our money management strategies will be added after our initial testing. We will also use a fixed dollar position sizing strategy for the initial testing.

The initial test run will almost certainly not produce the results you are hoping for but we have not applied any money management techniques. At this stage we are looking for a design that produces a basic profit without excessive fluctuations in your capital. You should also be comfortable with the percentage of winners. If your design has signalled 100 trades and only 25 are winners, could you live with that strategy, even if it produces an overall profit?

If you are not happy with the results at this stage then unfortunately you need to look at your system design again. It maybe that you are targeting the wrong asset types or designing a system that you can not possibly implement.

Test using different inputs

If you have designed a system that produces a profit in a way that matches your trading philosophy then well done. Now we need to make sure it is robust and can withstand some pressure.

This can be achieved by running the same tests but with different inputs. We will therefore run our long only trading system using the Fibonacci numbers (5,13,21), (8,13,21), (3,5,8), (13,21,34). Similar tests shall be performed on the short only trading system.

We also need to adjust the inputs for our confirming indicator. We shall test using 10,15 and 21 day RSI, with thresholds set at 20, 40, 60 and 80.

This approach to testing your system has two benefits. The first benefit is that it ensures you have not got lucky and stumbled across a set of parameters that work. The second benefit is that it allows you to tweak your inputs to a level that produces more consistent results. Note that I did not say more profit. Consistency is the key during testing as it proves you have a system that is robust and can endure.

Trading system evaluation

By this point in the trading system design process you will have performed many test runs and you should have lots of data.

We recommend that every test run should have the following data as a summary report:

  • Total trades, winning trades, losing trades
    • does your system trade too little, too much, or just about right for your liking?
  • Winning %, Losing %
    • can you live with winning/losing %?
  • Total profit for all profitable trades
    • used in a later statistic
  • Total loss for all losing trades
    • used in a later statistic
  • Average profit for all profitable trades
    • this is a good indicator of how much you are likely to make for each winning trade.
  • Average loss for all losing trades
    • this is a good indicator of how much you are likely to loss for each losing trade. Can you live with this level of loss?
  • Ratio of total profit to total loss
    • this statistic tells you how much your system makes for every £1 lost. A ratio above 1 means it is profitable.
  • Ratio of average profit to average loss
    • this statistic is similar to a risk reward ratio.
  • Total net profit
    • the number we all look for. How much does your system make from start to finish.
  • Outliers
    • it maybe worth discarding outlying trades as they may unduly affect your system report.
  • Drawdown and runup (per trade, account)
    • this data tells you how much a trade moves during its life, either good or bad. If the drawdown it too severe then be honest and ask could you live with that level of loss during trades?
  • Duration (per trade, all trades, tradable)
    • you will need to know how long each trade lasts for and how many days out of your data set you trade in total.
  • % time in a trade, all trades
    • this statistic is a good measure of risk. The more time you spend in the market then the more exposed your system is to fluctuations.
  • Winning and losing sequences
    • this will be used purely for money management but is great for psychology. If your system generates 4 or 5 winners in a row then you are likely to have more confidence to follow it

This is a lot of data but is well worth the effort in generating. The more data you can generate to confirm your trading system design the better. This data also exposes weaknesses in your design which you need to be comfortable with before proceeding.

Apply money management techniques

By this point in the process we have a trading system that is generating a profit. It may only be a small profit but that if perfectly fine. As long as you are comfortable with all the other metrics then you have reached the final stage where your system will only get better. That is the application of money management techniques.

We recommend you apply each of the following 5 techniques in the order specified and perform new tests after each one.

Although these strategies are optional we strongly recommend you apply a solid position sizing strategy (instead of the basic fixed dollar strategy). We also recommend the application of the maximum adverse excursion strategy to generate your stop loss levels.

The other 3 strategies can also be added but please be aware that they will affect your position sizing. This should be taken into account to ensure you do not create a position with too much exposure.


We hope that you have found this page useful and it will allow you to have a structured approach to designing a profitable trading system.

More importantly we hope it teaches you some of the techniques required to ensure your trading system is robust and endure the rigours of tough financial markets.

A profitable trading system will only be profitable if you follow the rules. You will only follow the rules if the system suits your trading philosophy.