diff --git a/backend/app/core/config.py b/backend/app/core/config.py index f6575ad..6a5cee8 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -218,8 +218,8 @@ class Settings(BaseSettings): DAY_TRADE_ORB_BREAKOUT_VOL_MULT: float = 1.5 # ORB 거래량 배수 (vs 분당평균) DAY_TRADE_VWAP_PRICE_LOWER: float = 0.99 # VWAP -1% 하단 경계 DAY_TRADE_VWAP_PRICE_UPPER: float = 1.005 # VWAP +0.5% 상단 경계 - DAY_TRADE_VWAP_RSI_THRESHOLD: float = 40.0 # VWAP RSI <= 40 - DAY_TRADE_RSI_BB_RSI_THRESHOLD: float = 30.0 # RSI_BB RSI <= 30 + DAY_TRADE_VWAP_RSI_THRESHOLD: float = 45.0 # VWAP RSI <= 45 (기존 40 → 45: 5분봉에서 40 이하는 드뭄) + DAY_TRADE_RSI_BB_RSI_THRESHOLD: float = 35.0 # RSI_BB RSI <= 35 (기존 30 → 35: 5분봉에서 30 이하는 극히 드뭄) DAY_TRADE_RSI_BB_BB_LOWER_BUFFER: float = 1.01 # RSI_BB BB 하단 +1% 버퍼 DAY_TRADE_VOLUME_MULTIPLIER: float = 1.3 # 거래량 배수 (1.3배 이상) DAY_TRADE_ORB_ATR_FLOOR_MULT: float = 1.0 # ORB ATR 손절 기본 배수 diff --git a/backend/app/services/daytrading/entry_service.py b/backend/app/services/daytrading/entry_service.py index df1e60b..51f4ce6 100644 --- a/backend/app/services/daytrading/entry_service.py +++ b/backend/app/services/daytrading/entry_service.py @@ -219,12 +219,14 @@ async def scan_and_enter() -> list[dict]: logger.info("[DayEntry] ⛔ 3연패 쿨다운 — 신규 진입 차단") return entries - # [P0] 시장 국면 체크 — SIDEWAYS/CRASH/HALTED/STRONG_BEAR에서 진입 차단 - _BLOCK_REGIMES = {"sideways", "crash", "halted", "strong_bearish"} + # [P0] 시장 국면 체크 — CRASH/HALTED에서만 진입 차단 + # 데이트레이딩은 분봉 기반이라 일봉 SIDEWAYS/strong_bearish와 무관하게 + # 장중 변동성이 있으면 진입 가능 (CLAUDE.md 7.3 전략 독립성) + _BLOCK_REGIMES_DT = {"crash", "halted"} try: regime_info = await check_market_regime() regime = regime_info.get("regime", "neutral") - if regime in _BLOCK_REGIMES: + if regime in _BLOCK_REGIMES_DT: logger.info(f"[DayEntry] ⛔ {regime.upper()} 국면 — 데이트레이딩 진입 차단") return entries logger.info(f"[DayEntry] 시장 국면: {regime}")