Predicting stock price movements using financial news sentiment analysis.
This project analyzes the relationship between financial news sentiment and stock price movements. We use Natural Language Processing (NLP) to extract sentiment from news headlines and correlate it with stock returns to build predictive models.
Enhance predictive analytics capabilities to boost financial forecasting accuracy through:
- Sentiment Analysis: Quantify tone and sentiment in financial news headlines
- Correlation Analysis: Establish statistical correlations between news sentiment and stock price movements
- Investment Strategies: Leverage insights to suggest data-driven investment strategies
FNSPID (Financial News and Stock Price Integration Dataset)
The dataset contains:
headline: Article release headlineurl: Direct link to the full news articlepublisher: Author/creator of articledate: Publication date and time (UTC-4 timezone)stock: Stock ticker symbol (e.g., AAPL for Apple)
├── .vscode/ # VS Code settings
│ └── settings.json
├── .github/ # GitHub workflows
│ └── workflows/
│ └── unittests.yml
├── .gitignore # Git ignore rules
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── src/ # Source code
│ └── __init__.py
├── notebooks/ # Jupyter notebooks for EDA
│ ├── __init__.py
│ └── README.md
├── tests/ # Unit tests
│ ├── __init__.py
│ └── test_data_loading.py
└── scripts/ # Utility scripts
├── __init__.py
└── README.md
git clone <your-repo-url>
cd Nova-Financial-Solutions# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python -m venv venv
source venv/bin/activatepip install -r requirements.txtimport nltk
nltk.download('punkt')
nltk.download('vader_lexicon')
nltk.download('stopwords')- Set up Git version control
- Configure CI/CD pipeline
- Perform exploratory data analysis
- Load stock price data
- Calculate technical indicators (MA, RSI, MACD)
- Visualize financial metrics
- Align news and stock data by dates
- Perform sentiment analysis on headlines
- Calculate correlation between sentiment and stock returns
- Challenge Introduction: 10:30 AM UTC, Wednesday, 19 Nov 2025
- Interim Submission: 8:00 PM UTC, Sunday, 23 Nov 2025
- Final Submission: 8:00 PM UTC, Tuesday, 25 Nov 2025
- Configure reproducible Python data-science environment with GitHub
- Perform EDA on text and time series data
- Compute technical indicators using TA-Lib and PyNance
- Run sentiment analysis on news headlines
- Measure correlation between news sentiment and daily stock returns
- Document findings in publication-style report
- Python: Core programming language
- Pandas/NumPy: Data manipulation and analysis
- NLTK/TextBlob: Natural language processing and sentiment analysis
- TA-Lib: Technical analysis indicators
- PyNance: Financial metrics calculation
- YFinance: Stock price data retrieval
- Matplotlib/Seaborn: Data visualization
- Pytest: Unit testing
- Create a new branch for your task:
git checkout -b task-X - Make your changes
- Commit with descriptive messages:
git commit -m "feat: add feature description" - Push to your branch:
git push origin task-X - Create a Pull Request
This project is part of Nova Financial Insights training program.