Tune EUR/USD defaults: tighter SL, higher TP, A-grade filter, unblock ranging
Config changes from EUR/USD optimization rounds: - sl_atr_multiplier 1.5→0.5, tp_atr_multiplier 1.0→1.5, min_rr 0.5→1.0 - Unblock ranging regime, restrict to A+/A quality on M15 - Lower entry thresholds: score 38→30, confidence 60→50 - Add M5-specific regime weights and config overrides in eurusd.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -169,22 +169,22 @@ class EurUsdStrategyConfig:
|
|||||||
weekend_filter: bool = True
|
weekend_filter: bool = True
|
||||||
allowed_weekdays: List[int] = field(default_factory=lambda: [0, 1, 2, 3, 4])
|
allowed_weekdays: List[int] = field(default_factory=lambda: [0, 1, 2, 3, 4])
|
||||||
min_atr_threshold: float = 0.0003
|
min_atr_threshold: float = 0.0003
|
||||||
sl_atr_multiplier: float = 1.5
|
sl_atr_multiplier: float = 0.5
|
||||||
tp_atr_multiplier: float = 1.0
|
tp_atr_multiplier: float = 1.5
|
||||||
|
|
||||||
sl_atr_floor: float = 1.2
|
sl_atr_floor: float = 1.2
|
||||||
min_rr_ratio: float = 0.5
|
min_rr_ratio: float = 1.0
|
||||||
mature_move_threshold: float = 35.0
|
mature_move_threshold: float = 35.0
|
||||||
tp_quality_scale: Dict[str, float] = field(default_factory=lambda: {
|
tp_quality_scale: Dict[str, float] = field(default_factory=lambda: {
|
||||||
"A+": 1.0, "A": 1.0, "B": 1.0, "C": 1.0,
|
"A+": 1.0, "A": 1.0, "B": 1.0, "C": 1.0,
|
||||||
})
|
})
|
||||||
blocked_regimes: List[str] = field(default_factory=lambda: ["ranging"])
|
blocked_regimes: List[str] = field(default_factory=list)
|
||||||
min_quality_grades: List[str] = field(default_factory=lambda: ["A+", "A", "B"])
|
min_quality_grades: List[str] = field(default_factory=lambda: ["A+", "A"])
|
||||||
max_exhaustion_tags: int = 99
|
max_exhaustion_tags: int = 99
|
||||||
block_near_ema200: bool = False
|
block_near_ema200: bool = False
|
||||||
session_hours: List[int] = field(default_factory=list)
|
session_hours: List[int] = field(default_factory=list)
|
||||||
min_entry_score: float = 38.0
|
min_entry_score: float = 30.0
|
||||||
min_entry_confidence: float = 60.0
|
min_entry_confidence: float = 50.0
|
||||||
block_rsi_extended: bool = True
|
block_rsi_extended: bool = True
|
||||||
be_trigger_r: float = 0.3
|
be_trigger_r: float = 0.3
|
||||||
be_buffer_r: float = 0.05
|
be_buffer_r: float = 0.05
|
||||||
|
|||||||
@@ -32,6 +32,28 @@ EUR_REGIME_WEIGHTS = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_M5_TRENDING = {
|
||||||
|
"ema_trend": 1.5, "rsi": 1.0, "macd": 2.5,
|
||||||
|
"bollinger": 0.5, "keltner": 2.0, "roc": 2.0,
|
||||||
|
"candlestick": 0.3, "divergence": 1.0, "adx": 1.0,
|
||||||
|
}
|
||||||
|
|
||||||
|
M5_REGIME_WEIGHTS = {
|
||||||
|
"trending_up": _M5_TRENDING,
|
||||||
|
"trending_down": _M5_TRENDING,
|
||||||
|
"trending": _M5_TRENDING,
|
||||||
|
"ranging": {
|
||||||
|
"ema_trend": 0.3, "rsi": 1.5, "macd": 1.5,
|
||||||
|
"bollinger": 1.5, "keltner": 2.0, "roc": 1.0,
|
||||||
|
"candlestick": 0.3, "divergence": 1.5, "adx": 0.5,
|
||||||
|
},
|
||||||
|
"transitioning": {
|
||||||
|
"ema_trend": 1.0, "rsi": 1.0, "macd": 2.5,
|
||||||
|
"bollinger": 0.5, "keltner": 2.5, "roc": 2.0,
|
||||||
|
"candlestick": 0.3, "divergence": 1.0, "adx": 1.0,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def make_config(
|
def make_config(
|
||||||
primary_tf: Timeframe,
|
primary_tf: Timeframe,
|
||||||
@@ -53,6 +75,14 @@ def make_config(
|
|||||||
config.backtest.blocked_hours_utc = [22, 23, 0, 1, 2, 3]
|
config.backtest.blocked_hours_utc = [22, 23, 0, 1, 2, 3]
|
||||||
config.backtest.allowed_weekdays = [0, 1, 2, 3, 4]
|
config.backtest.allowed_weekdays = [0, 1, 2, 3, 4]
|
||||||
|
|
||||||
|
if primary_tf == Timeframe.M5:
|
||||||
|
config.technical.regime_weights_override = M5_REGIME_WEIGHTS
|
||||||
|
config.eur_strategy.sl_atr_floor = 0.8
|
||||||
|
config.eur_strategy.sl_atr_multiplier = 0.3
|
||||||
|
config.eur_strategy.min_quality_grades = ["A+", "A", "B"]
|
||||||
|
config.eur_strategy.min_entry_score = 28.0
|
||||||
|
config.eur_strategy.min_entry_confidence = 50.0
|
||||||
|
else:
|
||||||
config.technical.regime_weights_override = EUR_REGIME_WEIGHTS
|
config.technical.regime_weights_override = EUR_REGIME_WEIGHTS
|
||||||
|
|
||||||
return config
|
return config
|
||||||
|
|||||||
Reference in New Issue
Block a user