A good trading system has an edge in the market which allows it to make money when traded in real time. It is easy to design trading programs that look spectacular in historical simulations. Designing one that works in real time and does not break the moment it is exposed to unseen data (the future) is far less obvious.

What makes a good trading system?

The differences between a good and bad trading system can be hard to see at first glance.

A good trading system should:

  • Have a sound trading strategy underpinning it
  • Be simple and robust
  • Adapt to changes in market conditions
  • Have a small number of rules (~5 in total)
  • Be correctly optimized (not curve fitted)
  • Be profitable across related markets
  • Have high profitability relative to trading costs (slippage and commissions)

Good trading systems should work almost as well on unseen price data as it does on the historical test period

To further aid your understand how to design trading programs that work in real time (as opposed to only working in a historical simulation and breaking down when traded in real time), we have provided further detail about the difference between a poor system and a good trading system here.

You obviously need to understand what a good trading system, before you can find the Best Trading System…so once you have reviewed the difference between a poor and a good system, check out the best trading system!

Characteristics Of A Good Trading System

A good trading system that is likely continue working in the future has specific characteristics that different it from poor trading systems.

Unfortunately for new and uneducated traders, it is extremely easy to fall into the many traps that lead to development of poor trading systems.

The table below differentiates between robust trading systems and poor trading systems on multiple dimensions. Our intention here is to raise your understanding and help you avoid these traps. We also provide actions to incorporate as you build your trading system.


Trading Strategy

Poor Trading System

No clear philosophy

Trading rules derived from trial and error or data-mining

Trader not able to explain the philosophy and trading strategy behind the system in a 30 second ‘elevator pitch’.

Rules inconsistent with chosen trading strategy

Good Trading System

Good trading systems are backed by a sound trading strategy / philosophy (Eg. Markets trend and entering a position in an established trend and holding till the trend changes has a positive expectancy)

Trading rules are hypothesis based and capture the essence of the trading strategy

Good trading system logic simple and easy to explain

Trading rules 100% consistent with trading strategy


Choose one of the major trading strategies that appeals to you and learn more about it.

Do not undertake any trading system development work until you have chosen a trading strategy

Develop your system to be 100% consistent you’re your trading strategy

Follow the correct trading system development process


Complex rules based on mathematical manipulations of price and volume data

Use highly specific market conditions as rules

Multiple rules or conditions required to enter or exit

Good trading systems have simple rules that are based on price and volume (and potentially other data) rather than complex derivations the raw data

Few conditions required to satisfy entry or exit criteria

Challenge yourself to express your trading strategy in the simplest way possible

Do not layer many conditions for your entries or exits to improve historical simulations – this results in curve fitting


Refer to absolute price levels or changes for entry or exit rules

Use percentage moves for profit targets or initial stop losses

Both of the above are poor practice because market character changes over time, so absolute levels or changes become irrelevant over time

Good trading system rules adjust for market volatility using calculations such as ATR or Standard Deviation

This takes into account the changing character of markets

This also makes systems transferrable across multiple instruments or markets

Avoid reference to absolute price or percentage changes as these lose relevance over time.

Express any movement in volatility adjusted terms using ATR or standard deviation. This helps system portability between instruments

If you want to refer to price, use a formula that adjusts to the recent price movement such as the Highest Close in the past 20 days, yesterday’s close. todays open etc

Degrees of freedom / number of rules

Large number of rules specified

Criteria stacked on top of each other in a string of ‘AND’ statements to highly specify a conditions for action (especially entry signals)

More than ~10 rules required to specify the entire system

A good trading system has few rules specified. Ideally 6 or less across the entire system

Simple criteria for entry trigger

Set a budget of how many rules you will have in total and stick to it

Aim for 6 rules to specify the whole system and reduce further if possible

This can be difficult, but it will prevent rampant curve fitting and give your system more chance of working in the future


Many parameters are optimized to give the best hypothetical back test results

Correct optimization of a small number of parameters to ensure system performance is stable and robust

Understand and practice correct optimization to avoid curve fitting

Exit Specification

Exit rules poorly designed and unable to deal with all possible situations

Exit rules fully specified to ensure that there is always a clear exit point no matter what market conditions emerge

Perform a mental scenario review of all possible market movements once you get into a trade and ensure your exit rules account for all scenarios


Designed to be highly specific to a single market

Generates poor trading results in other related markets and losses in unrelated markets

A good trading system which is robust and non-curve fitted system should work well across a wide variety of markets

For example, a simple trend following system can work well on stocks, futures and forex with no modifications at all

Avoid developing market specific systems if you are a new trader

Plan your optimization routine in advance and ensure you optimize correctly

Ensure your historical testing and optimization covers markets from all different conditions – volatile / quiet and up / down / sideways

Ensure testing generates enough historical trades to be sure of system performance (the more the better, but several hundred as a minimum)

(Return per dollar risked)

High variability (standard deviation) of trade outcomes relative to the average profit per trade

Large losing R-Multiple trades appear in the historical simulation which could wipe you out

Trading rules make it likely that a large R-Multiple losing trades may emerge in the future (e.g. Using extremely tight stops on volatile stocks)

Low variability (standard deviation) of trade outcomes relative to the average profit per trade

No Large (-10R or greater) losing trades found during simulation

Large losing trades are not likely based on the trading system logic

Generate an R-Multiple trade distribution for your system’s historical performance and ensure that there are no large losing R-Multiples

Perform mental scenario testing on your trading system logic to determine if extremely large loses could occur

Adjust logic if required to reduce this risk (e.g. widen stops)

Average profit per trade

Low relative to a realistic assessment or slippage and commissions

This leaves no room for error if slippage increases or if market character changes

Average profit per trade substantially higher than the cost of slippage and commissions

Allows for changes in slippage and market character without the system self destructing

Determine the average profit per trade excluding slippage and commissions based on historical backtests

Research the likely slippage and commissions for your chosen markets

Calculate average profit per trade including these costs

Ensure the system remains profitable and equity curve remains attractive including these assumptions


The system generates so few trades that real time performance will be extremely lumpy


The system generates so many trades that it is impossible to take them all and there is no mechanism other than ‘discretion’ to select between trades

A good trading system generates a sufficiently large number of trades that there is ample profit opportunity over the year (greater than 100 trades is preferable)

If the system generates more trades than the portfolio can handle there are objective rules for how to prioritize trades

Measure how many trades your system generates each year and ensure it is large enough to make you money but not so large that you get swamped

Measure how many trades each rule you add to your system impacts. If a rule only impacts a small number of trades (say <30) then it is probably not statistically valid and should be removed

These are some of the key differences between a good trading system and a poor trading system. Our recommended actions in each category should help you avoid many of the common pitfalls of trading system development.

Pin It on Pinterest

Share This

Share This

Share this post with your friends!