Practically combining trend-following and seasonality

Here is a simple, robust method to combine trend-following and seasonality to achieve high return with low exposure and drawdown.

TREND-FOLLOWING

I use the simple filter from Faber 2007: invest when price is above its 10 month simple moving average.

SEASONALITY

Using bi-annual seasonality from my post series, I require the average return of the upcoming month over the previous 30 years to be greater than a threshold.

PORTFOLIO

I use the “small-value” Fama-French portfolio “value-weighted” from 1984 – 2014 (using 1954 – 1984 for the initial averaging).  This portfolio is not directly investible but funds such as Vanguard’s VBR closely approximate.

RESULTS

Using Amibroker for analysis, the profit distribution is positively skewed:

TF-Seas3

SYSTEM METRICS:

CAR 15%, Exposure 50%, Max. DD 9%

55 trades, average hold: 4 months, 80% winners

Sharpe 1.3, Profit Factor 16

TF-Seas2

TRADE LIST (partial: 1992 – 2014)

TF-Seas1

AMIBROKER CODE

TF-Seas4

Note: the threshold is cumulative over 15 datapoints i.e. a threshold of 15 equates to 1% average return per month.

Advertisements

6 thoughts on “Practically combining trend-following and seasonality

    • The loop calculates the sum of 1 month returns, ROC(C,1), for these historical months: -23, -47, -71 … -359 (i.e. 1-24*n, a bi-annual or 24 month periodicity).

      So the sum of these 15 returns is ‘r’ and this must be greater than a threshold ‘T’ for entry.

  1. Pingback: Daily Wrap for 6/12/2014 | The Whole Street

  2. In Amibroker settings, periodicity should be monthly right? Which is the minimum lenght of time series so that this code works? For me this code doesn’t produce trades…

    • Monthly periodicity, zero trade delays (e.g. enters on April 30), 60 years of daily data with test duration from 1984 to 2014. Let me know if you still have a problem, maybe I can post my settings later from home.

      Depending on your data series, you will need to adjust the threshold: perhaps it is too high to allow trades for your dataset? Try widening it.

  3. Pingback: Trend following + seasonality update | RRSP Strategy

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s