Skip to main content

Python wrapper for DB Securities (DB증권) OpenAPI — Stock trading, balance, quotes, charts for Korean & US markets

Project description

pydbsec

PyPI version Python CI License: MIT

DB증권 OpenAPI Python 래퍼 — 3줄이면 잔고 조회, 5줄이면 자동매매

DB증권 OpenAPI를 쉽게 사용할 수 있는 Python 라이브러리입니다. 한국투자증권의 PyKIS처럼, DB증권도 Python 한 줄이면 됩니다.

from pydbsec import PyDBSec

client = PyDBSec(app_key="...", app_secret="...")
print(client.domestic.price("005930").current_price)  # 삼성전자 현재가

Features

  • 국내 주식: 잔고 조회, 시세, 매수/매도, 차트, 거래내역
  • 해외 주식: 잔고 조회, 시세, 매수/매도, 차트, 거래내역
  • 선물/옵션: 잔고 조회
  • Sync + Async: PyDBSec (동기) / AsyncPyDBSec (비동기)
  • Type-safe: Pydantic v2 모델로 응답 타입 보장
  • Auto token refresh: OAuth2 토큰 자동 갱신
  • Auto pagination: 연속 조회 자동 처리

Installation

pip install pydbsec

Quick Start

from pydbsec import PyDBSec

client = PyDBSec(app_key="YOUR_APP_KEY", app_secret="YOUR_APP_SECRET")

# 국내 주식 잔고 조회
balance = client.domestic.balance()
print(f"예탁총액: {balance.deposit_total:,.0f}원")
print(f"주문가능: {balance.available_cash:,.0f}원")
for pos in balance.positions:
    print(f"  {pos.stock_name}: {pos.quantity}주 (평가손익: {pos.pnl_amount:,.0f}원)")

# 주가 조회
price = client.domestic.price("005930")  # 삼성전자
print(f"현재가: {price.current_price:,.0f}원 ({price.change_rate:+.2f}%)")

# 매수 주문
result = client.domestic.buy("005930", quantity=10, price=70000)
print(f"주문번호: {result.order_no}")

# 해외 주식
us_price = client.overseas.price("AAPL", market="FN")  # NASDAQ
print(f"AAPL: ${us_price.current_price:.2f}")

# 세션 종료
client.close()

Context Manager

with PyDBSec(app_key="...", app_secret="...") as client:
    balance = client.domestic.balance()

Async

import asyncio
from pydbsec import AsyncPyDBSec

async def main():
    async with AsyncPyDBSec(app_key="...", app_secret="...") as client:
        balance = await client.domestic.balance()
        price = await client.domestic.price("005930")

asyncio.run(main())

API Reference

client.domestic — 국내 주식

Method Description
balance() 잔고 조회
price(stock_code) 현재가 조회
order_book(stock_code) 호가 조회
tickers() 종목 목록
buy(stock_code, quantity, price) 매수 주문
sell(stock_code, quantity, price) 매도 주문
cancel(order_no, stock_code, quantity) 주문 취소
deposit() 예수금 조회
orderable_quantity(stock_code, price) 주문가능수량
transaction_history() 체결/미체결 내역
trading_history(start_date, end_date) 거래 내역
daily_trade_report(date) 일별 거래 보고서
chart(stock_code, period=...) 차트 데이터

client.overseas — 해외 주식

Method Description
balance() 잔고 조회
price(stock_code, market=...) 현재가 조회
order_book(stock_code, market=...) 호가 조회
tickers(market=...) 종목 목록
buy(stock_code, quantity, price) 매수 주문
sell(stock_code, quantity, price) 매도 주문
cancel(order_no, stock_code, quantity) 주문 취소
deposit() 예수금 조회
transaction_history(start_date, end_date) 거래 내역
chart(stock_code, period=...) 차트 데이터

client.futures — 선물/옵션

Method Description
balance() 선물옵션 잔고 조회

Market Codes

국내 시세: "UJ" (주식), "E" (ETF), "EN" (ETN)

해외 시세: "FY" (NYSE), "FN" (NASDAQ), "FA" (AMEX)

해외 종목조회: "NY" (NYSE), "NA" (NASDAQ), "AM" (AMEX)

Prerequisites

DB증권 OpenAPI 사용을 위해:

  1. DB증권 계좌 개설
  2. OpenAPI 사용 신청
  3. App Key / App Secret 발급

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydbsec-0.1.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydbsec-0.1.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file pydbsec-0.1.0.tar.gz.

File metadata

  • Download URL: pydbsec-0.1.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pydbsec-0.1.0.tar.gz
Algorithm Hash digest
SHA256 92e806bc58ebdea20db5e4e09f9a35969f2cd970b5faf561d47a9196416dbb02
MD5 afab8db89bd13db15e66c139adb03f64
BLAKE2b-256 6cac7bb975707e8bacf633ca0288672b4734a1e06f459db7c0b7502aa716ce94

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydbsec-0.1.0.tar.gz:

Publisher: publish.yml on STOA-company/pydbsec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydbsec-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pydbsec-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pydbsec-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7075cf45a3304052f3ba1bb74c5a7a0271bb3240b363aeaae14f89f2d7bb1e1f
MD5 7609f79f700184663fcb2467c484344a
BLAKE2b-256 2b7b7e54ca0c61b2cbdf856ec2d7188ed56717874b8a507620f4637fabd27c46

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydbsec-0.1.0-py3-none-any.whl:

Publisher: publish.yml on STOA-company/pydbsec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page