DB증권 API Python SDK
Project description
PYDBFI - DB증권 API Python SDK
설치
pip를 사용하여 설치할 수 있습니다:
pip install pydbfi
인증 및 초기화
DB증권 API를 사용하기 위해서는 먼저 appkey, appsecretkey가 필요합니다. 이 키를 사용하여 SDK를 초기화합니다:
from pydbfi import DomesticAPI, OverseasAPI
# 국내 시장 API 초기화
domestic_api = DomesticAPI(app_key="your_app_key", app_secret_key="your_app_secret_key")
# 해외 시장 API 초기화
overseas_api = OverseasAPI(app_key="your_app_key", app_secret_key="your_app_secret_key")
로깅 레벨을 조정하려면 log_level 파라미터를 사용합니다:
import logging
domestic_api = DomesticAPI(
app_key="your_app_key",
app_secret_key="your_app_secret_key",
log_level=logging.DEBUG
)
국내 API (DomesticAPI)
주문 관련 기능
주식 매수
result = domestic_api.buy(
stock_code="005930", # 종목코드
quantity=10, # 수량
price=60000, # 가격
price_type="00", # 지정가(00)
credit_type="000", # 보통
loan_date="00000000", # 일반주문
order_condition="0" # 없음
)
주식 매도
result = domestic_api.sell(
stock_code="005930", # 종목코드
quantity=10, # 수량
price=60000, # 가격
price_type="00", # 지정가(00)
credit_type="000", # 보통
loan_date="00000000", # 일반주문
order_condition="0" # 없음
)
주문 취소
result = domestic_api.cancel(
order_no=12345, # 원주문번호
stock_code="005930", # 종목코드
quantity=10 # 취소수량
)
잔고 및 조회 기능
거래 내역 조회
result = domestic_api.get_transaction_history(
execution_status="0", # 체결여부 (0:전체, 1:체결, 2:미체결)
order_type="0", # 매매구분 (0:전체, 1:매도, 2:매수)
stock_type="0", # 종목구분 (0:전체)
query_type="0", # 조회구분 (0:전체, 1:ELW, 2:ELW제외)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
주식 잔고 조회
result = domestic_api.get_stock_balance(
query_type="0", # 조회구분코드 (0:전체, 1:비상장제외, 2:비상장,코넥스,kotc 제외)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
예수금 조회
result = domestic_api.get_deposit(
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
주문 가능 수량 조회
result = domestic_api.get_able_order_quantity(
stock_code="005930", # 종목코드
price=60000, # 가격
order_type="2", # 매매구분 (1:매도, 2:매수)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
시세 관련 기능
종목 목록 조회
result = domestic_api.get_stock_tickers(
market_code="J", # 시장분류코드 (J:주식, E:ETF, EN:ETN)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
종목 시세 조회
result = domestic_api.get_stock_price(
stock_code="005930", # 종목코드
market_code="J", # 시장분류코드 (J:주식, E:ETF, EN:ETN)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
차트 관련 기능
분봉 차트 조회
result = domestic_api.get_minute_chart(
stock_code="005930", # 종목코드
start_date="20230101", # 시작일자
time_interval="60", # 시간 간격 (60:1분, 300:5분, 600:10분 등)
market_code="J", # 시장분류코드 (J:주식)
adjust_price_yn="0", # 수정주가 사용 여부 (0:사용, 1:미사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
일봉 차트 조회
result = domestic_api.get_daily_chart(
stock_code="005930", # 종목코드
start_date="20230101", # 시작일자
end_date="20230131", # 종료일자
market_code="J", # 시장분류코드 (J:주식)
adjust_price_yn="0", # 수정주가 사용 여부 (0:사용, 1:미사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
주봉 차트 조회
result = domestic_api.get_weekly_chart(
stock_code="005930", # 종목코드
start_date="20230101", # 시작일자
end_date="20230630", # 종료일자
market_code="J", # 시장분류코드 (J:주식)
adjust_price_yn="0", # 수정주가 사용 여부 (0:사용, 1:미사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
월봉 차트 조회
result = domestic_api.get_monthly_chart(
stock_code="005930", # 종목코드
start_date="20230101", # 시작일자
end_date="20231231", # 종료일자
market_code="J", # 시장분류코드 (J:주식)
adjust_price_yn="0", # 수정주가 사용 여부 (0:사용, 1:미사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
해외 API (OverseasAPI)
주문 관련 기능
주식 매수
result = overseas_api.buy(
stock_code="AAPL", # 종목코드
quantity=10, # 수량
price=180.0, # 가격
price_type="1", # 지정가(1)
order_condition="1", # 일반
trade_type="0", # 주문
original_order_no=0 # 신규주문
)
주식 매도
result = overseas_api.sell(
stock_code="AAPL", # 종목코드
quantity=10, # 수량
price=180.0, # 가격
price_type="1", # 지정가(1)
order_condition="1", # 일반
trade_type="0", # 주문
original_order_no=0 # 신규주문
)
주문 취소
result = overseas_api.cancel(
order_no=12345, # 원주문번호
stock_code="AAPL", # 종목코드
quantity=10 # 취소수량
)
잔고 및 조회 기능
거래 내역 조회
from datetime import datetime
today = datetime.now().strftime("%Y%m%d")
week_ago = (datetime.now() - timedelta(days=7)).strftime("%Y%m%d")
result = overseas_api.get_transaction_history(
start_date=week_ago, # 조회시작일자 (YYYYMMDD)
end_date=today, # 조회종료일자 (YYYYMMDD)
stock_code="", # 해외주식종목번호 (빈값은 전체 종목)
order_type="0", # 해외주식매매구분코드 (0:전체, 1:매도, 2:매수)
execution_status="0", # 주문체결구분코드 (0:전체, 1:체결, 2:미체결)
sort_type="0", # 정렬구분코드 (0:역순, 1:정순)
query_type="0", # 조회구분코드 (0:합산별, 1:건별)
online_yn="0", # 온라인여부 (0:전체, Y:온라인, N:오프라인)
opposite_order_yn="0", # 반대매매주문여부 (0:전체, Y:반대매매, N:일반주문)
won_fcurr_type="1", # 원화외화구분코드 (1:원화, 2:외화)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
주식 잔고 조회
result = overseas_api.get_stock_balance(
balance_type="2", # 처리구분코드 (1:외화잔고, 2:주식잔고상세, 3:주식잔고(국가별), 9:당일실현손익)
cmsn_type="2", # 수수료구분코드 (0:전부 미포함, 1:매수제비용만 포함, 2:매수제비용+매도제비용)
won_fcurr_type="2", # 원화외화구분코드 (1:원화, 2:외화)
decimal_balance_type="0", # 소수점잔고구분코드 (0:전체, 1:일반, 2:소수점)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
예수금 조회
result = overseas_api.get_deposit(
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
주문 가능 수량 조회
result = overseas_api.get_able_order_quantity(
stock_code="AAPL", # 종목코드
price=180.0, # 가격
trx_type="2", # 처리구분코드 (1:매도, 2:매수)
won_fcurr_type="2", # 원화외화구분코드 (1:원화, 2:외화)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
시세 관련 기능
종목 목록 조회
result = overseas_api.get_stock_tickers(
market_code="NY", # 시장 코드 (NY:뉴욕, NA:나스닥, AM:아멕스)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
종목 시세 조회
result = overseas_api.get_stock_price(
stock_code="AAPL", # 종목코드
market_code="FN", # 시장 코드 (FY:뉴욕, FN:나스닥, FA:아멕스)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
차트 관련 기능
분봉 차트 조회
result = overseas_api.get_minute_chart(
stock_code="AAPL", # 종목코드
start_date="20230101", # 시작일자
end_date="20230102", # 종료일자
time_interval="60", # 시간 간격 (60:1분, 300:5분, 600:10분 등)
market_code="FN", # 시장 코드 (FY:뉴욕, FN:나스닥, FA:아멕스)
adjust_price_yn="1", # 수정주가 사용 여부 (0:미사용, 1:사용)
period_specified="Y", # 기간지정여부코드 (Y:기간지정, N:기간미지정)
hour_class_code="0", # 입력시간구분코드 (항상 "0" 입력)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
일봉 차트 조회
result = overseas_api.get_daily_chart(
stock_code="AAPL", # 종목코드
start_date="20230101", # 시작일자
end_date="20230131", # 종료일자
market_code="FN", # 시장 코드 (FY:뉴욕, FN:나스닥, FA:아멕스)
adjust_price_yn="1", # 수정주가 사용 여부 (0:미사용, 1:사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
주봉 차트 조회
result = overseas_api.get_weekly_chart(
stock_code="AAPL", # 종목코드
start_date="20230101", # 시작일자
end_date="20230630", # 종료일자
market_code="FN", # 시장 코드 (FY:뉴욕, FN:나스닥, FA:아멕스)
use_adjust_price="1", # 수정주가 사용 여부 (0:미사용, 1:사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
월봉 차트 조회
result = overseas_api.get_monthly_chart(
stock_code="AAPL", # 종목코드
start_date="20230101", # 시작일자
end_date="20231231", # 종료일자
market_code="FN", # 시장 코드 (FY:뉴욕, FN:나스닥, FA:아멕스)
use_adjust_price="1", # 수정주가 사용 여부 (0:미사용, 1:사용)
cont_yn="N", # 연속조회여부
cont_key=None # 연속조회키
)
세션 종료
API 사용이 끝난 후에는 세션을 종료해야 합니다:
domestic_api.close()
overseas_api.close()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pydbfi-0.1.5.tar.gz
(15.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pydbfi-0.1.5-py3-none-any.whl
(18.6 kB
view details)
File details
Details for the file pydbfi-0.1.5.tar.gz.
File metadata
- Download URL: pydbfi-0.1.5.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edb84a8baa283d97158d237267f1cb2c4bbac51a4fb5f6d2d16e14f08bb22445
|
|
| MD5 |
b30c89312b5bbca388fe9918a8f68418
|
|
| BLAKE2b-256 |
af5cd94853721d2d52a0c7c5f8386899fe681d6ebc7305ec310561aef22339c8
|
File details
Details for the file pydbfi-0.1.5-py3-none-any.whl.
File metadata
- Download URL: pydbfi-0.1.5-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2c9db3990c2aca904a2b56d90b16facf861da35741b9acfa188eb4cdbeb88ee
|
|
| MD5 |
821bfff20fc9e508080eac1dfb0f73a4
|
|
| BLAKE2b-256 |
08e727437ee65c7aa3841be438aa0f11eb28c73d012938bd08c1eba24b526082
|