2024-11-15 02:09:11 -08:00
# Bitcoin Price Model Description
## Overview
2024-11-15 15:16:31 -08:00
This Bitcoin price prediction model uses a combination of log returns, cycle awareness, market maturity eras, 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
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
2024-11-15 15:16:31 -08:00
### Market Maturity
- Recognizes distinct market eras with different characteristics
- Adjusts projections based on market maturity level
- Accounts for major market structure changes (e.g., futures introduction)
- Provides era-specific calibration of uncertainty estimates
2024-11-15 02:09:11 -08:00
### 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 15:16:31 -08:00
- MAPE: 16.8%
- RMSE: ~$13,940
- Max Error: $32,536
- 95% CI Coverage: 100%
- 68% CI Coverage: 79.5%
## 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 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
3. Incorporated market maturity through era-specific adjustments
4. Refined volatility calculation using multiple timeframes
5. Calibrated confidence intervals through era-aware scaling
2024-11-15 02:09:11 -08:00
## Current Implementation
2024-11-15 15:16:31 -08:00
The model uses four main functions:
1. `calculate_market_maturity_score()` : Evaluates market maturity indicators
2. `analyze_trends()` : Calculates cycle-position-specific log returns
3. `calculate_volatility()` : Computes era-adjusted volatility estimates
4. `project_prices()` : Generates price projections using Monte Carlo simulation
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
- Captures both cycle effects and market maturity
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 02:09:11 -08:00
## Possible Future Improvements
- Non-linear cycle progression
2024-11-15 15:16:31 -08:00
- Regime detection for market phases
2024-11-15 02:09:11 -08:00
- External factor incorporation
2024-11-15 15:16:31 -08:00
- Dynamic adjustment of parameters based on market conditions
- Improved handling of market transitions
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
The confidence intervals should be understood as ranges of likely outcomes based on historical patterns, not hard bounds on future prices.