2024-11-15 02:09:11 -08:00
# Bitcoin Price Model Description
## Overview
2024-11-15 18:07:33 -08:00
This Bitcoin price prediction model uses a combination of log returns, cycle awareness, and Monte Carlo simulation to generate price projections with confidence intervals. The model was developed through several iterations, with each refinement aimed at improving accuracy and reliability.
2024-11-15 02:09:11 -08:00
## Core Components
### 1. Trend Analysis
- Uses log returns of Bitcoin prices to better handle exponential growth patterns
- Groups returns by position within the halving cycle (0-1460 days)
- Applies simple moving average smoothing to reduce noise while preserving underlying patterns
- Position within cycle is calculated linearly between known halving dates
2024-11-15 15:16:31 -08:00
### 2. Market Era Adjustments
Uses distinct eras with specific characteristics:
- Early (2013-2017): Higher volatility, conservative trends, moderate trend following
- Transition (2017-2020): Slightly elevated uncertainty during futures market introduction
- Mature (2020+): Reduced volatility, balanced trends, lighter trend following
2024-11-15 22:48:03 -08:00
2024-11-15 15:16:31 -08:00
Each era has specific scaling factors for volatility, trend expectations, and trend following behavior
### 3. Volatility Estimation
2024-11-15 02:09:11 -08:00
Uses a multi-timeframe approach:
- Short window (30 days)
- Medium window (90 days)
- Long window (180 days)
- Combines these using weighted exponential moving averages
2024-11-15 15:16:31 -08:00
- Applies era-specific scaling factors
2024-11-15 02:09:11 -08:00
2024-11-15 15:16:31 -08:00
### 4. Price Projection
2024-11-15 02:09:11 -08:00
- Uses Monte Carlo simulation with 1000 paths
2024-11-15 15:16:31 -08:00
- Incorporates era-aware adjustments to volatility and trends
2024-11-15 02:09:11 -08:00
- Generates both point estimates and confidence intervals
- Projects forward using cycle-aware return expectations
## Key Features
### Log Returns
Instead of working directly with prices or simple returns, the model uses log returns which:
- Better handle Bitcoin's exponential price growth
- Provide more stable statistical properties
- Allow for simpler cumulative return calculations
### Cycle Awareness
- Recognizes Bitcoin's ~4 year (1460 day) halving cycle
- Maps historical returns to cycle positions
- Allows the model to capture recurring patterns around halving events
### Enhanced Monte Carlo
- Base simulation using normal distribution
2024-11-15 15:16:31 -08:00
- Includes era-specific adjustments for volatility and trends
2024-11-15 02:09:11 -08:00
- Generates both median projections and confidence intervals
2024-11-15 15:16:31 -08:00
- Well-calibrated uncertainty estimates for post-2013 data
2024-11-15 02:09:11 -08:00
## Performance Metrics
When trained on 2016-2024 (two full cycles):
2024-11-15 22:48:03 -08:00
- MAPE: 11.7%
- RMSE: ~$9,011
- Max Error: $18,786
- 95% CI Coverage: 99.5%
- 68% CI Coverage: 69.0%
2024-11-15 15:16:31 -08:00
## Model Limitations
- Not suitable for pre-2013 market data
- Assumes future cycles will resemble post-2013 patterns
- Uses simple linear interpolation between halving dates
- May not capture extreme market events well
2024-11-15 22:48:03 -08:00
- Shows increased error in transition periods (2015-2018)
2024-11-15 02:09:11 -08:00
## Development History
1. Started with direct cycle analysis of returns
2024-11-15 15:16:31 -08:00
2. Added log-based analysis for better handling of exponential growth
2024-11-15 18:07:33 -08:00
3. Refined volatility calculation using multiple timeframes
4. Calibrated confidence intervals through era-aware scaling
2024-11-15 22:48:03 -08:00
5. Attempted model refinements for transition periods
2024-11-16 03:38:24 -08:00
### Part 1: Failed Paths
2024-11-15 22:48:03 -08:00
#### Attempt 1: Era Subdivision
- Split transition period into multiple sub-periods
- Added skew adjustments for different market phases
- Results: Made the model more complex without clear benefits
- Outcome: Abandoned in favor of simpler approach
#### Attempt 2: Dynamic Regime Detection
- Implemented real-time market regime detection
- Used volatility ratios and trend strength metrics
- Results: Made the model too reactive to short-term changes
- Outcome: Less stable than original era-based approach
#### Attempt 3: Weighted Rolling Regression
- Used weighted regression for trend estimation
- Combined cycle position and time-based weights
- Results: Similar performance to original model but more complex
- Key Findings:
- Recent Period: Slightly worse (MAPE 12.4% vs 11.7%)
- Mid Period: Marginally better coverage but similar overall
- Early Period: Similar coverage but worse accuracy
- Outcome: Returned to original implementation due to comparable performance with less complexity
2024-11-15 02:09:11 -08:00
2024-11-16 03:38:24 -08:00
### Part 2: Backtest Refinements
#### Backtest Analysis Insights
After running comprehensive backtests across multiple periods from 2013-2024, we identified:
- Best performance during "normal" market conditions with MAPE ~30-35%
- Significant degradation during stress periods (COVID crash, 2021 peak) with MAPE reaching 57%
- Inconsistent confidence interval coverage, particularly for 68% CI (ranging from 20% to 91%)
- Largest errors ($45-52K) concentrated around major market events
#### Methodology Changes
1. Refined Backtest Framework
- Implemented more granular 6-month step testing periods
2024-11-16 14:07:52 -08:00
- Standardized minimum training period (2 years) and validation window (8 years)
2024-11-16 03:38:24 -08:00
- Separated results into "normal" and "stress" periods for clearer performance assessment
2. Performance Evaluation Approach
- Recognized that optimizing for stress periods could compromise normal period performance
- Decided to focus optimization efforts on normal market conditions while accepting wider margins of error during stress periods
- Enhanced results reporting to separate normal and stress period metrics
#### Key Learnings
1. Model focus should align with intended use:
- As a long-term cycle-aware model, primary optimization should target normal market conditions
- Stress period performance is informative but secondary
- Wider confidence intervals during transitions may be more appropriate than trying to predict extreme moves
2. Backtest methodology matters:
- Previous ad-hoc testing may have over-emphasized stress period performance
- Systematic testing with consistent windows provides clearer picture of baseline performance
- Special period testing remains valuable for understanding limitations
#### Future Considerations
1. Conservative improvements to explore:
- Fine-tune uncertainty scaling for more consistent CI coverage during normal periods
- Consider dynamic uncertainty scaling based on market conditions
- Potential for regime-aware parameter adjustments
2. Areas needing further investigation:
- Optimal balance between normal and stress period performance
- Impact of training window length on model stability
- Methods for early detection of transition into stress periods
2024-11-15 02:09:11 -08:00
## Current Implementation
2024-11-15 15:16:31 -08:00
The model uses four main functions:
2024-11-15 18:07:33 -08:00
1. `analyze_trends()` : Calculates cycle-position-specific log returns
2. `calculate_volatility()` : Computes era-adjusted volatility estimates
3. `project_prices()` : Generates price projections using Monte Carlo simulation
2024-11-15 22:48:03 -08:00
4. `get_projection_adjustments()` : Handles uncertainty scaling over time
2024-11-15 02:09:11 -08:00
## Strengths
2024-11-15 15:16:31 -08:00
- Well-calibrated uncertainty estimates for post-2013 data
2024-11-15 02:09:11 -08:00
- Handles exponential price growth naturally
- Balances complexity with interpretability
2024-11-15 15:16:31 -08:00
- Adapts to different market eras
2024-11-15 22:48:03 -08:00
- Maintains consistent performance across multiple validation periods
## Key Learnings from Recent Attempts
1. Added complexity doesn't necessarily improve performance:
- Multiple sub-periods led to over-fitting
- Dynamic regime detection made the model too reactive
- Weighted regression provided similar results with more complexity
2. Transition period challenges:
- 2015-2018 remains consistently challenging across approaches
- Sharp regime changes are difficult to model without compromising overall stability
- Simple era boundaries may be as effective as more complex transitions
3. Model stability considerations:
- Simpler approaches tend to be more robust
- Era-based adjustments provide good balance of adaptability and stability
- Over-optimization for specific periods can harm general performance
## Future Improvement Possibilities
1. Conservative Approaches:
- Fine-tune existing era boundaries
- Adjust scaling factors within current framework
- Optimize window sizes for different periods
2. Alternative Approaches to Consider:
- Hybrid models combining multiple timeframes
- Conditional volatility models
- Cycle strength indicators
3. Areas Needing Further Research:
- Better handling of regime transitions
- More robust volatility estimation during market structure changes
- Improved cycle position effects near halving events
2024-11-15 02:09:11 -08:00
## Usage Notes
The model works best when:
2024-11-15 15:16:31 -08:00
- Using post-2013 data
2024-11-15 02:09:11 -08:00
- Trained on at least one full cycle of data
- Used for medium-term projections (months to years)
- Interpreted probabilistically rather than as point forecasts
2024-11-15 22:48:03 -08:00
The confidence intervals should be understood as ranges of likely outcomes based on historical patterns, not hard bounds on future prices. When using the model, particular attention should be paid to the training period selection, as this can significantly impact projection quality.
Special consideration should be given to projections spanning major market structure changes or halving events, as these periods have shown higher uncertainty in backtests.