#!/usr/bin/env python # -*- coding: utf-8 -*- """ 최적화 전후 성능 비교 스크립트 KR 상위 50개 종목으로 2022-2023년 백테스트를 실행하고 시간 측정 """ import time import sys import config import backtester print("=" * 70) print("최적화 적용 후 백테스트 성능 측정") print("=" * 70) print(f"대상 시장: {config.TARGET_MARKET}") print(f"KR 시장 종목: {config.KR_MARKET_CAP_START} ~ {config.KR_MARKET_CAP_END}") print(f"테스트 기간: {config.BACKTEST_START_DATE} ~ {config.BACKTEST_END_DATE}") print(f"포트폴리오 크기: {config.MAX_PORTFOLIO_SIZE}") print() # 백테스트 실행 및 시간 측정 start_time = time.time() try: backtester.run_backtest() except Exception as e: print(f"\n[에러] 백테스트 실행 중 문제 발생: {e}") import traceback traceback.print_exc() elapsed_time = time.time() - start_time print() print("=" * 70) print(f"백테스트 총 실행 시간: {elapsed_time:.2f}초") print("=" * 70) print() print("최적화 내용:") print(" 1. iloc/get_loc 기반 날짜 인덱싱 (df.loc 대신 사용)") print(" 2. compute_last_peak_series 함수로 피크 사전 계산") print(" 3. 캐시 재활용: 더 넓은 범위 pkl 파일을 찾아 slice로 재사용") print(" 4. 티커 목록 캐싱 (pykrx 네트워크 호출 감소)")