백테스트 수정중

This commit is contained in:
2026-03-07 13:16:01 +09:00
parent ea355eb60c
commit 7c9b596098
13 changed files with 908 additions and 303 deletions

View File

@@ -274,8 +274,24 @@ async def get_all_krx_stocks_from_fdr(
return stocks
except ImportError:
logger.error("FinanceDataReader 미설치. pip install finance-datareader")
return []
logger.warning("FinanceDataReader 미설치. DB 폴백 사용")
return await _get_stocks_from_db(market)
except Exception as e:
logger.error(f"FDR 조회 실패: {e}")
logger.warning(f"FDR 조회 실패: {e}. DB 폴백 사용")
return await _get_stocks_from_db(market)
async def _get_stocks_from_db(market: Optional[str] = None) -> List[Dict[str, Any]]:
"""FDR 실패 시 DB의 StockDailyPrice에서 고유 종목 코드 조회"""
try:
from sqlalchemy import distinct
async with AsyncSessionLocal() as session:
stmt = select(distinct(StockDailyPrice.stock_code))
result = await session.execute(stmt)
codes = [row[0] for row in result.all()]
logger.info(f"DB 폴백: {len(codes)}개 종목 조회 (market 필터 미적용)")
return [{'code': c, 'name': c, 'market': market or 'KOSPI'} for c in codes]
except Exception as e:
logger.error(f"DB 폴백 조회 실패: {e}")
return []