A Python-based trading strategy that uses wavelet decomposition to analyze price trends and generate trading signals.
This project implements a trading strategy that:
- Uses wavelet analysis to decompose price data into trend and cycle components
- Backtests the strategy across multiple 30-day intervals
- Generates performance metrics and visualizations
- Performs Monte Carlo simulations using bootstrap resampling
- wavelet.py - Main strategy implementation and backtesting code
- interval_performance_metrics.csv - Detailed performance metrics for each interval
- interval_returns_plot.png - Visualization of returns across intervals
- train_vs_test_returns.png - Performance comparison between training and test periods
- monte_carlo_simulations_bootstrap.png - Monte Carlo simulation results
backtesting
pandas
numpy
pywt
matplotlib
arch
empyrical
scipy
-
Place your data files in the
data/gold
directory as CSV files with columns:- Volume
- Date
- Open
- High
- Low
- Close
-
Run the strategy:
python wavelet.py
- Wavelet decomposition of price data
- Rolling 30-day interval backtesting
- Performance metrics calculation including:
- Returns
- Sharpe ratio
- Maximum drawdown
- Win rate
- SQN
- Profit factor
- Monte Carlo simulation with bootstrap resampling
- Train/test period analysis
- Risk metrics including VaR and CVaR
The script generates:
- Trading logs and performance metrics in CSV format
- Performance visualization plots
- Risk analysis and Monte Carlo simulation results
- Train