From 61e3270221a05e61b810f29f43f793a6ce616a96 Mon Sep 17 00:00:00 2001 From: Stanley Isaac Date: Tue, 7 Apr 2026 21:29:29 +0000 Subject: [PATCH] tune xauusd template for 1m chart --- templates/xauusd-atr-breakout/README.md | 7 ++++--- templates/xauusd-atr-breakout/quant.config.json | 6 +++--- templates/xauusd-atr-breakout/strategy.py | 8 ++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/templates/xauusd-atr-breakout/README.md b/templates/xauusd-atr-breakout/README.md index e82dfce..4865bfc 100644 --- a/templates/xauusd-atr-breakout/README.md +++ b/templates/xauusd-atr-breakout/README.md @@ -4,7 +4,7 @@ Custom Python precision-breakout baseline for XAUUSD. This project avoids ML on purpose. It is useful as a transparent benchmark to compare against heavier gold models like XGBoost or LightGBM. -The default gate is intentionally selective for small accounts. It prioritizes avoiding churn over forcing trades. The continuation paths are available as parameters, but they are disabled by default because one-day lab tests showed the stricter breakout profile had cleaner drawdown. +The default gate is tuned for the `1m` XAUUSD chart and small accounts. It prioritizes controlled churn over forcing oversized trades. The continuation paths are available as parameters, but they are disabled by default because one-day lab tests showed the stricter breakout profile had cleaner drawdown. It includes: @@ -17,8 +17,9 @@ It includes: Current defaults: - `lookback`: `96` -- `breakout_window`: `24` -- `atr_mult`: `0.03` +- `timeframe`: `1m` +- `breakout_window`: `45` +- `atr_mult`: `0.02` - `near_breakout_atr`: `0.18` - `pullback_atr`: `0.35` - `min_momentum_atr`: `0` diff --git a/templates/xauusd-atr-breakout/quant.config.json b/templates/xauusd-atr-breakout/quant.config.json index 708d4bf..1bc718f 100644 --- a/templates/xauusd-atr-breakout/quant.config.json +++ b/templates/xauusd-atr-breakout/quant.config.json @@ -1,14 +1,14 @@ { "pair": "XAUUSD", - "timeframe": "15m", + "timeframe": "1m", "model_family": "custom Python", "runtime_target": "modal", "artifact_format": "python_bundle", "parameters": { "lookback": 96, "atr_window": 14, - "breakout_window": 24, - "atr_mult": 0.03, + "breakout_window": 45, + "atr_mult": 0.02, "near_breakout_atr": 0.18, "pullback_atr": 0.35, "min_momentum_atr": 0, diff --git a/templates/xauusd-atr-breakout/strategy.py b/templates/xauusd-atr-breakout/strategy.py index f7afd1c..2977bb7 100644 --- a/templates/xauusd-atr-breakout/strategy.py +++ b/templates/xauusd-atr-breakout/strategy.py @@ -29,8 +29,8 @@ def train(data, config): "params": { "lookback": int(params.get("lookback", 96)), "atr_window": int(params.get("atr_window", 14)), - "breakout_window": int(params.get("breakout_window", 24)), - "atr_mult": float(params.get("atr_mult", 0.03)), + "breakout_window": int(params.get("breakout_window", 45)), + "atr_mult": float(params.get("atr_mult", 0.02)), "near_breakout_atr": float(params.get("near_breakout_atr", 0.18)), "pullback_atr": float(params.get("pullback_atr", 0.35)), "min_momentum_atr": float(params.get("min_momentum_atr", 0.0)), @@ -47,8 +47,8 @@ def predict(model, market_data, config): params = {**model.get("params", {}), **config.get("parameters", {})} lookback = int(params.get("lookback", 96)) atr_window = int(params.get("atr_window", 14)) - breakout_window = int(params.get("breakout_window", 24)) - atr_mult = float(params.get("atr_mult", 0.03)) + breakout_window = int(params.get("breakout_window", 45)) + atr_mult = float(params.get("atr_mult", 0.02)) near_breakout_atr = float(params.get("near_breakout_atr", 0.18)) pullback_atr = float(params.get("pullback_atr", 0.35)) min_momentum_atr = float(params.get("min_momentum_atr", 0.0))