Groundwork for a market neutral strategy

With this post I want to share some of the groundwork I did for preparing a market neutral strategy. I’m a big fan of having only a very few strategies that have a constant exposure while an edge exists. Rather than having many strategies that wait for an extremely strong edge. As of today my strategy portfolio consists of two type of strategies: mean reversion and momentum. The mean reversion strategy is trading the SPY long/short and the momentum strategy is trading Nasdaq 100 stocks with a rotational momentum approach rebalancing weekly. Furthermore I’ve got a strategy that buys country ETFs after they dipped (long only). Obviously this strategy has a certain correlation with the SPY mean reversion system. However I want to trade it in order to get some non-US exposure into my portfolio. I’m done with these strategies, of course everything can be improved.  So I’m looking for a significant next step to expand my portfolio of strategies. With this post I want to share some groundwork I did in the area of market neutrality = equal long / short exposure.

Basic research

I 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) rotational approach buy top10 or bottom10 stocks. The purpose of this strategy is to learn what position ranking will have the biggest impact on segregating winners from losers the next day. Two widely known indicators have been used: RSI and ROC. Each of them have been tested with different period settings. The stats bellow are divided into two parts. The bottom part is going long the lowest (bottom10) ranked stocks and the top part is going long the highest (top10) ranked stocks.

(click on the picture to  get a slightly larger view)

All results are without slippage/commission. Data isn’t adjusted for cash dividends.

Regardless of the type of indicator or period settings going long the strongest stocks (top 10) is always a loosing proposition and vice versa going long the weakest stocks is a winning proposition.


By definition a market neutral strategy is likely to have lower absolute return than a strategy that tries to trade in the expected direction of the market. Returns from this type of strategy are resulting from it’s ability to pick the right candidates for longs and shorts.


Based on the above shown research a strategy has been created that buys the bottom 5 and shorts the top 5. stocks have been ranked using RSI(7).

(click on the picture to  get a slightly larger view)

The basic idea looks promising. I’m going to continue my research in this area.  My main focus will be on improving  avg.% trade.

Stay tuned!

- Frank

About these ads


  1. Very good idea, Frank.
    But I have a question: having so many trades every day (10 stocks per day), the commissions should decrease very much the yearly profits, isn’t it?.
    Even a very small average slippage should decrease your numbers?

    In my experience, system that make many trades are rather unrealistic..
    Anyway is a great idea.. perhaps less trades per day?

    • Hi Gonzaga,

      thanks for your feedback. I do share your concern. Want to see ~0.75% per trade in order to trade this (at least)

      Again, it’s the beginning of a new system. Let’s see where we gonna end.


  2. Interesting idea, I share the concerns regarding transaction costs.

    From my own 5-year experience with live-trading systems with daily trades in S&P 500 stocks, I can say the following (sorry upfront if I sound a bit harsh):
    - ANY system developed applying a FLAT slippage assumption on a set of stocks with highly heterogeneous liquidity will turn out to be CRAP in reality.
    - 0% slippage is the worst assumption you could make, but 0.20% is little better
    - as less liquid stocks are more volatile, they will show up more often in your top/bottom rankings. At the same time, for these stocks, transaction costs including bid/ask and market impact are the highest!
    - in other words: your system becomes skewed towards trading the most illiquid stocks in the S&P500, your optimal parameters will be biased towards these stocks, while returns are overstated

    You have to use a liquidity-based transaction cost curve to prevent these biases from entering your strategy development process. And, you would want to apply the transaction cost adjustment to BOTH your ranking criteria, and the evaluation / profit simulation of your strategy.

  3. As always, good work ! Thanks for sharing.

    some food for thought:

    (a) for a neutral approach, you would want to also add a beta factor into your position sizing. OR atleast take positions in the relative weight of volatility.

    (b) eventually you should probably look at the correlation between the “pairs”, in this case probably a combination of the correlations (this is computationally tough to define and calculate for 5+5 stocks to get a cumulative coorrelation number and minimize it) should not be too low.


  4. Cornelius says:

    Very interesting topic, Frank, thank you! Is your Long/Short portfolio exposed to market risk or have you made it beta neutral?


    • Hi Cornelius,

      thanks for your feedback!

      This is version is not adjusted for beta. Will need to do that going forward. Just wanted to get started with the initial concept. More to come!

      - Frank


  1. [...] week I released a post about the groundwork for a market neutral strategy. Since then I continued my research. With this [...]

Leave a Reply

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

You are commenting using your 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


Get every new post delivered to your Inbox.

Join 306 other followers

%d bloggers like this: