In this article, we will talk about the general requirements for profitable trading systems. The article consists of the following topics:

  1. Creating a logical and symmetric trading algorithm.
  2. Getting the high quality history data.
  3. Backtesting of the system.
  4. Optimization.
  5. Forward testing.
  6. Live testing.
1. Creating a logical and symmetric trading algorithm.
The logic of the algorithm should be reasonable and symmetric for both directions, both in BUY and for SELL. Thus, you can avoid mistakes during backtesting and optimize them afterwards.

For example, we will take a Reversal Strategy with indicator of Bollinger Bands + SMA of ADX.
The logic is simple: Whenever candle price close above the UPPER_BAND we SELL. If candle price close below the LOWER_BAND we BUY. SMA of ADX inicates that we have a calm and flat market now. So if last value of ADX is lower than her SMA value with period of 20 that's means that it's allowed to trade.
Number of orders in time is unlimeted but we close all by single TP as shown on the pircture.

2. Getting the high quality history data.
In this case, we will test our strategy on Dukascopy's Jforex platform, which gives us the actual data on the tick. It is necessary that our tests are close to the actual behavior in the market.The sample should also be representative, so the first tests will be for 3 years.

3. Backtesting of the system.

The selection of the profitable strategy tests has the following requirements:
  • Profitable parameters in testing window must be more than 1% of all the tests.
  • When assessing the quality of a strategy, one should not take into account random surges in profits.
  • It is necessary to take into account the costs of commissions, spread and overnight.
  • The efficiency of the strategy should be at least 5%. It is calculated as follows (Real income / potential income) * 100.
    Potential income is how much we could earn by buying or selling our asset at the time of sampling our test.
The potential income for our trading period is 1790 pips.
Then we will get the first profitable parameters. For this reason, we will iterate a BBand Period with a step 5.
In order to reduce a random factor such as surge of profit our step parameters might be freer. In this case 5 is satisfied.
Then start testing.
Testing period - 03.07.2013-16.08.2015
After first tests done. We check the distribution of profit factor between the between the test sample.

Here we get the Distribution of Profit factor. In addition, as we see number 24 is our Top Model, which we are going to work with.
Normally the first testing window with Profit distribution have to be close to Normal Distribution. Therefore, in that case we can understand where an area of profit parameters is.

An example of Normal Distribution where is the most profitable settings are in the Middle point of the curve.
After tests done let’s analyze the quality of trades.The equity Pips curve shows us a trend up without any profit anomalies and surges of profit or loss. Therefore, we can proceed to the Optimization.

4. Optimization.

You can use any way of optimization and filter adding. However, make sure that there are no following violations in your optimization:
1) Too many rules and conditions.
2) Data sampling is too small.
3) Incomplete analysis of the statistical characteristics of the trading system.
4) Incomplete analysis of optimization results.
5) Improper optimization methods.
6) Lack of post-verification inspection.

My way of system optimization is to find the best Day and Trading hours.

As you see, Friday, Tuesday and Sunday excluded from trading days as unprofitable.

By known formula let's calculate a strategy efficiency (Real income / potential income) * 100.
Efficiency = (1242/1790)*100 = 69.4%

That's great result. The only one way to verify strategy performance is to make a forward test.


5. Forward tests.

Forward performance testing, also known as paper trading, provides traders with another set of out-of-sample data on which to evaluate a system.

Forward test requirements:
ú Forward performance must be more or equal to 75% of past performance efficiency
ú Draw Down % might be no bigger than 150% of Test DD.
For the next 3 years, we will make a forward test with new parameters.


The results of Forward test is not bad. One time it shows the performance even better than in tests. But DD% is about 600% of a tests .Looks like the strategy model is robust but need more optimization and work under money management, before to launch it on live test.

6. Live testing.
After all the tests and optimization there is only live test remains. During it we must to make sure that the performance, execution and strategy behavior is equal or close to a test. All the requirements regarding to DD% and profit factor is the same as for Forward tests. Next 6 month of live tests will be enough to get to know whether this strategy is appropriate to real trading.
If you will see that yearly profit significantly reduce than average profit of the previous tests or more it shows a negative performance stop the strategy and revise it otherwise refuse it as unprofitable or obsolete and unsuitable for current market conditions strategy.

Conclusions:
The methods of testing and testing the strategy for survivability are not limited to the methods presented in this article. With experience, you will add more.
The key to a successful strategy is:
1) Historical testing.
2) Representative sample
3) Avoiding adjustment under the yield curve
4) Forward tests.
5) Regular review of the profitability of the trading strategy.
Good trades and good luck!
Translate to English Show original