[파이썬 주식 자동매매 2편]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
단 10줄 코드로 키움증권 API 자동 로그인 및 계좌 조회하기
💡 이전 글 먼저 보기: 아직 키움증권 OpenAPI 가입과 32비트 파이썬 환경 세팅을 마치지 않으셨다면 👉 **[여기에 1편 자동매매]**를 먼저 확인해 주시기 바랍니다. 필수 세팅이 되어 있지 않으면 코드가 실행되지 않습니다!
지난 1편에서 개발을 위한 모든 밑작업을 완벽하게 마쳤습니다. 이제 드디어 파이썬 코드를 작성하여 키움증권 서버와 통신을 시작할 차례입니다.
원래 증권사 API를 파이썬과 연동하려면 PyQt5의 복잡한 이벤트 루프(Event Loop)와 COM 객체를 직접 제어해야 하지만, 우리는 수많은 선배 개발자들이 미리 만들어둔 pykiwoom이라는 마법 같은 라이브러리를 사용할 것입니다.
이 라이브러리 덕분에 초보자도 단 10줄 내외의 코드로 로그인과 계좌 조회를 끝낼 수 있습니다.
1. 코딩 전 필수 작업: '자동 로그인' 설정하기
코드를 실행하기 전에 반드시 거쳐야 하는 매우 중요한 관문이 있습니다. 기본 상태에서는 파이썬 코드를 실행할 때마다 아이디와 비밀번호를 직접 쳐야 하는 번거로움이 발생합니다. 완전한 '자동매매'를 위해 이를 자동 로그인으로 바꿔주어야 합니다.
PC 바탕화면 우측 하단(시계 옆)의 시스템 트레이에서 키움증권 OpenAPI 아이콘(W 모양)을 우클릭합니다.
'계좌비밀번호 저장' 메뉴를 클릭합니다.
본인의 아이디가 나타나면 비밀번호와 모의투자용 계좌 비밀번호(보통 0000)를 입력하고 [등록] 버튼을 누릅니다.
마지막으로 'AUTO 옵션'에 체크를 해줍니다. 이제 코드가 실행될 때마다 비밀번호 입력 없이 스르륵 로그인이 진행됩니다!
2. 파이썬으로 키움증권 API 로그인하기
이제 파이썬 에디터(VS Code, PyCharm 또는 기본 IDLE)를 열고 아래 코드를 그대로 복사해서 붙여넣어 보세요.
from pykiwoom.kiwoom import *
import time
# 1. 키움증권 객체 생성 (이 코드가 실행되면 우측 하단에 로그인 창이 자동으로 뜹니다)
kiwoom = Kiwoom()
# 2. 로그인 상태 확인 (0이 반환되면 성공, 그 외의 숫자는 실패)
if kiwoom.GetConnectState() == 0:
print("키움증권 API 로그인 성공!")
else:
print("로그인 실패. 네트워크 상태를 확인하세요.")
[코드 설명]
Kiwoom()이라는 단어 하나로 키움증권 서버와의 복잡한 연결 고리가 한 번에 생성됩니다.만약 실행 후 화면 우측 하단에 키움증권 로그인 창이 잠시 나타났다가 사라지면서 파이썬 콘솔 창에 "키움증권 API 로그인 성공!"이라는 문구가 떴다면 완벽하게 성공한 것입니다.
3. 내 계좌 정보 불러오기
로그인에 성공했다면, 이제 내 증권 계좌번호를 서버로부터 불러와 보겠습니다. 자동매매로 주식을 사고팔려면 어느 계좌에서 돈을 뺄지 코드가 알고 있어야 하기 때문입니다.
로그인 코드 바로 밑에 아래 코드를 추가해 줍니다.
# 3. 내 전체 계좌번호 목록 가져오기
accounts = kiwoom.GetLoginInfo("ACCNO")
# 4. 반환된 문자열 데이터를 다루기 쉽게 리스트(List) 형태로 쪼개기
# 키움증권은 계좌번호를 '세미콜론(;)'으로 구분해서 보내줍니다.
account_list = accounts.split(';')[:-1]
print("내 계좌번호 목록:", account_list)
# 5. 주식 매매에 사용할 주력 계좌 1개 선택 (보통 리스트의 첫 번째 계좌)
my_account = account_list[0]
print("자동매매에 사용할 주 계좌:", my_account)
[실행 결과]
코드를 실행하면 ['8123456711', '8123456722'] 와 같이 본인이 보유한 키움증권 계좌번호들이 짠! 하고 나타납니다.
우리는 앞으로 이 my_account 변수에 저장된 계좌번호를 활용하여 실제 주문을 넣게 됩니다.
마무리 및 다음 단계
정말 놀랍지 않나요? 복잡한 금융 시스템에 접속하고 내 개인 정보를 암호화하여 통신하는 엄청난 작업이, 파이썬과 pykiwoom 라이브러리를 만나 단 몇 줄의 직관적인 코드로 끝났습니다.
하지만 이건 시작에 불과합니다. 진짜 재미있는 것은 지금부터입니다.
다음 [파이썬 주식 자동매매 3편]에서는 내가 관심 있는 종목(예: 삼성전자, 테슬라 등)의 특정 데이터를 서버에 요청하고, 현재가와 호가 잔량을 실시간으로 받아오는 'TR 데이터 통신'의 기초에 대해 파헤쳐 보겠습니다!
※ 이 글은 투자 공부를 위한 정보 공유이며, 특정 종목의 매수·매도를 권유하지 않습니다. 투자 판단과 그 결과에 대한 책임은 투자자 본인에게 있습니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기