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분 진행