Description

SATbot, or the sentiment analysis trading bot, is a program that combines natural language processing, sentiment analysis, and algorithmic trading in order to analyze news content and make a relevant trade. The purpose of this project is to create a bot that can automatically make trades in the stock market based on news content. SATbot was written in C#/.Net Core. It uses 3 external apis: News API for news retrieval, Google Cloud Natural Language API for NLP, andAlpaca Markets API for stock data and trading. The data is stored in a MongoDB database, which is hosted on Azure. To bring the data to SATDash - our front end dashboard - we used express and mongoose to set up api endpoints. Our frontend is written in angular using the SBAdmin template. Currently the bot is able to automatically retrieve news articles, apply natural language processing and sentiment analysis to the news article contents, use the results to correlate the news articles to a publicly listed stock, analyze the stock's trend, make a prediction on how the stock will move, and use the prediction along with the NLP results to execute a trade. The frontend dashboard display the articles analyzed, analysis results, predictions, and trading transactions along with some performance metrics and statistics (such as number of articles analyzed and profit or loss on the trading portfolio). While we have no official plans to continue this project's development in after the end of this semester, if we were to continue, we would work on refining the stock correlation algorithm and using more sophisticated data analysis and machine learning methods to improve the capabilities of our bot.

History

The inspiration for this project came from the NPR Planet Money podcast about BOTUS, a trading bot designed to make trades based on Donald Trump's tweets. Our team thought this was an interesting concept and something different from the various inventory management projects we've previously developed for other classes throughout our school career so we sought to apply the concepts of algorithmic trading and sentiment analysis to the news (which was more general and had more potential for a capstone project). We began with the research stage to decide which technologies (programming language, database, and APIs) we wanted to use for the project. To begin, we connected our program to an Azure-deployed database as well as added the API packages to our project. We started with pulling news from News API and NLP to get a sentiment score and list of entities. We wrote an algorithm to correlate the entities from the news article to a list of publically traded stocks, which we populated in our database.After we were able to successfully retrieve news articles and run them through the NLP API and correlate them to stocks, we moved on to data analysis, prediction and trading. We pulled stock data from the Alpaca API and explored linear regression and EMA analysis techniques to predict stock trends. Once we had a stock prediction, we used that along with the sentiment score from the news article as conditions for whether the bot would buy or short sell the stock. We connected to Alpaca Markets API to execute the stock order. After creating the full program flow, we created an Angular project for a frontend dashboard for demo and monitoring purposes. We started with the SBAdmin Angular template and set up the pages and routing. We then created an API using Express to pull data from our Mongo database to API endpoints which our frontend could then call. We then created the dashboards for the front end.

Features

  • Automatically retrieve live news updates
  • Run NLP and sentiment analysis
  • Correlate news articles to publically traded stocks
  • Data analysis on stock movements to make stock prediction
  • Automatically place a buy/sell stock order on Alpaca Markets
  • Angular dashboards to display articles analyzed, analysis results, predictions, stock transactions, stock portfolio and performance

Videos

There are currently no trailers available for Sentiment Analysis Trading Bot. Check back later for more or contact us for specific requests!

Images

There are currently no logos or icons available for Sentiment Analysis Trading Bot. Check back later for more or contact us for specific requests!

About ID11

We are a team of third year Sheridan Software Development Network Engineering students. We have a breadth of Computer Systems Technology skills including programming (Java, C#, C), web application development (JS, Angular), mobile development (Android and iOS), database management (MSSQL, Oracle SQL, MongoDB), as well as experience using Windows, Linux, and MacOS operating system.

Sentiment Analysis Trading Bot Credits

Quynh Dinh
Full-stack developer
Mary Ma
Full-stack developer