Summary
When comparing any prospective trading strategy performance, one needs to
take into account the total capital necessary to trade it, and/or adjust
strategy returns appropriately to a stable risk benchmark. This is basically
what risk-normalized returns are all about, leveling returns to a common,
comparable risk.
A thorough and valid risk-normalized testing procedure, necessary for valid/fast
system development, requires the following:
1) Profit formula
Ideally, this should be plotted as an indicator below the chart, such as
with Roy's famous Trade Equity indicators.
Profit indicators plot an instant broad picture of not only the system's
profit for that chart, but also its drawdowns and inactive periods, and
the visual relationship between them.
Keeping in mind that eventual profit is related to actual risk, ideally
we should be looking for the smoothest profitable outcome, rather than the
largest profit.
It is also wise to check for performance on less-than-ideal market situations,
such as trading ranges and downturns.
Is the system profitable due to one or two lucky trades?
How does it perform in market range/downtrend periods?
What if we change one entry/exit rule - does it improve the smoothness of
the profit curve?
2) Inclusion of transaction costs
Brokerage and slippage/spread are very important components of any trade,
and they become increasingly important as the trading rate increases and/or
position size decreases.
For example, it is not possible to directly compare short-term trading strategies
with longer-term ones, without also including full entry & exit transaction
costs. Very active short-term trading strategies usually accumulate a larger
transaction cost total, impacting profitability to a greater degree.
3) Normalization of exposed capital (or profit) to a tolerable risk level
Adjusting capital/profit levels to a historical, say, 30% drawdown, allows
the direct comparison of very different trading strategies, such as Buy
& Hold vs intraday trading.
4) Comparison of system profit to a stable benchmark
Is the system profitable by itself, or is its profit really the result of
favourable market conditions?
Are we unknowingly using market survivorship bias, confusing it for system
performance?
A test for Buy & Hold over the same period, adjusted to a common risk, will
tell the true story.
5) Annualization of profits
Direct system comparisons also require profits to be measured on an annual
basis (x%pa).
This is necessary because there may be inactive periods within the security's
test period, which in MetaStock means that the testing period may eventually
stretch back longer than anticipated. 1000 bars of security A may take us
back four years, but the same numbers of bars in security B, with an inactive
period of two years in between, effectively means that the test period is
six years for that stock.
Annualized profits (only after the first year, to avoid skewing of short-term
profit) takes care of data period disparities.
6) Backtest over a broad universe of securities
This is necessary to obtain a broad view of system performance.
Ideally, a minimum of 200 securities should be used in a system performance
exploration.
The annualized, risk-adjusted profit indicator is simply run in a MetaStock
exploration column, and the median (midpoint) result is selected by the
following process:
a) Click on the profit Long % column header to rank results by profitability:

b) Select the middle profit % result, so that clicking again on the same
column header
(and reversing the profitability order) does not change the position of
the selected result:

Median profit results from explorations using 200+ securities, are not as
affected by extreme results as they would be by adding & averaging same
results. Extreme results (outliers) tend to skew averages, whereas the midpoint
in a series of results (median) doesn't suffer from the same problem unless
the data is random.
Please note that this is not the same as portfolio backtesting, such as
used by TradeSim.
Portfolio backtesting should be performed after the trading system is developed.
Where can I find these system development/backtesting tools?
All the above tools are available with the MACDH
Divergence and URSC v3.0 kits.
|
|