S&P 500 up/down signals issued daily before market close

Investment model

The objective of this website is to run an out-of-sample test of a certain investment model. The main idea behind the model is that when the markets are rising it makes sense to go long and sit on your hands. In a bear markets, on the other hand, one might want to take short or long positions, depending on probabilities of a down or up market moves, to take advantage of increased volatility. In other words, the model attempts to get the best of the passive investing, which performs the best in a rising market, and active investing, which performs the best when the market is falling.

Key features of investment model

The key features of the model are:
  1. Trades only one instrument - SPDR S&P 500 ETF (SPY).
  2. Does not use leverage.
  3. Is always fully invested in SPY as either 100% long or 100% short position.
  4. Every trading day, one minute before market close, it generates long or short signal.
  5. Holds SPY long position for prolonged periods of time during bull markets (i.e. there could be no transactions for a number of years).
  6. The vast majority of transactions (i.e. switching from long position to short and vise versa) take place during bear markets.
  7. Performs in line with SPY during bull markets.
  8. Significantly outperforms SPY in bear markets.
  9. On average the model makes around 50 transactions per year in a bear market (e.g 2000-2002, 2008-2009).
  10. Ouperformed SPY by over 50 percentage points per year in 2000, 2001, 2002, and by over 180 percentage points in 2008.
  11. This model is not perfect (if you have come across a model that is, please write).
  12. Produced its worst performance in 2009 (underperformed SPY by 18%).
  13. The model is unlikely to be overfitted as it uses only a few parameters/(aka magic constants).
  14. The net backtest result is that the model turned $100k into $5m (net of transaction costs) over a 20-year period from 2000 to 2019 (vs $300k if one held S&P 500 index over that period).
  15. The model is not able to predict when the bear market will start or end. However, it performed well in the middle of the last two bear markets of 2000-2002 and 2008-2009. We are putting it to out-of-sample test of the bear market of 2020.

API access

The latest signal can be accessed through an API titled "Market signals" listed on rapidapi.com
The response is returned in JSON format with the following keys:

"name": "SPY weighting",
"weighting": 1 (or -1),
"created_at": timestamp of the signal.

Weighting of 1 means that the model goes 100% long SPY; -1 means the model goes 100% short SPY.

Happy researching!


The following books have influenced how we went about creating this model:

Out-of-sample performance

We set up a paper trading account with Alpaca.markets on 2 April 2020 with initial equity of $100,000 and linked it to our Market signals API to track out-of-sample performance of the model.



This site is for educational and/or general information purposes only. BargainStock.com is not a broker/dealer, we are not an investment advisor. We do not give financial or investment advice. We are not regulated by the Financail Services Authority or by an equivalent authority in any country. We do not accept or assume any responsibility or liability whatsoever for what you choose to do with this information. Consult appropriate professionals before making financial or investment decision. There are no guarantees of past, present or future performance of the model. By using this site you agree that under no circumstances is/are BargainStock.com or persons associated with it responsible for any losses incurred, direct or indirect, that are incurred as a result of use of this website.