diff --git a/Crypto Trading Bot Case Study.pdf b/Crypto Trading Bot Case Study.pdf index 08a38ec..9ba5f7d 100644 Binary files a/Crypto Trading Bot Case Study.pdf and b/Crypto Trading Bot Case Study.pdf differ diff --git a/docs/OPERATIONS.md b/docs/OPERATIONS.md index 24cbe00..0d01ed7 100644 --- a/docs/OPERATIONS.md +++ b/docs/OPERATIONS.md @@ -113,7 +113,7 @@ docker compose ps # bot should become "healthy" withi The image contains the code. Only `user_data/` is mounted from the host: config, strategies, data, databases, logs and the audit trail. To pin a -release, set `RIDGELINE_VERSION=0.1.0` (in `.env` or the shell). The default +release, set `RIDGELINE_VERSION=0.1.1` (in `.env` or the shell). The default is `latest`. Data and the strategy's pair list (see the README's Data section) can be diff --git a/docs/releases/v0.1.1.md b/docs/releases/v0.1.1.md new file mode 100644 index 0000000..116dedf --- /dev/null +++ b/docs/releases/v0.1.1.md @@ -0,0 +1,29 @@ +A research fix and an overfitting check. The app behaves the same as 0.1.0; upgrading keeps your `user_data`. + +**Paper money only.** The panel runs Freqtrade in dry-run mode and cannot start a live bot. No strategy is eligible for real money yet. + +## Install + +- **Windows:** download `Ridgeline-Setup-0.1.1.exe` below and run it. + - Installing over 0.1.0 keeps your private config, paper sessions, data and audit trail. + - The installer isn't code-signed, so SmartScreen may warn: choose *More info → Run anyway*. +- **Docker:** `RIDGELINE_VERSION=0.1.1 docker compose pull && docker compose up -d`. +- **From source:** `pip install -r requirements.txt`. + +## What changed + +- **Fixed: tuning leaked hindsight.** `research.py hyperopt` was tuning on `config.json`'s live pair list (today's top coins). It now tunes on the point-in-time pairs at the start of the in-sample period, like every backtest does. +- **New candidate, and a negative result.** `TrendRider4hPIT` is TrendRider4h re-tuned that way (300 trials, in-sample only). It overfits: + + | | In-sample | Out-of-sample | Profit factor | Walk-forward | Gates | + |---|---|---|---|---|---| + | TrendRider4h | +5.6% | **+17.3%** | **1.43** | **64%** | **8 / 9** | + | TrendRider4hPIT | +45.6% | +13.8% | 1.33 | 50% | 7 / 9 | + + The in-sample gain didn't carry over to new data, so TrendRider4h keeps its original parameters and stays the lead candidate. +- **Updated research:** + - Gates re-run for all five strategies at 1,000 and 65 USDT (≈100 AUD). + - `RESEARCH.md` updated. + - The case study (attached) has a new section 5.7 and covers five strategies. + +Backtests are not a promise of future results. This is software, not financial advice. diff --git a/pyproject.toml b/pyproject.toml index 3fd3010..e68dd0c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ridgeline" -version = "0.1.0" +version = "0.1.1" description = "Freqtrade crypto bot with paper trading, point-in-time research gates, risk controls and reporting" requires-python = ">=3.11" diff --git a/ridgeline/__init__.py b/ridgeline/__init__.py index e62c9b8..05f87eb 100644 --- a/ridgeline/__init__.py +++ b/ridgeline/__init__.py @@ -3,7 +3,7 @@ from pathlib import Path # Keep in step with pyproject.toml; release tags are v. -__version__ = "0.1.0" +__version__ = "0.1.1" ROOT = Path(__file__).resolve().parent.parent USERDIR = ROOT / "user_data"