Disable TP tightening: tuned pre-spread, halves total R under real fills
A/B on M15 2025-03-30→2026-05-31 with $0.30 spread + gap-through fills (511 identical entries, only exits differ): factor 0.8 / min_rr 0.4: +36.1R (avg +0.071R, SELL +1.2R) factor 1.0 / min_rr 0.5: +66.8R (avg +0.131R, SELL +9.6R) Worse in both train and validation halves and both directions. The 20% tighter targets buy +1.8pt win rate but shrink every win while the fixed spread stays constant. The knob remains for re-tuning with costs included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -117,8 +117,12 @@ class SignalConfig:
|
|||||||
default_risk_pct: float = 1.0
|
default_risk_pct: float = 1.0
|
||||||
default_rr_ratio: float = 2.0
|
default_rr_ratio: float = 2.0
|
||||||
atr_sl_multiplier: float = 1.5
|
atr_sl_multiplier: float = 1.5
|
||||||
min_rr_ratio: float = 0.4
|
min_rr_ratio: float = 0.5
|
||||||
tp_tightening_factor: float = 0.8
|
# TP tightening (May 2026) was tuned on the pre-spread backtester.
|
||||||
|
# Re-tested 2026-07-08 with $0.30 spread + gap fills: 0.8 nearly
|
||||||
|
# halves total R (+36.1R vs +66.8R, worse in both train/val halves)
|
||||||
|
# — smaller wins make the fixed spread a larger share of every TP.
|
||||||
|
tp_tightening_factor: float = 1.0
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
+2
-2
@@ -167,8 +167,8 @@ def _():
|
|||||||
def _():
|
def _():
|
||||||
sc = SignalConfig()
|
sc = SignalConfig()
|
||||||
assert sc.min_confidence == 55.0
|
assert sc.min_confidence == 55.0
|
||||||
assert sc.min_rr_ratio == 0.4
|
assert sc.min_rr_ratio == 0.5
|
||||||
assert sc.tp_tightening_factor == 0.8
|
assert sc.tp_tightening_factor == 1.0
|
||||||
assert sc.atr_sl_multiplier == 1.5
|
assert sc.atr_sl_multiplier == 1.5
|
||||||
assert sc.default_rr_ratio == 2.0
|
assert sc.default_rr_ratio == 2.0
|
||||||
assert sc.cooldown_bars == 5
|
assert sc.cooldown_bars == 5
|
||||||
|
|||||||
Reference in New Issue
Block a user