버그 수정

This commit is contained in:
2026-02-23 08:55:11 +09:00
parent d2829a47a7
commit 009d71bca0

View File

@@ -173,7 +173,7 @@ def analyze_custom_signals(chart_data):
disparity = (close / ma20) * 100
# 🚫 급등 종목 필터: 최근 3일 상승률 체크
if len(closes) >= 3:
if len(closes) >= 4:
price_3days_ago = closes[-4]
recent_gain = ((close - price_3days_ago) / price_3days_ago) * 100 if price_3days_ago > 0 else 0
if recent_gain > 10: # 3일간 10% 이상 급등 시 매수 안함
@@ -1123,8 +1123,14 @@ async def get_rule_based_recommendations(
result = await get_rule_based_recommendations_from_db(db)
# 자동매매 실행 (백그라운드)
# 주의: 엔드포인트 반환 후 FastAPI가 db 세션을 닫으므로,
# 백그라운드 태스크는 독립적인 새 세션을 열어서 사용해야 한다.
if auto_trade and result.get("recommendations_by_rule"):
asyncio.create_task(execute_auto_trade_background(result, db))
rec_snapshot = result
async def _bg_trade():
async with AsyncSessionLocal() as bg_db:
await execute_auto_trade_background(rec_snapshot, bg_db)
asyncio.create_task(_bg_trade())
logger.info("🤖 Auto-trade task created in background")
return result
@@ -2033,16 +2039,16 @@ async def execute_auto_trade(stock: dict, db: AsyncSession):
score_val = 0.0
buy_keywords = [
"정배열 상승 매수타점",
"눌림목", # 눌림목 진입 매수타점
"RSI 과매도",
"RSI 중립-상승",
"스토캐스틱 과매도",
"정배열 눌림목 매수", # "정배열 눌림목 매수 (이격도 안정)"
"눌림목 진입 매수타점", # "눌림목 진입 매수타점"
"RSI 바닥 탈출 반등", # "RSI 바닥 탈출 반등 (XX)"
"RSI 안정 상승", # "RSI 안정 상승 (XX)"
"스토캐스틱 과매도", # "스토캐스틱 과매도 (%K: XX)"
"5일선 > 20일선",
"20일선 > 60일선",
"골든크로스",
"골든크로스", # "MACD 골든크로스"
"볼린저 하한선 터치",
"ADX 강한 추세",
"횡보장 — 평균회귀 유리", # "ADX(XX<20) 횡보장 — 평균회귀 유리"
"거래량 증가와 상승",
]
should_buy = any(k in text_signals for k in buy_keywords)
@@ -2192,7 +2198,7 @@ async def execute_auto_trade(stock: dict, db: AsyncSession):
last_buy_at = recent_buys[0].created_at if recent_buys else None
# 쿨다운 체크
if last_buy_at and (datetime.now() - last_buy_at).total_seconds() < cooldown_min * 60:
if last_buy_at and (_get_kst_now() - last_buy_at).total_seconds() < cooldown_min * 60:
logger.info(f"⏳ 추가매수 대기: {stock_name} {cooldown_min}분 쿨다운 미경과")
return {"action": "HOLD", "stock": stock_name, "reason": "cooldown"}