All Projects → asad70 → Reddit Sentiment Analysis

asad70 / Reddit Sentiment Analysis

This program goes thru reddit, finds the most mentioned tickers and uses Vader SentimentIntensityAnalyzer to calculate the ticker compound value.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Reddit Sentiment Analysis

cira
Cira algorithmic trading made easy. A Façade library for simpler interaction with alpaca-trade-API from Alpaca Markets.
Stars: ✭ 21 (-78.35%)
Mutual labels:  trading, algotrading, stocks
Blankly
🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
Stars: ✭ 1,456 (+1401.03%)
Mutual labels:  trading, algotrading, stocks
Redtorch
Java开源量化交易开发框架
Stars: ✭ 528 (+444.33%)
Mutual labels:  trading, algotrading
Alphapy
Automated Machine Learning [AutoML] with Python, scikit-learn, Keras, XGBoost, LightGBM, and CatBoost
Stars: ✭ 564 (+481.44%)
Mutual labels:  trading, stocks
Finta
Common financial technical indicators implemented in Pandas.
Stars: ✭ 901 (+828.87%)
Mutual labels:  trading, algotrading
Stocksharp
Algorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options).
Stars: ✭ 4,601 (+4643.3%)
Mutual labels:  trading, stocks
Quantdom
Python-based framework for backtesting trading strategies & analyzing financial markets [GUI ]
Stars: ✭ 449 (+362.89%)
Mutual labels:  trading, algotrading
Algobot
A C++ stock market algorithmic trading bot
Stars: ✭ 78 (-19.59%)
Mutual labels:  stocks, algotrading
AutoTrader
A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.
Stars: ✭ 227 (+134.02%)
Mutual labels:  trading, stocks
Siis
Trading bot including terminal, for crypto and traditionals markets. Assisted or fully automated strategy.
Stars: ✭ 45 (-53.61%)
Mutual labels:  trading, algotrading
Ta4j
A Java library for technical analysis.
Stars: ✭ 948 (+877.32%)
Mutual labels:  trading, stocks
Go Robinhood
A golang library for interacting with the Robinhood private API
Stars: ✭ 48 (-50.52%)
Mutual labels:  trading, stocks
Webull
Unofficial APIs for Webull.
Stars: ✭ 273 (+181.44%)
Mutual labels:  trading, algotrading
tuneta
Intelligently optimizes technical indicators and optionally selects the least intercorrelated for use in machine learning models
Stars: ✭ 77 (-20.62%)
Mutual labels:  trading, stocks
Fastquant
fastquant — Backtest and optimize your trading strategies with only 3 lines of code!
Stars: ✭ 457 (+371.13%)
Mutual labels:  stocks, algotrading
alpaca
A TypeScript Node.js library for the https://alpaca.markets REST API and WebSocket streams.
Stars: ✭ 100 (+3.09%)
Mutual labels:  trading, stocks
Gym Anytrading
The most simple, flexible, and comprehensive OpenAI Gym trading environment (Approved by OpenAI Gym)
Stars: ✭ 627 (+546.39%)
Mutual labels:  trading, stocks
Tradestation
EasyLanguage indicators and systems for TradeStation
Stars: ✭ 65 (-32.99%)
Mutual labels:  trading, stocks
volatile
Volatile: your day-to-day trading companion.
Stars: ✭ 53 (-45.36%)
Mutual labels:  trading, algotrading
tvdatafeed
A simple TradingView historical Data Downloader
Stars: ✭ 189 (+94.85%)
Mutual labels:  trading, stocks

reddit-sentiment-analysis

This program goes thru reddit, finds the most mentioned tickers and uses Vader SentimentIntensityAnalyzer to calculate the ticker compound value.

Program Parameters

subs = []           sub-reddit to search
post_flairs = {}    posts flairs to search || None flair is automatically considered
goodAuth = {}       authors whom comments are allowed more than once
uniqueCmt = True    allow one comment per author per symbol
ignoreAuthP = {}    authors to ignore for posts
ignoreAuthC = {}    authors to ignore for comment 
upvoteRatio = float upvote ratio for post to be considered, 0.70 = 70%
ups = int           define # of upvotes, post is considered if upvotes exceed this #
limit = int         define the limit, comments 'replace more' limit
upvotes = int       define # of upvotes, comment is considered if upvotes exceed this #
picks = int         define # of picks here, prints as "Top ## picks are:"
picks_ayz = int     define # of picks for sentiment analysis

Sample Output

It took 216.65 seconds to analyze 5862 comments in 80 posts in 4 subreddits.

Posts analyzed saved in titles

10 most mentioned picks:
GME: 197
BB: 72
FB: 56
PLTR: 36
TSLA: 25
PLUG: 17
RC: 15
NIO: 14
SPCE: 10
TLRY: 10

        Bearish   Neutral   Bullish   Total/Compound
GME   0.087  0.763    0.150      0.161
BB   0.058   0.768     0.175      0.261
FB   0.119  0.708    0.173      0.127
PLTR  0.062  0.804     0.134      0.235
TSLA  0.124  0.690    0.187      0.195

Data:

Includes US stocks with market cap > 100 Million, and price above $3. It doesn't include penny stocks.
You can download data from here:
Source (US stocks): https://www.nasdaq.com/market-activity/stocks/screener?exchange=nasdaq&letter=0&render=download\

Implementation: I am using sets for 'x in s' comparison, sets time complexity for "x in s" is O(1) compare to list: O(n).

Limitations: It depends mainly on the defined parameters for current implementation: It completely ignores the heavily downvoted comments, and there can be a time when the most mentioned ticker is heavily downvoted, but you can change that in upvotes variable.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].