Are there signs of the pump and dump behavior on Reddit penny stock forums?
The Project
In this project for NYC Data Science Academy I look at certain sub-reddits where people share their views on the expected performance of penny stocks. These pump and dump (P&D) schemes represent illegal behavior when the perpetrator, holding a substantial position in a thinly-traded stock, creates a hype around the company and essentially manipulates the market by inflating the demand while controlling a large portion of the stock supply.
The Dataset
Pump and dump schemes are usually targeted at so-called penny stocks, which are shares of mirocap companies that are priced at less than $5 each. Penny stocks offer much higher volatility. That coupled with their low price grants the person running the scheme the ability control a significant amount of the stock supply by without having to invest too much money.
Therefore, I focus my efforts on two sub-reddits that are dedicated to penny stocks:
- r/pennystocks , and
I also obtain data from r/stocks with the expectation that although the discussion of penny stocks is discouraged on r/stocks, this rule may be not enforced too strictly.
I use Scrapy, a Python web-scraping framework, to collect data on all available discussions on these sub-reddits. In particular, for each post I scrape:
- Title of the post,
- Text of the post,
- Date of the original post,
- Name of the author of the original post,
- Text of the each comment,
- Date of the each comment, and
- Author of the each comment.
From this data, I obtain tickers of the companies, mentioned in the posts/comments, and download stock prices from Yahoo Finance.
After cleaning the data, I have over 6,400 posts and comments from all three sub-reddits starting from August 2018.
sub-reddit | N of comments |
---|---|
/r/RobinHoodPennyStocks | 3991 |
/r/pennystocks | 2256 |
/r/stocks | 219 |
Word Content
For illustration, I create word clouds corresponding to the content of posts and comments of each penny stock in for periods of growth and decline as you can see in the four illustrations below:
When the stock price was growing
When the stock price was declining
A week prior to the week with positive returns
A week prior to the week with negative returns
What I find interesting and somewhat unexpected is that even in the weeks with negative stock returns, the words used in posts are predominantly positive, e.g. “buy,” “good,” “new,” etc.
To further investigate the sentiment of the comments, using the TextBlob package, I calculate the polarity score of each post/comment, where a value of one denotes a very positive text and negative one denotes a very negative comment.
Abnormal returns
For each stock I calculate a measure that essentially represents the maximum weekly return:
I also compare this measure to trailing 12 weeks returns and create a dummy variable equal to 1 if the maximum weekly return deviates from the trailing returns (or zero, if the mean trailing return is negative), by more than 2 trailing standard deviations:
In order to better illustrate what I am looking for by performing this data analysis, let me use an anecdotal example of American Premium Water Corporation (HIPH). We can see that prior to the abnormal growth of the stock in September and October 2018, there was a spike in the number of posts and comments related to the company stock, and the comments that were evaluated as positive by TextBlob algorithm had a fairly high positive score.
To me, it means that we can suspect that some online hype was created before the subsequent abnormal increase of the stock price.
Logistic models
Finally, I try several specifications for logistic models where the dependent variable is the leading dummy variable, calculated in equation (2). The dependent variables are the number of posts in a given week that relate to a specific stock (Np) and the average polarity score of these comments (PS).
Out of several specifications, there are two that warrant a mention here.
Specification 1:
As we can see, the number of posts is a statistically significant variable and shows that the Reddit activity around the stock may be a predictor of future abnormal positive returns. The polarity score is not statistically significant, but I think that increasing the period of observations and improving the quality of the sentiment analysis may yield better results.
Also, I try another specification:
We can see that the number of original posts related to a stock in a certain week has higher impact on the odds that the stock will show abnormal positive returns in the next week.
Important Disclaimer
As I mentioned before, pump and dump schemes are illegal. However, the goal of this study was not to accuse anyone of participating in fraudulent schemes. After all, anybody can be as enthusiastic about the stock as he/she feels like, and he can freely express his enthusiasm online. Such posts would not constitute a pump and dump scheme unless the person posting such comments holds a relatively large position of these stocks and can profit from the subsequent increase of the stock price.
Therefore, only regulators, like SEC, that have an access to the information about individual stock holdings can conclude whether these posts represent genuine enthusiasm or artificial hype intended to manipulate the market.
However, if after obtaining more data, I can statistically show that there is a connection between the posts on these sub-reddits and the abnormal spikes of the stock prices, I believe that further investigation by the regulator may be warranted.
Code and Shiny App
You can find the Dataset and the Python code used to analyze it on my GitHub
The Shiny App that I used to present the results of this preliminary analysis can be found here.