Files
StockBackTester/measure_performance.py

44 lines
1.3 KiB
Python

#!/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 네트워크 호출 감소)")