feat(discovery): add mean_reversion pipeline for RSI oversold scanner
The rsi_oversold scanner is a contrarian signal, not a momentum signal — it fires on short-term panic pullbacks within uptrends and expects a 3-7 day bounce. Keeping it in the momentum pipeline conflates two fundamentally different signal types and could cause the ranker to misprice it. Changes: - Add mean_reversion pipeline (priority 6, deep_dive_budget 5) to default_config.py - Move rsi_oversold scanner from pipeline="momentum" to pipeline="mean_reversion" in both default_config.py and rsi_oversold.py Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
5c56f8dc26
commit
20d3e9fbbe
|
|
@ -39,7 +39,7 @@ class RSIOversoldScanner(BaseScanner):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
name = "rsi_oversold"
|
name = "rsi_oversold"
|
||||||
pipeline = "momentum"
|
pipeline = "mean_reversion"
|
||||||
strategy = "mean_reversion_bounce"
|
strategy = "mean_reversion_bounce"
|
||||||
|
|
||||||
def __init__(self, config: Dict[str, Any]):
|
def __init__(self, config: Dict[str, Any]):
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,12 @@ DEFAULT_CONFIG = {
|
||||||
"deep_dive_budget": 5,
|
"deep_dive_budget": 5,
|
||||||
},
|
},
|
||||||
"events": {"enabled": True, "priority": 5, "deep_dive_budget": 3},
|
"events": {"enabled": True, "priority": 5, "deep_dive_budget": 3},
|
||||||
|
"mean_reversion": {
|
||||||
|
"enabled": True,
|
||||||
|
"priority": 6,
|
||||||
|
"ranker_prompt": "mean_reversion_ranker.txt",
|
||||||
|
"deep_dive_budget": 5,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
# ========================================
|
# ========================================
|
||||||
# OHLCV CACHE (populated nightly by prefetch workflow)
|
# OHLCV CACHE (populated nightly by prefetch workflow)
|
||||||
|
|
@ -273,7 +279,7 @@ DEFAULT_CONFIG = {
|
||||||
},
|
},
|
||||||
"rsi_oversold": {
|
"rsi_oversold": {
|
||||||
"enabled": True,
|
"enabled": True,
|
||||||
"pipeline": "momentum",
|
"pipeline": "mean_reversion",
|
||||||
"limit": 10,
|
"limit": 10,
|
||||||
"max_tickers": 0, # 0 = no cap (nightly cache makes full universe fast)
|
"max_tickers": 0, # 0 = no cap (nightly cache makes full universe fast)
|
||||||
"rsi_period": 2, # Connors RSI(2): most sensitive to short-term pullbacks
|
"rsi_period": 2, # Connors RSI(2): most sensitive to short-term pullbacks
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue