pyqqq.backtest.wallclock#

실시간 및 백테스팅 모드를 지원하는 시간 관리 모듈입니다. 트레이딩 시스템에서 시간을 관리하는 핵심 컴포넌트로, 실시간 거래와 백테스팅에서 동일한 인터페이스를 제공합니다.

주요 기능#

  • 실시간/백테스팅 모드 전환 지원

  • 시간대(timezone) 관리

  • 시간 변경 이벤트 처리 및 콜백 함수 지원

  • 비동기(async) 시간 제어

클래스 구성#

WallClock#

주요 속성

  • live_mode (bool): 실시간/백테스팅 모드 구분

  • tzinfo (datetime.tzinfo): 시간대 정보

  • current_time (datetime): 현재 시간 (백테스팅 모드에서만 사용)

  • end_time (datetime): 종료 시간 (백테스팅 모드에서만 사용)

  • on_time_change (callable): 시간 변경 후 호출될 콜백 함수

  • on_before_time_change (callable): 시간 변경 전 호출될 콜백 함수

주요 메서드

  • now(): 현재 시간 반환

  • today(): 현재 날짜 반환

  • is_alive(): 시계 동작 상태 확인

  • sleep(seconds): 지정된 시간만큼 대기

사용 예시#

실시간 모드 예시#

# 실시간 모드
clock = WallClock(live_mode=True)
current = clock.now()
await clock.sleep(1)  # 실제 1초 대기

백테스팅 모드 예시#

# 백테스팅 모드
clock = WallClock(
    live_mode=False,
    start_time=datetime(2023, 1, 1),
    end_time=datetime(2023, 12, 31)
)
while clock.is_alive():
    current = clock.now()
    await clock.sleep(60)  # 가상으로 1분 진행