Sentdex provides stock sentiment scores by analyzing a number of major news sources like the WSJ, Forbes, and CNBC. Stock sentiment simply refers to the general public's attitude towards a given security and can often be used as a "directional signal to figure out whether to long or short stocks in your portfolio."
A number of researchers have shown that daily stock news sentiment, even when lagged, can serve as important predictors of future stock price movement. One study in particular successfully used news sentiment to create a low volatility, high return trading strategy.
Inspired, I attempted to do the same by creating a long/short algorithm using Sentdex's news sentiment dataset.
This strategy calculates a three-day moving average of Sentdex's
sentiment_signal factor (-3 to 6) to determine both long and short positions. On a daily basis, long positions are created in the 25 securities with the highest sentiment and short positions are created in the 25 securities with the lowest sentiment. A three-day look-back window is used because I wanted a time period that would both smooth out one-day sentiment spikes while providing a recent enough signal to (hopefully) predict stock-price movement in the following day.
The result is a low volatility, low beta strategy with returns doubling the S&P 500 from 2014 – 2015 and also avoiding the large downturns of 2014.
The full Sentdex dataset is available for $10/month and includes availability in live trading. The dataset covers almost all the securities in the S&P 500 along with a few others.
Take a look and let me know what you think. For questions on accessing this data, please email [email protected]
The purpose of this algorithm is to show a simple example of Sentdex's data in an algorithm. Further work is required to reduce the impact of slippage and commission and gear it for live trading.
|Returns||1 Month||3 Month||6 Month||12 Month|
|Alpha||1 Month||3 Month||6 Month||12 Month|
|Beta||1 Month||3 Month||6 Month||12 Month|
|Sharpe||1 Month||3 Month||6 Month||12 Month|
|Sortino||1 Month||3 Month||6 Month||12 Month|
|Volatility||1 Month||3 Month||6 Month||12 Month|
|Max Drawdown||1 Month||3 Month||6 Month||12 Month|