Skip to main content

python version of xingapi

Project description

xingapi for python users

Installation

pip install xingapi

eBest xingAPI com guide

이베스트 xingAPI 가이드(링크)

Requirements

  • python 32bit environment
  • xingAPI installation
  • DevCenter installation
  • Download res files

Usage

1. Session

1) 기본사용법

import xingapi as xa

session = xa.Session()
session.login(id='아이디', pw='비밀번호', cert='공인인증비밀번호')

2) account.txt를 활용하는법

account.txt를 아래와같이 생성하여 현재터미널위치에 두고

아이디
비밀번호
공인인증비밀번호

아래스크립트를 실행

import xingapi as xa

with open('account.txt') as f:
    id, pw, cert = f.read().split()

session = xa.Session()
session.login(id, pw, cert)

2. Query 사용법

1) 기본적인 사용예시

삼성전자(005930)의 주식 분별 주가 조회('t1302)를 예로 들어보겠다

query = xa.Query('t1302')
data = query(shcode='005930', cnt=900)

xa.Query 오브젝트 생성시 trcode를 입력 오브젝트를 다시 __call__할 때, 필드이름과, 필드값을 keyword=value 페어로 전달한다 반환된 데이터는 { 블록이름1 : 블록데이터1, 블록이름2 : 블록데이터2 } 의 dict 형태로 반환되고, 블록데이터는 pandas.DataFrame 오브젝트이다.

2) 한줄로도 가능

df = xa.Query('t1302')(shcode='005930', cnt=900)['t1310OutBlock1']

3) 조회/연속조회

query = xa.Query('t1302')
data1 = query.call(shcode='005930', cnt=100).data
data2 = query.nextcall(cts_time='1558080001').data

query = xa.Query('t1302')
data3 = query.nextcall(shcode='005930', cnt=100, cts_time='1558080001').data

DevCenter에서 TR 확인창을 사용하면 조회버튼/다음조회버튼이 있다 xa.Query.call(**input_kwargs)함수는 조회버튼에 해당하며, 오브젝트 자신을 반환한다. xa.Query.nextcall(**input_kwargs)함수는 다음조회버튼에 해당하며, 역시 오브젝트 자신을 반환한다.

nextcall(다음조회)의 경우 data3처럼 call(조회)에 사용한 키값과 함께 사용해도 되지만, call(조회)를 한 경우엔 data2처럼 다음조회 에사용할 새로운 키값만 입력해도 동작한다.

4) 연속조회 (자동 끝까지)

query = xa.Query('t1302')
data = query.call(shcode='005930', cnt=100).next(keypairs={'time':'cts_time'})

위에서 사용한 call(조회), nextcall(연속조회)를 조합한 next함수를 이용하면 query.isnext 가 False가 될때까지 스스로 반복한다. 여기서 keypairs란 InBlock에 다시 넣어줄 필드이름과, OutBlock에서 가져올 필드 값의 필드이름을 이야기한다. 예를들어 t1302의 경우 InBlock의 timekey 에 OutBlock의 cts_time의 value를 가져와야하므로 keypairs={'time':'cts_time'} 로전달한다.

5) 연속조회 (자동 주어진 횟수만큼만)

query = xa.Query('t1302')
data = query.call(shcode='005930', cnt=100).next(keypairs={'time':'cts_time'}, total=5)

total을 명시해주면 다음조회의 반복회수를 몇번까지 할 것인지 정해준다. 과거 데이터가 양이 너무 많은 경우, dataframe객체 안에 담지 못하고 Out of memory가 발생 할 수 있으므로 그런경우 유용하게 사용가능하다.

App 사용법

로그인 방법

app = xa.App('../account.txt')
app = xa.App('아이디', '패스워드', '공인인증패스워드')
app = xa.App(id='아이디', pw='패스워드', cert='공인인증패스워드')

종목코드조회

app.종목코드.전체
app.종목코드.코스피
app.종목코드.투자주의

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

xingapi-1.1.1-py3-none-any.whl (10.8 kB view hashes)

Uploaded Python 3

Supported by

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