mingi3314 / PyRb

Python Rebalancer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pyrb - Python Rebalancer

PyPI - Python Version License Supported Brokerages

pyrb는 주식 포트폴리오 리밸런싱을 자동화하기 위한 커맨드라인 인터페이스(CLI) 도구입니다. 파이썬으로 제작되었으며, 증권사 API를 통해 자산 배분을 위한 매매 과정을 자동화합니다.

주요 기능

  • 자산 배분을 위한 포트폴리오 분석
  • 포트폴리오 리밸런싱을 위한 주문 실행
  • 다양한 증권사 지원을 위한 플러그 앤 플레이 아키텍처
    • 현재는 EBest 증권사만 지원

설치 방법

Pip 혹은 Poetry로 pyrb를 직접 설치할 수 있습니다 (python 3.8 이상 버전이 필요합니다.):

  • Pip

    pip install pyrb
  • Poetry

    poetry add pyrb

또는, 저장소를 클론하고 수동으로 설치하세요:

git clone https://github.com/mingi3314/pyrb.git
cd pyrb
pip install .

사용 방법

1. 계좌 연동하기

현재는 Ebest 계좌만 연동이 가능하며, API 연동을 위해 고유 토큰(APP_KEY, APP_SECRET)을 입력해야 합니다.

  • 만약 아직 토큰을 발급받지 않으셨다면, 아래 링크를 참고해주세요. 02. OPEN API 사용신청 페이지에 앱키(APP_KEY)시크릿키(APP_SECRET)를 발급받는 방법이 설명되어 있습니다. https://openapi.ebestsec.co.kr/howto-use

아래 명령어를 입력하여 증권사 계좌를 설정해주세요.

pyrb account set
>>> App key: <enter your app key>
>>> App secret: <enter your app secret>

위 과정을 마쳤다면, 로컬 파일에 토큰 정보(앱키, 시크릿키)가 저장됩니다. 외부로 노출되지 않도록 주의해주세요.

2. 실행하기

아래 예시를 따라, 올웨더 포트폴리오 전략을 사용해 포트폴리오를 리밸런싱할 수 있습니다.

pyrb asset-allocate --strategy all-weather-kr --investment-amount <amount-you-want-to-invest>

위 명령어를 입력하면, 시스템은 올웨더 포트폴리오를 구성하기 위해 필요한 주문을 자동으로 산출합니다. 그 후, 해당 주문들을 제출할 것인지 사용자에게 확인을 요청합니다.

사용자는 아래와 같은 주문 후보들을 검토한 후, 'y'버튼을 클릭하여 주문을 제출할 수 있습니다.

┏━━━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Symbol ┃ Side ┃ Quantity ┃ Price ┃ Total Amount ┃ Current position value ┃ Expected position value ┃
┡━━━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 379800 │ BUY  │ 378      │ 13545 │ 5120010      │ 1868930.0              │ 6988940.0               │
│ 361580 │ BUY  │ 278      │ 18265 │ 5077670      │ 1917538.0              │ 6995208.0               │
│ 411060 │ BUY  │ 370      │ 12200 │ 4514000      │ 1475979.0              │ 5989979.0               │
│ 365780 │ BUY  │ 58       │ 88755 │ 5147790      │ 1774834.0              │ 6922624.0               │
│ 308620 │ BUY  │ 476      │ 10945 │ 5209820      │ 1783768.0              │ 6993588.0               │
│ 272580 │ BUY  │ 85       │ 52995 │ 4504575      │ 1483638.0              │ 5988213.0               │
└────────┴──────┴──────────┴───────┴──────────────┴────────────────────────┴─────────────────────────┘

Do you want to place these orders? [y/N]: 

3. 포트폴리오 확인하기

다음 명령어로 포트폴리오를 확인할 수 있습니다:

pyrb portfolio

참고 컨텐츠

개발

이 프로젝트는 Python 3.11과 Typer를 사용하여 CLI 인터페이스로 구축되었습니다. 현재는 EBest 증권사를 특별히 지원하고 있지만, 향후 추가 증권사를 지원할 수 있도록 플러그 앤 플레이 아키텍처로 설계되었습니다.

개발 환경을 설정하기 위해, 저장소를 클론하고 종속성을 설치하세요:

git clone https://github.com/yourusername/pyrb.git
cd pyrb
poetry install --sync

테스트 실행하기

다음 명령어로 테스트를 실행할 수 있습니다:

pytest

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Python Rebalancer

License:MIT License


Languages

Language:Python 76.2%Language:Vue 13.1%Language:JavaScript 8.1%Language:Rust 2.0%Language:HTML 0.4%Language:Shell 0.2%Language:CSS 0.1%