diff --git a/app/main.py b/app/main.py index ac6cbbf..c061560 100644 --- a/app/main.py +++ b/app/main.py @@ -82,6 +82,7 @@ class StockBot: self.positions = {} # ticker → {name, entry, qty, tp1_done, entry_time} self.universe = [] # 감시 종목 리스트 self.ticker_names = {} # ticker → 종목명 캐시 + self.sl_tickers = set() # 당일 SL 당한 종목 — 재진입 차단 self.risk = None # RiskManager (잔고 확인 후 초기화) self.running = False @@ -260,8 +261,8 @@ class StockBot: self.running = False break - # 14:30 이후 신규 진입 중단 - if now_str > "14:30": + # 14:00 이후 신규 진입 중단 (강제청산 50분 전) + if now_str > "14:00": await asyncio.sleep(1) continue @@ -298,6 +299,8 @@ class StockBot: for ticker in self.universe: if ticker in self.positions: continue + if ticker in self.sl_tickers: + continue # 당일 SL 종목 재진입 차단 if len(self.positions) >= MAX_POSITIONS: break # 목표가 미계산 종목 스킵 (불필요한 API 호출 방지) @@ -430,6 +433,7 @@ class StockBot: if reason == "TP2": await notify_tp2(ticker, name, pnl_pct) elif reason == "SL": + self.sl_tickers.add(ticker) # 당일 재진입 차단 await notify_sl(ticker, name, pnl_pct) # L2/L3 체크 후 디스코드 경고