diff --git a/templates/xauusd-atr-breakout/README.md b/templates/xauusd-atr-breakout/README.md index 0a1c71a..ebb2108 100644 --- a/templates/xauusd-atr-breakout/README.md +++ b/templates/xauusd-atr-breakout/README.md @@ -3,3 +3,10 @@ Custom Python breakout baseline for XAUUSD. This project avoids ML on purpose. It is useful as a transparent baseline to compare against heavier gold models like XGBoost or LightGBM. + +The default gate is intentionally responsive so PPE produces more events than a strict long-range breakout filter: + +- `breakout_window`: `12` +- `atr_mult`: `0.05` + +If it overtrades, raise `atr_mult` first. If it is still too quiet, shorten `breakout_window`. diff --git a/templates/xauusd-atr-breakout/quant.config.json b/templates/xauusd-atr-breakout/quant.config.json index 23dc25a..f612ef0 100644 --- a/templates/xauusd-atr-breakout/quant.config.json +++ b/templates/xauusd-atr-breakout/quant.config.json @@ -7,8 +7,8 @@ "parameters": { "lookback": 64, "atr_window": 14, - "breakout_window": 24, - "atr_mult": 0.25 + "breakout_window": 12, + "atr_mult": 0.05 }, "training_requirements": [ "numpy", diff --git a/templates/xauusd-atr-breakout/strategy.py b/templates/xauusd-atr-breakout/strategy.py index 6a332fa..7d322b9 100644 --- a/templates/xauusd-atr-breakout/strategy.py +++ b/templates/xauusd-atr-breakout/strategy.py @@ -24,8 +24,8 @@ def predict(model, market_data, config): params = {**model.get("params", {}), **config.get("parameters", {})} lookback = int(params.get("lookback", 64)) atr_window = int(params.get("atr_window", 14)) - breakout_window = int(params.get("breakout_window", 24)) - atr_mult = float(params.get("atr_mult", 0.25)) + breakout_window = int(params.get("breakout_window", 12)) + atr_mult = float(params.get("atr_mult", 0.05)) candles = market_data.get("candles", []) if len(candles) < lookback: return {"signal": "HOLD", "confidence": 0.0, "metadata": {"reason": "not_enough_candles"}}