Skip to content

raffrant/RSI_SMA_app_cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quantitative Finance Technical Analysis Tool

A C++ project for technical analysis and visualization of market data, with both:

  • a desktop plotting workflow using Matplot++
  • a lightweight interactive web dashboard using Crow

Web app demo

Overview

This project started as a C++ technical analysis sandbox for generating synthetic market data and visualizing classic indicators such as SMA, RSI, and MACD.

It now includes two interfaces:

  1. Matplot++ desktop mode for plotting indicators in separate figures.
  2. Crow web app for interactive exploration in the browser.

The goal is to keep the project simple, readable, and easy to extend for quant, visualization, and systems programming practice.

Features

Technical indicators

  • Simple Moving Average (SMA)
  • Exponential Moving Average (EMA)
  • Relative Strength Index (RSI)
  • MACD line, signal line, and histogram

Data generation

  • Simulated OHLCV-like financial time series
  • Configurable number of trading days
  • Deterministic random seed for reproducible output

Desktop visualization

  • Price with moving averages
  • RSI with overbought/oversold reference levels
  • MACD with histogram
  • Console summary statistics

Web dashboard

  • Interactive HTML frontend served from C++
  • REST API endpoints with Crow
  • Adjustable number of trading days
  • Adjustable RSI period
  • JSON responses for charts and stats
  • Browser-based visualization for quicker demos

Web app

The web version exposes API routes from a Crow application and serves an HTML dashboard.

Example endpoints:

  • /api/data — returns chart data such as close prices, SMA, RSI, and MACD
  • /api/stats — returns summary statistics
  • / — serves the HTML dashboard

The dashboard lets you explore the generated data interactively by changing:

  • trading days
  • RSI period

This makes the project more practical for demos, portfolio presentation, and quick experimentation than a desktop-only plotting script.

Project structure

.
├── main.cpp
├── quant_webapp.cpp
├── CMakeLists.txt
├── README.md
├── include/
│   ├── indicators.hpp
│   ├── data_generation.hpp
│   ├── plotting.hpp
│   └── statistics.hpp
└── assets/
    └── demo.gif

Dependencies

    C++17

    CMake

    Matplot++

    Crow

    nlohmann/json

    Threads

Build
Desktop plotting version

bash
mkdir build
cd build
cmake ..
make
./executable

Replace the executable name with the one defined in your CMakeLists.txt.
Web app version

bash
mkdir build
cd build
cmake ..
make
./executable

Then open:

text
http://localhost:8080

About

A C++ project for RSI and MA visualization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors