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))