AI-Based news sentiment analysis for stock trading decisions
The system combines historical stock price dynamics analysis with company news processing to daily forecast the rise or fall of stock prices.
Tasks
- Collect historical quotes and news feeds for selected companies.
- Develop an NLP pipeline based on BERT + GRU for news sentiment analysis.
- Train and compare multiple classifiers (CatBoost, SVC, HMM) for price direction prediction.
- Set up a daily mechanism for generating "buy/sell" signals.
- Conduct backtesting of the strategy and compare it with the benchmark (S&P 500).

About the Project
Traditional technical analysis methods rely solely on price charts and often ignore the information context. In this project, we combined two data sources—quotes and news.
A dedicated model is built for each company: news is processed through an NLP stack (BERT → GRU), and price data is fed into classical classifiers (CatBoost, SVC, Hidden Markov Models). The models are trained on historical data and generate a trading decision once a day. The strategy’s results were compared to the S&P 500 index and showed superior returns.
Results

News Processing
- Noise in News Feed
- News can be speculative or irrelevant. Solution—filtering by sources and weighted sentiment analysis extracted by the BERT model.
- Differences Between Companies
- The same macro factor affects different industries differently. We trained separate models and optimized hyperparameters for each stock.

Strategy
The result is a flexible system capable of adapting to new companies and quickly expanding to other financial assets.
- Combining Sparse News with Dense Price Time Series
- Data was aligned by calendar days: if no news was available for a day, the model relied solely on technical indicators.
- Strategy Evaluation
- To avoid overfitting, we used a sliding window backtest and compared results with passive index investing.
Related Services
Ready to discuss your project?
Describe your task, we will make a research and respond to you as soon as possible.