Cesare - BacktestMarket

Algorithmic Trading Systems

The main parameters to be taken into account when thinking, coding and testing an Expert Advisor

It is really important to know what is the goal of a trading system and what are its boundaries. I advice you to read an interesting book about it: Building Winning Algorithmic Trading Systems - a trader's journey from data mining to monte carlo simulation to live trading by Kevin J. Davey.

Good data is the first thing needed by a good algorithmic trader, so it is good to have high quality data (volume is really important, especially for MT4 backtesting).

What is important for a trader is to know its strategy and, in case of algorithmic trading, its expert advisors performances. In order to do that, it is good to have metrics to be able to evaluate it.

According to what I have learnt by coding trading systems, it is really interesting to look at this summary table inspired by the above book. Here are presented some factors a trader ought to determine before backtesting its trading systems.

Each factor has got an overall determined acceptance interval, set by the programmer, according to his own experience over algorithmic trading. Here I want to present what I think is the one of the smartest set of parameters to be respected when running backtests for a trading system. This is a table from the book I mentioned above. We will discuss parameters in dedicated pages to go deeper into the analysis.



Total net profit ~$10k per year per contract
Profit Factor >1.5 ideal
Average trade net profit >50$ per contract
Tharp expectancy >0.10
Slippage and Commissions Atleast 1-2 ticks slippage per round turn
Maximum drawdown Much smaller than total net profit
Equity curve slope Ideal rises at 45° angle
Equity curve flat periods Short in duration
Equity curve drawdown, depth and duration Proportional to overall curve
Equity curve fuzziness small is ideal
Risk of Ruin <10%
Median maximum drawdown <40%
Median % return >40%
Return/drawdown ratio >2.0