Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

📈 MarketPulse

Object-Oriented Stock Analysis System in C# (.NET)

A cumulative software systems project focused on clean architecture, extensibility, and real-world data analysis.


🎥 Full Application Demo

📌 Watch the full walkthrough showcasing data ingestion, simulation mode, pattern recognition, and UI interaction

🔗 Demo Video: youtube link


Overview

MarketPulse is a desktop stock analysis application developed in C# (.NET, Windows Forms) as part of
Software Systems Development (Fall 2025) at the University of South Florida, instructed by Dr. Henrick Jeanty.

The project represents a system-level, object-oriented application that analyzes historical stock data, visualizes price movement using candlestick charts, and detects classic technical analysis patterns through a modular recognition engine.

This repository is published for portfolio presentation, educational demonstration, and recruiter review.


Course Context & Intent

Software Systems Development emphasizes building high-quality, maintainable software systems using the Object-Oriented Programming (OOP) paradigm and professional tooling.

Instead of isolated assignments, the course follows a cumulative project model, focusing on:

  • System analysis and design
  • Incremental feature development
  • Separation of concerns
  • Clean, extensible architecture
  • Practical application of theoretical concepts

MarketPulse is the final integrated outcome of these objectives.


Concepts Learned & Applied

The following core syllabus topics were directly implemented in MarketPulse, not just discussed theoretically:


.NET Architecture & C# Ecosystem

  • Built using .NET Framework and Visual Studio 2022
  • Windows Forms for UI development
  • Native charting and event-driven components

Used in:
Application structure, UI layer, event handling, chart rendering.


🔧 Core Programming Constructs

  • Variables, data types, operators
  • Conditional logic and control flow
  • Iterative processing with loops

Used in:
CSV parsing, simulation logic, pattern detection rules, UI state control.


Object-Oriented Programming (OOP)

Encapsulation

  • Candlestick encapsulates raw OHLCV market data
  • Parsing and validation logic hidden from consumers

Inheritance

  • SmartCandlestick extends Candlestick with computed analytics
  • Pattern recognizers inherit from a shared abstract base class

Abstraction

  • Recognizer defines a common interface for all technical patterns
  • Recognition logic is decoupled from UI and controller logic

Polymorphism

  • All patterns are processed uniformly at runtime
  • New recognizers can be added without modifying existing code

Used in:
Entire data model and pattern recognition subsystem.


Collections & Data Structures

  • Lists for time-series candle storage
  • Dictionaries mapping patterns → detected indices
  • LINQ for filtering, sorting, and transformations

Used in:
Date filtering, pattern indexing, analytics preparation, UI population.


File Input / Output (I/O)

  • Reads historical stock data from CSV files
  • Parses, validates, and converts rows into objects
  • Enforces chronological ordering for accurate visualization

Used in:
Market data ingestion and preprocessing pipeline.


Delegates & Events

  • Event-driven programming using Windows Forms
  • Publisher–subscriber model via UI controls and timers
  • Delegates used implicitly through event handlers

Used in:
Button interactions, file dialogs, simulation timing, chart refreshes.


Lambda Expressions & LINQ

  • Concise expressions for filtering and projection
  • Improved readability and maintainability

Used in:
Date range filtering, pattern sorting, data binding.


System Architecture

CSV File
   ↓
Candlestick (raw OHLCV data)
   ↓
SmartCandlestick (derived analytics)
   ↓
Recognizer (abstract pattern interface)
   ↓
RecognizerController
   ↓
Chart Visualization & Pattern Annotations

This layered design enforces separation of concerns, a central theme of the course.


🔄 How MarketPulse Works

1️⃣ Data Ingestion

  • Loads historical stock data from CSV files
  • Each row becomes a Candlestick object
  • Data is ordered chronologically for correctness

2️⃣ Derived Analytics

SmartCandlestick computes:

  • Price range
  • Candle body size
  • Upper and lower wick lengths
  • Bullish / bearish direction
  • Relative ratios used for pattern recognition

This keeps raw data immutable and logic well-organized.


3️⃣ Technical Pattern Recognition

Supported Patterns

Single-Candle Patterns

  • Doji
  • Dragonfly Doji
  • Gravestone Doji
  • Marubozu (Bullish / Bearish)
  • Hammer
  • Inverted Hammer

Two-Candle Patterns

  • Bullish Engulfing
  • Bearish Engulfing
  • Bullish Harami
  • Bearish Harami

Each pattern is implemented as an independent recognizer class.


4️⃣ Simulation Mode

  • Replays historical data candle-by-candle
  • Adjustable playback speed
  • Pattern detection runs after full playback
  • Mimics real-time market observation

5️⃣ Visualization & UI

  • Interactive OHLC candlestick charts
  • Automatic Y-axis normalization
  • Pattern highlighting overlays
  • Date range filtering
  • Pattern selection with occurrence counts

Key Features

  • CSV-based market data ingestion
  • Candlestick chart visualization
  • Modular technical pattern recognition engine
  • Event-driven UI
  • Simulation playback mode
  • Clean object-oriented architecture
  • Easily extensible system design

Technologies Used

  • C#
  • .NET Framework
  • Windows Forms
  • Visual Studio 2022
  • LINQ
  • System.Windows.Forms.DataVisualization

Academic Integrity Notice

This project was developed for Software Systems Development under Dr. Henrick Jeanty.

Students currently enrolled in this course (or equivalent offerings) may not copy, reuse, or submit any portion of this code for academic credit.

Doing so would constitute a violation of university academic integrity policies and the course honor code.

This repository is public solely for learning demonstration, portfolio review, and recruiter evaluation.

👤 Author

Yengner Bermudez
Computer Science — Software Systems Development
University of South Florida
Fall 2025

About

MarketPulse is a C# Windows Forms application developed for a Software Systems Development course under Dr. Henrick Jeanty. The project applies OOP principles including encapsulation, abstraction, inheritance, and polymorphism to analyze historical stock data using candlestick charts and automated technical pattern recognition.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages