Skip to content

xyffar/BOST-Backtesting-and-Optimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ˆ BOST - Backtesting and Optimization System for Trading

Version License Python Streamlit Status

A powerful, user-friendly platform for backtesting and optimizing trading strategies

Features β€’ Quick Start β€’ Installation β€’ Usage β€’ Strategies


🎯 Overview

BOST is a comprehensive backtesting and optimization platform designed for traders, quantitative analysts, and financial researchers. Built with Python and powered by Streamlit, it provides an intuitive interface for testing trading strategies against historical data, optimizing parameters, and analyzing performance with professional-grade metrics.

Whether you're a beginner exploring algorithmic trading or an experienced quant developing sophisticated strategies, BOST offers the tools you need to validate your ideas and improve your trading performance.

πŸš€ Features

πŸ“Š Comprehensive Backtesting

  • Simulate strategies against historical market data with precision
  • Support for any asset class (stocks, forex, crypto, commodities)
  • Multiple timeframe analysis capabilities
  • Real-time performance tracking

⚑ Robust Optimization

  • Advanced parameter optimization algorithms
  • Grid search and random search methods
  • Multi-objective optimization support
  • Parallel processing for faster results

πŸ“ˆ Advanced Analytics

  • Performance Metrics: Total Return, Sharpe Ratio, Sortino Ratio, Maximum Drawdown, SQN
  • Risk Analysis: Value at Risk (VaR), volatility measures, correlation analysis
  • Statistical Tests: Monte Carlo simulations for strategy robustness
  • Benchmark Comparison: Compare against market indices and other strategies

🎨 Interactive Visualization

  • Dynamic charts and performance graphs
  • Equity curve analysis
  • Drawdown visualization
  • Trade distribution analysis
  • Risk-return scatter plots

πŸ“‹ Professional Reporting

  • Detailed Excel export functionality
  • Comprehensive performance reports
  • Strategy comparison matrices
  • Risk assessment summaries

πŸ—οΈ Modular Architecture

  • Easy strategy implementation
  • Flexible data handling
  • Extensible framework
  • Clean, organized codebase

πŸ’» User-Friendly Interface

  • Streamlit-powered GUI
  • No coding required for basic usage
  • Integrated data sources
  • Real-time parameter adjustment

πŸ› οΈ Installation

Quick Installation

# Clone the repository
git clone https://github.com/yourusername/BOST-Backtesting-and-Optimization.git

# Navigate to the project directory
cd BOST-Backtesting-and-Optimization

# Install dependencies
pip install -r requirements.txt

πŸš€ Quick Start

1. Launch the Application

streamlit run main.py

2. Basic Workflow

  1. Load Data: Use integrated data functions (no external files needed)
  2. Select Strategy: Choose from pre-built strategies or create your own
  3. Configure Parameters: Set your strategy parameters and backtest settings
  4. Run Backtest: Execute the backtest and view real-time results
  5. Optimize: Fine-tune parameters for optimal performance
  6. Analyze Results: Explore interactive charts and detailed metrics
  7. Export Reports: Generate comprehensive Excel reports

πŸ“– Usage

Data Integration

BOST features fully integrated data handling:

  • Built-in data management system
  • No external data files required
  • Multiple timeframes
  • Support for any financial instrument

🎯 Strategies

BOST comes with a comprehensive collection of pre-built strategies:

Technical Indicators

  • Moving Average Crossover (strategy_ma_crossover.py) - Classic dual MA crossover system
  • RSI Strategy (strategy_rsi.py) - Relative Strength Index based trading
  • RSI Multi-Timeframe (strategy_rsi_multi_timeframe.py) - Multi-timeframe RSI analysis
  • RSI Price Divergence (strategy_rsi_price_divergence.py) - Divergence detection system
  • MACD Strategy (strategy_macd.py) - Moving Average Convergence Divergence
  • Bollinger Bands (strategy_bollinger_bands.py) - Volatility-based trading

Price Action

  • Breakout Strategy (strategy_breakout.py) - Price breakout detection

Benchmark

  • Buy and Hold (buy_and_hold_strategy.py) - Passive investment benchmark

Custom Strategies

Easily create your own strategies using the common_strategy.py base class framework.

πŸ“ Project Structure

BOST/
β”œβ”€β”€ .streamlit/                      # Streamlit configuration
β”‚   └── config.toml
β”œβ”€β”€ .vscode/                         # VS Code settings
β”‚   β”œβ”€β”€ settings.json
β”‚   └── launch.json
β”œβ”€β”€ strategies/                      # Trading strategies directory
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ common_strategy.py          # Base strategy class
β”‚   β”œβ”€β”€ strategy_ma_crossover.py    # Moving Average strategy
β”‚   β”œβ”€β”€ strategy_rsi.py             # RSI strategy
β”‚   β”œβ”€β”€ strategy_rsi_multi_timeframe.py
β”‚   β”œβ”€β”€ strategy_rsi_price_divergence.py
β”‚   β”œβ”€β”€ strategy_macd.py            # MACD strategy
β”‚   β”œβ”€β”€ strategy_bollinger_bands.py # Bollinger Bands strategy
β”‚   β”œβ”€β”€ strategy_breakout.py        # Breakout strategy
β”‚   └── buy_and_hold_strategy.py    # Buy and hold benchmark
β”œβ”€β”€ main.py                         # Main application entry point
β”œβ”€β”€ ui.py                          # Streamlit user interface
β”œβ”€β”€ backtest_runner.py             # Backtesting engine
β”œβ”€β”€ optimizer_runner.py            # Optimization engine
β”œβ”€β”€ data_handler.py                # Data management system
β”œβ”€β”€ display_results.py             # Results visualization
β”œβ”€β”€ excel_exporter.py              # Excel export functionality
β”œβ”€β”€ monte_carlo.py                 # Monte Carlo simulations
β”œβ”€β”€ utils.py                       # Utility functions
β”œβ”€β”€ config.py                      # Configuration settings
β”œβ”€β”€ messages.yaml                  # UI messages and labels
β”œβ”€β”€ requirements.txt               # Python dependencies
β”œβ”€β”€ pyproject.toml                 # Project metadata
└── .gitignore                     # Git ignore rules

πŸ“Š Performance Metrics

BOST calculates comprehensive performance metrics including:

Return Metrics

  • Total Return - Overall strategy performance
  • Annualized Return - Yearly performance average
  • Excess Return - Performance vs benchmark

Risk Metrics

  • Sharpe Ratio - Risk-adjusted return measure
  • Sortino Ratio - Downside risk-adjusted return
  • Maximum Drawdown - Largest peak-to-trough decline
  • System Quality Number (SQN) - Trading system quality assessment

Trading Metrics

  • Win Rate - Percentage of profitable trades
  • Profit Factor - Ratio of gross profit to gross loss
  • Average Trade - Mean trade performance
  • Trade Distribution - Statistical analysis of trade outcomes

Key Dependencies

  • pandas - Data manipulation and analysis
  • numpy - Scientific computing and numerical operations
  • streamlit - Web application framework
  • backtesting.py - Core backtesting engine
  • matplotlib - Plotting and visualization

πŸ™ Acknowledgments


Made with ❀️ for the trading community by someone who is not a programmer

⭐ Star this repository if you find it useful! ⭐

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages