pyqqq.backtest.positionprovider¶
백테스트 시에 보유 포지션 정보를 제공하는 모듈입니다. 다양한 브로커와 데이터 소스로부터 포지션 정보를 조회할 수 있는 표준 인터페이스를 제공합니다.
주요 기능¶
실시간 브로커 연동 포지션 조회 (KIS, EBest)
수동 포지션 정보 관리
DB 기반 히스토리 포지션 조회
다양한 데이터 소스에 대한 표준화된 인터페이스 제공
클래스 구성¶
BasePositionProvider¶
포지션 제공자의 기본이 되는 추상 클래스입니다.
주요 메서드
get_positions(date): 특정 날짜의 포지션 정보 조회
KISPositionProvider¶
한국투자증권 계좌의 실시간 포지션 정보를 제공합니다.
주요 기능
KIS OpenAPI를 통한 실시간 포지션 조회
StockPosition 형식으로 표준화된 포지션 정보 제공
EBestPositionProvider¶
LS(구 이베스트투자)증권 계좌의 실시간 포지션 정보를 제공합니다.
주요 기능
EBest OpenAPI를 통한 실시간 포지션 조회
StockPosition 형식으로 표준화된 포지션 정보 제공
ManualPositionProvider¶
백테스팅을 위한 수동 포지션 정보를 관리합니다.
주요 메서드
update_positions(): 포지션 정보 업데이트
get_positions(): 현재 포지션 정보 조회
BackPositionProvider¶
DB에 저장된 과거 포지션 정보를 조회합니다.
주요 기능
특정 날짜의 포지션 정보 조회
API 기반 데이터 조회
브로커별 계좌 정보 지원
사용 예시¶
실시간 포지션 조회¶
# KIS 포지션 조회
provider = KISPositionProvider()
positions = provider.get_positions()
# EBest 포지션 조회
provider = EBestPositionProvider()
positions = provider.get_positions()
백테스팅용 포지션 관리¶
# 수동 포지션 설정
positions = [
StockPosition(asset_code="005930", quantity=100)
]
provider = ManualPositionProvider(positions)
# DB 기반 포지션 조회
provider = BackPositionProvider(
brokerage='kis',
account_no='계좌번호'
)
positions = provider.get_positions(date=datetime.date(2024, 1, 1))