반응형
xing api -- 로그인후 증권계좌 조회하기
환경 ; windows 10 64bit, python 3.6 32bit
-- xing api 도움말 참고
** 로그인시 결과는 OnLogin event handler 로 들어온다.
xing_login.py 라는 이름으로 저장하자.
--> 다음에 module 로 사용할 이름이다.
import win32com.client
import pythoncom
class XSession:
"""
classmethod get_instance() 를 사용하여, instance 를 만들어야함.
"""
def __init__(self):
self.login_state = 0
def OnLogin(self, code, msg): # event handler
"""
Login 이 성공적으로 이베스트 서버로 전송된후,
로그인 결과에 대한 Login 이벤트 발생시 실행되는 event handler
"""
if code == "0000":
print("로그인 ok\n")
self.login_state = 1
else:
self.login_state = 2
print("로그인 fail.. \n code={0}, message={1}\n".format(code, msg))
def api_login(self, id="myid", pwd="pass", cert_pwd="pass2"): # id, 암호, 공인인증서 암호
self.ConnectServer("hts.ebestsec.co.kr", 20001)
is_connected = self.Login(id, pwd, cert_pwd, 0, False) # 로그인 하기
if not is_connected: # 서버에 연결 안되거나, 전송 에러시
print("로그인 서버 접속 실패... ")
return
while self.login_state == 0:
pythoncom.PumpWaitingMessages()
def account_info(self):
"""
계좌 정보 조회
"""
if self.login_state != 1: # 로그인 성공 아니면, 종료
return
account_no = self.GetAccountListCount()
print("계좌 갯수 = {0}".format(account_no))
for i in range(account_no):
account = self.GetAccountList(i)
print("계좌번호 = {0}".format(account))
@classmethod
def get_instance(cls):
# DispatchWithEvents로 instance 생성하기
xsession = win32com.client.DispatchWithEvents("XA_Session.XASession", cls)
return xsession
if __name__ == "__main__":
xsession = XSession.get_instance()
xsession.api_login()
xsession.account_info()
print("------END--")
<< 실행 결과 >>
<< 소스 >>
반응형
'증권사 api' 카테고리의 다른 글
creon plus -- 당일 체결 data 받기 TR -- StockBid 사용 (0) | 2018.10.19 |
---|---|
xing api -- 실시간 데이터 조회 (6) | 2017.06.02 |
xing api -- 체결창 ; 반복 데이터(Occurs), 연속 데이터 조회 (2) | 2017.06.01 |
xing api -- 현재가 ; 단일 데이터 조회 (0) | 2017.06.01 |
error 해결 -- U-CYBOS가 서버에 접속되어 있지 않습니다. (0) | 2015.08.16 |