Skip to content

samrawitgithubac/Nova-Financial-Solutions

Repository files navigation

Nova Financial Solutions - News Sentiment Analysis

Predicting stock price movements using financial news sentiment analysis.

Project Overview

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.

Business Objective

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

Dataset

FNSPID (Financial News and Stock Price Integration Dataset)

The dataset contains:

  • headline: Article release headline
  • url: Direct link to the full news article
  • publisher: Author/creator of article
  • date: Publication date and time (UTC-4 timezone)
  • stock: Stock ticker symbol (e.g., AAPL for Apple)

Project Structure

├── .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

Setup Instructions

1. Clone the Repository

git clone <your-repo-url>
cd Nova-Financial-Solutions

2. Create Virtual Environment

# Windows
python -m venv venv
venv\Scripts\activate

# Linux/Mac
python -m venv venv
source venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

4. Download NLTK Data

import nltk
nltk.download('punkt')
nltk.download('vader_lexicon')
nltk.download('stopwords')

Tasks

Task 1: Git, GitHub & EDA ✅

  • Set up Git version control
  • Configure CI/CD pipeline
  • Perform exploratory data analysis

Task 2: Quantitative Analysis

  • Load stock price data
  • Calculate technical indicators (MA, RSI, MACD)
  • Visualize financial metrics

Task 3: Correlation Analysis

  • Align news and stock data by dates
  • Perform sentiment analysis on headlines
  • Calculate correlation between sentiment and stock returns

Key Dates

  • 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

Learning Objectives

  • 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

Technologies Used

  • 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

Contributing

  1. Create a new branch for your task: git checkout -b task-X
  2. Make your changes
  3. Commit with descriptive messages: git commit -m "feat: add feature description"
  4. Push to your branch: git push origin task-X
  5. Create a Pull Request

License

This project is part of Nova Financial Insights training program.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors