A comprehensive, high-performance trading strategy backtesting framework built in Go, designed for quantitative traders and researchers.
- High-Performance Engine: Optimized for large datasets and complex strategies
- Flexible Strategy Interface: Easy-to-implement strategy patterns
- Realistic Execution Simulation: Commission, slippage, and market impact modeling
- Multi-Asset Support: Test strategies across different instruments
- Event-Driven Architecture: Accurate order-of-operations simulation
- Performance Metrics: 50+ performance and risk metrics
- Risk Analysis: VaR, CVaR, drawdown analysis, and stress testing
- Correlation Analysis: Beta calculation and benchmark comparison
- Advanced Risk Metrics: Skewness, kurtosis, tail risk measures
- Rolling Statistics: Time-varying performance analysis
- Multiple Algorithms: Grid search, random search, genetic algorithms
- Overfitting Prevention: Cross-validation, bootstrap, Monte Carlo validation
- White Reality Check: Statistical significance testing
- Robust Parameter Selection: Sensitivity analysis and stability scoring
- Parallel Processing: Multi-threaded optimization for speed
- Multi-Format Output: JSON, CSV, HTML reports
- Interactive Charts: Web-based dashboard with Plotly.js
- Comprehensive Analysis: Detailed performance breakdowns
- Export Capabilities: Professional-grade report generation
- Customizable Templates: Flexible report formatting
- Command-Line Interface: Full-featured CLI tool
- Configuration Management: JSON-based configuration system
- Extensible Architecture: Plugin-friendly design
- Comprehensive Testing: Extensive test coverage and validation
strategy-backtesting-framework/
βββ cmd/backtest/ # Command-line interface
βββ pkg/types/ # Core data structures
β βββ market_data.go # Price and market data
β βββ signal.go # Trading signals
β βββ position.go # Position management
β βββ portfolio.go # Portfolio state
βββ internal/
β βββ backtest/ # Backtesting engine
β βββ strategy/ # Strategy implementations
β βββ data/ # Data loading and management
β βββ metrics/ # Performance calculations
β βββ optimization/ # Parameter optimization
β βββ reports/ # Report generation
β βββ charts/ # Chart generation
βββ config.template.json # Configuration template
βββ Makefile # Build automation
βββ README.md # This file
# Clone the repository
git clone https://github.com/yourusername/strategy-backtesting-framework.git
cd strategy-backtesting-framework
# Build the application
make build
# Or install directly
make install- Create configuration file:
# This creates a default config.json
./bin/backtest -help- Prepare your data:
# Create sample data
make create-example-data- Run backtesting:
# Basic backtest
./bin/backtest -config config.json -verbose
# With custom parameters
./bin/backtest -strategy moving_average -initial-cash 100000 -format html,json- Parameter optimization:
# Run optimization
./bin/backtest -mode optimize -opt-method genetic -max-iter 500{
"strategy": {
"name": "moving_average",
"type": "trend_following",
"parameters": {
"short_window": 10,
"long_window": 30
}
},
"backtest": {
"initial_cash": 100000.0,
"start_date": "2023-01-01",
"end_date": "2023-12-31",
"commission": 0.001,
"slippage": 0.0005
},
"data": {
"source": "csv",
"path": "data/",
"symbols": ["AAPL", "MSFT"],
"format": "ohlcv"
},
"output": {
"directory": "reports",
"formats": ["json", "html", "csv"],
"detailed": true
}
}π BACKTEST SUMMARY
============================================================
β±οΈ Execution Time: 2.34s
π° Initial Capital: $100,000.00
π° Final Value: $125,430.50
π Total Return: 25.43%
π Annualized Return: 22.15%
π Sharpe Ratio: 1.85
π Max Drawdown: -8.72%
π― Total Trades: 147
β
Win Rate: 58.50%
============================================================
The framework generates interactive HTML dashboards with:
- π Equity curve visualization
- π Drawdown analysis
- π Returns distribution
- π― Trade analysis
- π Risk metrics summary
# Basic backtesting
backtest -config my_strategy.json
# Parameter optimization
backtest -mode optimize -opt-method genetic -max-iter 500
# Custom date range and output
backtest -start-date 2023-01-01 -end-date 2023-12-31 -output results/
# Generate only HTML report
backtest -format html -verbose
# Validate strategy configuration
backtest -mode validate -config my_strategy.json
# Complete demo
make demo| Option | Description | Default |
|---|---|---|
-config |
Configuration file path | config.json |
-mode |
Operation mode (backtest, optimize, report, validate) | backtest |
-strategy |
Strategy name override | - |
-data |
Market data path override | - |
-initial-cash |
Initial cash amount | - |
-start-date |
Start date (YYYY-MM-DD) | - |
-end-date |
End date (YYYY-MM-DD) | - |
-output |
Output directory | output |
-format |
Report formats (json,csv,html) | json,html |
-optimize |
Enable parameter optimization | false |
-opt-method |
Optimization method (grid,random,genetic) | grid |
-max-iter |
Maximum optimization iterations | 1000 |
-verbose |
Enable verbose output | false |
-debug |
Enable debug logging | false |
- Type: Trend Following
- Parameters: Short window, long window
- Signals: Buy on golden cross, sell on death cross
- Risk Management: Stop-loss and take-profit levels
- Total Return, Annualized Return
- Compound Annual Growth Rate (CAGR)
- Maximum/Minimum Daily Returns
- Positive/Negative Day Ratios
- Volatility (Standard Deviation)
- Maximum Drawdown, Average Drawdown
- Value at Risk (VaR) at 95% and 99%
- Conditional Value at Risk (CVaR)
- Skewness, Kurtosis, Tail Ratio
- Sharpe Ratio, Sortino Ratio
- Calmar Ratio, Treynor Ratio
- Information Ratio, Omega Ratio
- Profit Factor, Recovery Factor
- Modified Sharpe (accounting for skewness/kurtosis)
- Alpha, Beta, R-squared
- Tracking Error, Information Ratio
- Upside/Downside Capture Ratios
- Correlation Analysis
- Grid Search: Exhaustive parameter space exploration
- Random Search: Efficient random sampling
- Genetic Algorithm: Evolutionary optimization with adaptive parameters
- Cross-Validation: Time-series aware validation
- Bootstrap Validation: Robust statistical testing
- Monte Carlo Validation: Scenario-based testing
- White Reality Check: Statistical significance testing
- Parameter Sensitivity Analysis: Robustness assessment
- In-sample/Out-of-sample testing
- Walk-forward analysis
- Rolling window validation
- Stability scoring and consistency checks
# Install dependencies
make deps
# Run tests
make test
# Check code quality
make check
# Build for all platforms
make build-all
# Generate documentation
make docs
# Run development mode
make devπ Project Components:
βββ π― Core Engine (pkg/types/, internal/backtest/)
βββ π Data Management (internal/data/)
βββ ποΈ Strategy Framework (internal/strategy/)
βββ π Performance Analytics (internal/metrics/)
βββ π Optimization Engine (internal/optimization/)
βββ π Reporting System (internal/reports/)
βββ π Chart Generation (internal/charts/)
βββ π₯οΈ CLI Interface (cmd/backtest/)
- Modularity: Clean separation of concerns
- Extensibility: Easy to add new strategies and metrics
- Performance: Optimized for large datasets
- Reliability: Comprehensive error handling and validation
- Usability: Intuitive APIs and clear documentation
# Generate and serve documentation
make serve-docs
# Visit http://localhost:6060We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
- Follow standard Go conventions
- Use
gofmtfor formatting - Add comprehensive tests
- Document public APIs
- Follow existing patterns
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by professional quantitative trading systems
- Built with modern Go best practices
- Uses industry-standard financial calculations
- Designed for both research and production use
- π Documentation
- π Issue Tracker
- π¬ Discussions
- π§ Email Support
Current Version: 1.0.0 (Phase 5.2 Complete)
- β Core backtesting engine with realistic execution simulation
- β Comprehensive performance and risk metrics (50+ indicators)
- β Parameter optimization with multiple algorithms
- β Overfitting prevention and validation techniques
- β Professional reporting system (JSON, CSV, HTML)
- β Interactive chart generation and dashboards
- β Full-featured command-line interface
- β Moving average crossover strategy implementation
- Additional strategy templates (mean reversion, momentum)
- Comprehensive testing suite and examples
- Enhanced documentation and tutorials
- Performance optimization and benchmarking
See projectplan.md for detailed implementation roadmap.
β Star this repository if you find it useful! β
Made with β€οΈ for the quantitative trading community