Are there signs of the pump and dump behavior on Reddit penny stock forums?

Posted on Nov 5, 2018

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

- r/RobinHoodPennyStocks.

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:

Β (1)

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:

Β  (2)

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:

Β (3)

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:

Β  (4)

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.

About Author

Mikhail Stukalo

NYC Data Science Academy Fellow. Over 15 years of experience in investment banking and private equity. Research interests include quantitative asset management and application of Machine Learning in Finance. DBA with concentration in Finance from Georgia State University....
View all posts by Mikhail Stukalo >

Leave a Comment

prabha krithi September 16, 2019
This is a nice post in an interesting line of content. Thanks for sharing this article, a great way of bringing this topic to discussion.
Prajwal June 7, 2019
Great blog! Thanks for the info. Keep going.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp