pyqqq.backtest.environment#

트레이딩 시스템의 다양한 실행 환경을 정의하는 모듈입니다. 백테스팅과 실제 거래 환경에서 일관된 인터페이스를 제공하며, 브로커와 시간 관리 컴포넌트를 통합적으로 관리합니다.

주요 기능#

  • 백테스팅 환경 설정 및 관리

  • 실시간 거래 환경 구성

  • 국내/해외 주식 거래 지원

  • 실제 계좌 및 모의투자 계좌 지원

클래스 구성#

TradingEnvironment#

트레이딩 환경의 기본이 되는 추상 클래스입니다.

주요 메서드

  • get_broker(): 브로커 인스턴스 반환

  • get_clock(): 시계 인스턴스 반환

BacktestEnvironment#

과거 데이터를 사용한 백테스팅 환경을 제공합니다.

주요 기능

  • 사용자 정의 기간 설정

  • 분단위/일단위 시뮬레이션 지원

  • 초기 포지션 설정 기능

  • 가상 시계와 브로커 통합 관리

KISDomesticEnvironment#

한국투자증권 API를 사용한 국내주식 거래 환경입니다.

주요 기능

  • 실제 계좌 거래 지원

  • 모의투자 계좌 지원

  • 실시간 시장 데이터 연동

  • 환경변수 기반 인증 관리

KISOverseasEnvironment#

한국투자증권 API를 사용한 해외주식 거래 환경입니다.

주요 기능

  • 실제 계좌 해외주식 거래 지원

  • 실시간 해외 시장 데이터 연동

  • 환경변수 기반 인증 관리

사용 예시#

백테스팅 환경#

# 백테스팅 환경 설정
env = BacktestEnvironment(
    start_time=datetime(2023, 1, 1, 9, 0),
    end_time=datetime(2023, 1, 31, 15, 30),
    time_unit="minutes"
)

# 전략 실행
await MyStrategy(env).run()

실시간 거래 환경#

# 국내주식 실거래
env = KISDomesticEnvironment(paper_trading=False)

# 국내주식 모의투자
env = KISDomesticEnvironment(paper_trading=True)

# 해외주식 거래
env = KISOverseasEnvironment()

환경변수 설정#

국내주식 거래시 필요한 환경변수:

  • KIS_APP_KEY: API 키

  • KIS_APP_SECRET: API 시크릿

  • KIS_CANO: 계좌번호

  • KIS_ACNT_PRDT_CD: 계좌상품코드

모의투자 추가 환경변수:

  • PAPER_KIS_APP_KEY: 모의투자 API 키

  • PAPER_KIS_APP_SECRET: 모의투자 API 시크릿

  • PAPER_KIS_CANO: 모의투자 계좌번호

  • PAPER_KIS_ACNT_PRDT_CD: 모의투자 계좌상품코드