# The Search For Profits - Part 3¶

The two previous articles showed how an ordinary trading strategy could be made to do more. Not by optimizing its parameters, lookback periods, indicators, or assessing some added fundamental data. No. You could simply ask the trading strategy to do more of what it did. Thereby generating more profits.

Evidently, wanting higher returns will entail higher risks. But that is why we do simulations in the first place. It is to find out how our trading strategies would behaved when faced with some market data over extended periods of time.

I usually backtest for longer than the 6-year trading interval seen here. There is a simple reason for it, there was no prior data. Nonetheless, the simulation still covered 2,222 days. It should be long enough to show some statistical significance. Giving the ability to make averages of the data, and have portfolio metrics.

For the added profit, metrics varied only slightly. Some not even statistically significant since such small variations could be attributed to noise. Howevre, the profits were there, much higher than what the added risk might have suggested.

Any trading strategy can be said to have for equation:

$$A(t) = A(0) + n \cdot u \cdot \overline{PT}$$

It is kind of a trading strategy signature. This strategy does this and that, and here are its metrics. What is proposed in my book is to take the above equation and slightly transform it into: $$A(t) = A(0) + (1+g)^t \cdot n \cdot u \cdot \overline{PT}$$

It might appear as a minor modification. But it is far from than that. It implies that one could, and can have an impact on the output of a trading strategy by enhancing its trading procedures.

Evidently, if you have $g=0$, the above forumula reverts back the first one given.

## Test Results¶

This $2.0\%$ increase in $g$ is on top of what was used in the strategy presented in the previous article (Part 2). This new simulation will produce even more. There were no change to the trading strategy, except for this request to push for more. Increasing the pressure by: $\Delta g = 2.0\%$.

### Here is the backtest:¶

In [1]:
# Get backtest object
bt = get_backtest('5896b26199f4335e19fa404d')

# Create all tear sheets
bt.create_full_tear_sheet()

100% Time: 0:00:02|###########################################################|
Entire data start date: 2011-01-03
Entire data end date: 2017-02-02

Backtest Months: 72

Performance statistics Backtest
annual_return 1.26
annual_volatility 0.48
sharpe_ratio 1.92
calmar_ratio 4.21
stability_of_timeseries 0.98
max_drawdown -0.30
omega_ratio 1.41
sortino_ratio 3.00
skew 0.14
kurtosis 3.08
tail_ratio 1.14
common_sense_ratio 2.58
information_ratio 0.11
alpha 0.87
beta 0.52
Worst Drawdown Periods net drawdown in % peak date valley date recovery date duration
0 29.80 2016-10-24 2016-11-14 2017-01-23 66
1 24.89 2015-02-02 2015-03-11 2015-04-14 52
2 20.02 2013-08-05 2013-10-15 2013-12-20 100
3 19.72 2016-04-01 2016-05-18 2016-07-01 66
4 19.67 2013-05-02 2013-06-24 2013-07-11 51

[-0.057 -0.11 ]

/usr/local/lib/python2.7/dist-packages/numpy/lib/function_base.py:3834: RuntimeWarning: Invalid value encountered in percentile
RuntimeWarning)

Stress Events mean min max
US downgrade/European Debt Crisis 2.22% -13.56% 16.35%
Fukushima 0.24% -3.79% 4.97%
EZB IR Event 0.04% -7.43% 8.38%
Apr14 0.75% -8.14% 4.61%
Oct14 0.52% -5.12% 5.13%
Fall2015 -0.05% -10.13% 6.91%
Recovery 0.51% -13.56% 16.35%
New Normal 0.30% -12.69% 15.51%