Skip to content

Repository files navigation

Backtesting Platform

Overview

The Backtesting Platform is an interface that allows developers and traders to test their trading strategies, and general Python scripts with a range of various parameters quickly, and aggregate their results.

System Architecture

System Design

Components

  1. Frontend (Next.js Web Application)

    • Allows user to login, submit jobs, and view previous jobs
    • Deployed on Azure App Service
  2. Backend API (Golang REST API)

    • Manages job lifecycle and data flow
    • Deployed on Azure App Service
  3. Data Storage

    • Azure SQL Server
      • Stores job metadata
    • Azure Blob Storage
      • Stores trading Python scripts
      • Stores input and data files
      • Stores intermediate and aggregated job results
  4. Job Processing

    • Azure Service Bus
      • Manages sub-task distribution
      • Ensures reliable message delivery
    • Azure Functions
      • Executes trading strategy
      • Processes individual sub-tasks
      • Uploads results to Blob Storage
      • Last node for job manages post-processing
    • Azure Cache for Redis
      • Manages job state
      • Ensures each task is processed exactly once
      • Ensures only one node attempts post-processing

Project Structure

backtesting-platform/
├── backtesting-client/     # Next.js web application
├── backtesting-server/     # Golang REST API
├── az-functions/runner/    # C# Azure Functions

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages