From 8f94c60034e5b3866b6fd29f2d75653aa67c6f3d Mon Sep 17 00:00:00 2001 From: Sam Fredrickson Date: Fri, 15 Nov 2024 13:57:36 -0800 Subject: [PATCH] New backtest suite proposed by Claude. --- .gitignore | 1 + model.py | 39 ++++++++++++++++++++++++++------------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index e33609d..cdb47a7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.png +/output diff --git a/model.py b/model.py index d58481e..48dbb4e 100644 --- a/model.py +++ b/model.py @@ -991,26 +991,39 @@ if __name__ == "__main__": proc.start() procs.append(proc) + # Create multiple backtests for different periods # Create multiple backtests for different periods backtests = [ - # First until fourth halving - { - "start_date": "2012-11-28", - "backtest_date": "2024-04-19", - "project_days": 1460, - }, - # First until third halving - { - "start_date": "2012-11-28", - "backtest_date": "2020-05-11", - "project_days": 1460, - }, - # Second until fourth halving + # Base case: Second until fourth halving { "start_date": "2016-07-09", "backtest_date": "2024-04-19", "project_days": 1460, }, + # Post-Futures Window with two cycles of training + { + "start_date": "2013-01-01", # Includes pre-futures for cycle learning + "backtest_date": "2020-05-11", + "project_days": 1460, + }, + # Cross-Regime Test with two cycles of training + { + "start_date": "2014-01-01", + "backtest_date": "2021-12-31", + "project_days": 1460, + }, + # Recent Window focusing on post-2022 behavior + { + "start_date": "2015-01-01", # About two cycles before 2022 + "backtest_date": "2022-01-01", + "project_days": 1460, + }, + # Early Market Test with genesis block start + { + "start_date": "2010-07-18", # Early enough to capture first market formation + "backtest_date": "2015-12-31", + "project_days": 1460, + }, ] # Run all backtests