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

키움 증권 API를 이용하여 주식 자동 매매 프로그램 개발하기 - 포트폴리오 종목 파일을 읽고, 종목마다 화면 번호를 세팅하는 방법 [Python]

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

 

 

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

 

저번 시간에는 SQLite3에 저장된 일봉 데이터를 업데이트하는 방법을 알아 보았습니다. 오늘은 그랜빌의 매수 신호 제4법칙을 통해 얻어낸 포트폴리오 파일을 읽어오고, 종목마다 화면 번호를 세팅해 보겠습니다.

 

 

종목마다 화면 번호를 세팅하는 이유

화면 번호는 과거 포스팅에서 서버에 조회나 주문 등 필요한 기능을 요청할 때 이를 구별하기 위한 키 값이라고 설명드렸습니다. 이것은 데이터의 과부하를 최적화하며, 키움 증권에 요청하는 데이터들을 편리하게 관리할 수 있도록 해 줍니다. 따라서, 각 종목을 효과적으로 관리하기 위해서 화면 번호를 세팅하는 것입니다.

  

 

전체 소스코드

 

__init__()

포트폴리오 파일에서 읽어온 self.portfolio_stock_dict를 정의하였고, 종목별 할당할 화면 번호 두 종류를 정의하였습니다.

 

 

파일을 읽는 함수

 

 

readline() 함수를 이용하여 포트폴리오 파일에 있는 종목을 읽어옵니다. 그리고 이 데이터들을 __init__() 에서 정의한 self.portfolio_stock_dict에 저장하면 됩니다.

 

 

종목마다 화면 번호를 세팅하는 함수

 

 

화면 번호를 할당하기 전에 screen_overwrite 리스트를 정의하고, 그전에 만들어 둔 계좌평가잔고내역의 리스트, 미체결 리스트, 포트폴리오 리스트에 있는 종목들의 코드를 screen_overwrite 리스트에 저장합니다.

 

그리고 화면 번호를 할당하는데 cnt를 50으로 나눈 나머지에 따라 __init__() 에서 정의한 화면 번호에 1을 더하는 것을 알 수 있습니다. 이 부분이 왜 필요한지 궁금해 하실텐데, 그것은 키움증권 측에서 한 개의 화면 번호로 요청할 수 있는 건수는 최대 100개이기 때문입니다. 그래서 넉넉하게 하나의 화면 번호당 50개의 건수까지만 요청할 수 있도록 제한한 것입니다.

 

마지막으로 포트폴리오 파일을 읽어온 딕셔너리에 각 종목당 화면 번호도 같이 저장합니다. 이것은 추후 실시간으로 변하는 종목의 데이터를 보관하고 업데이트할 것이므로 상당히 중요한 딕셔너리라고 볼 수 있습니다.

 

 

정리

지금까지 포트폴리오 파일을 읽고, 각 종목당 화면 번호를 세팅하는 방법에 대해서 알아 보았습니다. 이제, 우리는 드디어 주식을 매매할 수 있는 준비가 되었습니다. 다음 시간부터는 실시간 매매하는 방법을 다뤄보곘습니다.

 

(2021-09-30) 파이썬을 활용한 키움증권 주식자동매매 프로그램 개발 계획은 중단되었습니다. 현재 스프링을 활용한 업비트 자동 매매 프로그램 개발 계획을 구상 중에 있습니다. 계속해서 키움증권 주식자동매매 프로그램을 개발하고 싶으신 분은 프로그램 동산(장용준)님이 집필하신 '손가락 하나 까딱하지 않는 주식 거래 시스템 구축' 교재를 참고하시길 바랍니다.

댓글

추천 글