From 96cfee58d76a514ab543982d399174798cc6a132 Mon Sep 17 00:00:00 2001 From: jongjae Date: Mon, 18 May 2026 15:24:15 +0900 Subject: [PATCH] =?UTF-8?q?[2026-05-18]=20=EC=A0=84=EB=9E=B5=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=E2=80=94=20=EC=8B=A0=EA=B7=9C=20=EC=A7=84=EC=9E=85?= =?UTF-8?q?=20=EB=A7=88=EA=B0=90=2014:30=E2=86=9214:00,=20SL=20=EC=A2=85?= =?UTF-8?q?=EB=AA=A9=20=EB=8B=B9=EC=9D=BC=20=EC=9E=AC=EC=A7=84=EC=9E=85=20?= =?UTF-8?q?=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 체크 후 디스코드 경고