Our strategy: Using the Russell 3000 stocks, we implemented a two-step strategy which involved:

1) a. a traditional Value strategy; and b. a more robust version of a Momentum strategy

Taking the sorted data for each method, the RMVASW Strategy cross references the Value population and Momentum population sets to find the top 50 stocks which performed strongly under both strategies

2) Secondly, to weight the portfolio a News Sentiment Score is allocated to each of the 50 stocks, where the grading works as a proxy for forecasting short term sentiment towards the individual stocks

  • The Value and Momentum can act as complements by minimizing impact on drawdowns and allocating investments across both value and growth stocks

  • A maximum of 50 stocks which is sufficient for diversifying the portfolio without requiring to give up on return

  • Rolling Portfolio: To limit transaction costs, step (1) assumes holding 3 month overlapping portfolios therefore at a given time there will be a maximum of 3 portfolios each of which are rebalanced on a quarterly basis


  • Lack of valid data from Quandl
  • Lack of time due to the time-consuming process of running the code

Accomplishment: Within a limited period of time, we managed to come up with an original idea of using NLP-driven sentiment scores to weigh our portfolio stocks that are picked by our robust momentum strategy which is a valuable and rewarding learning experience. It was a true teamwork effort and everyone was involved in the discussion but Aatish, Sami and I focused mainly on the value, momentum and sentiment elements of the strategy respectively while Mark and Steven focused mainly on execution of the code.

Built With

Share this project: