Test your trading strategies survivorship free!

The back tested results of your strategies can only be as good as the data you run it on.  A time series is a representation how the past looked like. If your strategy is trading index-stocks you need to consider how the index looked like at any given time in the past. Testing your strategies on today’s index constitution will severely overstate your results, especially for long only strategies.

Besides my SPY mean reversion strategy I’m trading various index stocks based trading strategies. I see a significant difference in term of backtested results when running the strategies against the survivorship-free vs. non-survivorship-free index version. I already wrote a post about the impact of survivorship bias (please read here link and here link).  Over the last couple of weeks I got a number of request as many system developers have the desire to seriously test their strategies and limit the impact of survivorship-bias. Therefore I decided to make the S&P 500, S&P 100 and Nasdaq 100 historical constitution available to the trading community.

It took me a lot of time getting access to the historical constitution of these indices, getting them into AmiBroker and align it with my data provider.  This is especially difficult for delisted stocks. Therefore I intend to sell the index package as described bellow

S&P 500

  • starting 1990
  • monthly index adjustments
  • completion 98% – 100% among the years

S&P 100

  • starting 1990
  • daily index adjustments
  • completion 98% – 100% among the years

Nasdaq 100

  • starting 1995
  • daily index adjustments
  • completion 98% – 100% among the years

The historical index constitution is mirrored within a single AFL function. So calling the function with ticker name and date will return TRUE/FALSE for a given index. It’s super simple to build into your existing systems. The package doesn’t include the actual time series for the included stocks, those you need to get from your data provider, e.g. premiumdata. Premiumdata delivers data for listed and delisted stocks. It’s important to have access to delisted data as well as a number of former index stocks are delisted as of today, e.g. PeopleSoft (PSFT).  The ticker format for delisted stocks PSFT-YearMonth, e.g. PSFT-200501.

In case you are interested send me an email (hassler.blog(at) gmail.com)

About these ads

Comments

  1. Really good work Frank. This is a terrific effort that all system traders should strongly consider.

  2. excellent work

  3. hi
    I have been trying an idea, (I hope Frank does not bother because perhaps it could replace his watchlist)
    Why using SP 500 or Nasdaq stocks? I don’t care if any stock belongs to SP 500 or not: I only want it to have enough liquidity.
    So I have been exploring all the 3176 symbols in NYSE and the 2856 Nasdaq symbols, and the 24958 Delisted symbols , and adding the symbols with a 90 days average volume higher than 15000000 dollars to a new watchlist.
    It could be a higher volume, perhaps 50M $ to make it similar to SP500 stocks..
    Anyway, I explore every six months, adding the stocks to the same watchlist, I create a non-survivorship-bias watchlist with a 15 Million $ daily volume.
    This could be useful for backtests.

    But i have found that the number of symbols every year goes down. Exploring the new watchlist, the number of symbols are:
    2011: 1249
    2010: 1231
    2009: 1296
    2008: 1442
    2007: 1268
    2006: 1126
    2005: 983 (big gap!)
    2004: 859
    2003: 702
    2002: 780
    2001: 860

    I thought I have any error, but now I am thinking that it is an effect of the inflation.

    So, in my own systems, where I always check the average volume, I am going to test the volume depending on the year. I’ll try any formula to decrease the volume while decreasing the year..
    Any suggestion?

  4. Dear Frank,
    I’m not an expert in stocks but I think the way you’re using the term “Survivorship Bias” might be misleading. In my opinion ‘survivorship’ relates to the survivorship of a company itself (in terms of bankruptcy), not the fact whether it’s listed in an index or not. The latter might be called something like “Hindsight Bias”.

    Best Regards

    • Hi Philipp,

      thanks for your comment. That’s what I got from wikipedia: In finance, survivorship bias is the tendency for failed companies to be excluded from performance studies because they no longer exist. It often causes the results of studies to skew higher because only companies which were successful enough to survive until the end of the period are included.

      I’m referring to surviving within the index.

      Frank

Trackbacks

  1. [...] KPI Posts Comments ← Test your trading strategies survivorship free! [...]

  2. [...] If you are a serious systems backtester, I also strongly recommend you take a close look at the survivorship free database he offers here. (Note: I am in no way compensated for this [...]

  3. [...] looked into the behaviour of SP500 stocks over the course of the last 10 years. For this test a survivorship-bias free SP500 database has been used. A very basic strategy has been built: trading the SP500 with a (daily) [...]

  4. [...] test is done on a survivorship free SP500 index (link) . Data not adjusted for cash dividends, no commission / slippage [...]

  5. [...] few month ago I released the SP500 and Nasdaq100 survivorship bias free index constitution (link). The data is build on NORGATE premiumdata my preferred data vendor. I’m considering creating [...]

  6. [...] AW: AmiBroker … Survivorship Bias [...]

  7. [...] you have an interest on testing your index-stock strategies in a reliable way then read this for further [...]

  8. [...] you have an interest on testing your index-stock strategies in a reliable way then read this for further [...]

  9. [...] I define risk in terms of historical volatility. I looked into S&P100 and S&P500 stocks (survivorship bias free) from Jan. 1990 until Nov. 2011. Stocks are ranked by historical volatility of various time-frames [...]

  10. [...] I define risk in terms of historical volatility. I looked into S&P100 and S&P500 stocks (survivorship bias free) from Jan. 1990 until Nov. 2011. Stocks are ranked by historical volatility of various time-frames [...]

  11. [...] I define risk in terms of historical volatility. I looked into S&P 100 and S&P 500 stocks (survivorship bias free) from Jan. 1990 until Nov. 2011. Stocks are ranked by historical volatility of various time-frames [...]

  12. [...] I define risk in terms of historical volatility. I looked into S&P 100 and S&P 500 stocks (survivorship bias free) from Jan. 1990 until Nov. 2011. Stocks are ranked by historical volatility of various time-frames [...]

  13. [...] Testing your strategy survivorship free [...]

  14. [...] calculated correlation among all SP500 members (survivorship bias free)  using daily bars. The calculation is conducted after the last trading day of the week has [...]

  15. [...] calculated correlation among all SP500 members (survivorship bias free)  using daily bars. The calculation is conducted after the last trading day of the week has [...]

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

Follow

Get every new post delivered to your Inbox.

Join 305 other followers

%d bloggers like this: