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|
|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%|