개발 이야기/주식 자동 매매 프로그램

키움 증권 API를 이용하여 주식 자동 매매 프로그램 개발하기 - 계좌 잔고 조회 (1) [Python]

제이온 (Jayon) 2021. 1. 21.

 

 

안녕하세요? 코딩중독입니다.

 

저번 시간에는 예수금을 조회하는 소스코드를 작성하였습니다. 오늘은 계좌의 총매입금액, 총평가금액 등의 데이터를 얻어오는 과정을 구현해 보겠습니다.

 

 

KOA Studio 실습

오늘은 계좌의 총수익률과 관련된 정보를 구하는 것이 목적입니다. 사실, '계좌수익률요청'이라는 트랜잭션이 존재하지만, 이것은 싱글데이터가 존재하지 않습니다. 그리고 다음 시간에는 종목별 수익률도 구할 것이기때문에 이 트랜잭션은 적합하지 않습니다.

 

우리가 사용할 트랜잭션은 '계좌평가잔고내역요청'입니다. 코드로는 opw00018이 되겠군요. 이것을 검색해 봅시다.

 

 

 

 

이번 포스팅에서는 싱글 데이터만 얻어올 것이고, 다음 포스팅에서 멀티 데이터를 얻어올 것입니다. 

 

 

 

 

위 사진은 입력값을 의마합니다. 그런데, 자세히 보니 예수금을 조회할 때 형태와 완전히 동일합니다. 그래서 우리는 따로 이벤트와 슬롯을 연결해 주는 함수를 정의할 필요가 없습니다. 오른쪽에 계좌번호, 비밀번호, 비밀번호입력매체구분, 조회구분에 각각 "본인의 계좌번호", " ", "00", "1"이라고 입력하고 조회를 눌러줍니다.

 

 

 

 

그러면 다양한 데이터가 출력되는데, 싱글 데이터는 [0] ~ [8]까지이고, 그 밑에는 모두 멀티 데이터입니다. 멀티 데이터는 다음 시간에 다룰 것이니 패스하고, 싱글 데이터 중에서 우리는 총매입금액, 총평가금액, 총평가손익금액, 총수익률(%)만 뽑아낼 것입니다.

 

 

전체 소스코드

 

 

__init__()

 

 

__init()  함수에서는 계좌평가잔고내역 관련 이벤트 루프와 싱글 데이터 변수가 추가되었고, 계좌평가잔고내역을 얻어오는 함수가 추가되었습니다.

 

 

트랜잭션 요청 함수

 

 

먼저, SetInputValue() 함수와 CommRqData() 함수를 다루는 get_account_evaluation_balance() 함수를 정의하였습니다. 예수금 조회의 입력값과 동일하기때문에 SetInputValue() 함수는 그대로 복붙을 하였고, CommRqData() 함수의 입력값에서 트랜잭션에 대한 값만 변경하였습니다.

 

그리고 잊지 말고 이벤트 루프를 꼭 수행해 줍니다.

 

 

 

 

tr_slot() 함수에서 '예수금상세현황요청' 코드 아래에 elif를 추가한 것입니다. GetCommData 함수를 사용하여 총매입금액, 총평가금액, 총평가손익금액, 총수익률(%) 데이터를 얻어오면 됩니다. 단, 이 값들 중 총수익률(%)은 반드시 int가 아닌 float로 형변환해 주셔야합니다.

 

마지막으로, 사용한 화면 번호를 끊어주고 이벤트 루프를 종료하면 됩니다.

 

 

출력 결과

 

 

여기서 4번을 누르면 계좌 잔고를 조회할 수 있습니다.

 

 

 

 

이렇게 4가지 데이터가 정상적으로 출력되면 성공입니다. 모의 투자라서 아무거나 막 산건데 수익률이 ㅎㄷㄷ하네요.. 이게 제 실제 계좌였으면 얼마나 좋았을까요 ㅋㅋㅋㅋ

 

 

정리

지금까지 계좌평가잔고내역의 싱글 데이터를 가져오는 방법에 대해서 알아 보았습니다. 다음 시간에는 각 종목의 수익률을 알 수 있는 멀티 데이터를 얻어오는 방법에 대해서 설명하겠습니다.

 

 

출처

프로그램 동산(장용준)님이 집필하신 '손가락 하나 까딱하지 않는 주식 거래 시스템 구축' 교재를 참고하여 작성하였습니다.

 

그 외에 프로그램 동산님은 깃허브, 카페, 유튜브를 운영 중이십니다. 굉장히 도움이 되는 내용이 많으니 참고하셔도 좋을 것 같습니다.

 

(깃허브) github.com/programgarden

(유튜브) www.youtube.com/channel/UCq7fsrxP6oi6vnYgPkw92jg

(네이버 카페) cafe.naver.com/programgarden

댓글

추천 글