PYTHON/Kiwoom Open API

키움증권 Open API - 관심종목 관리하기 (1)

  • -

 

결론부터 이야기하자면 현재 키움증권 Open API 내에서는 관심종목을 관리할 수 있는 함수를 제공하지 않고 있다. 물론 KOA Studio에서 관심종목을 검색해보면   [OPTKWFID : 관심종목정보요청]  이라는 TR 목록이 존재하지만 이는 우리가 흔히 알고 있는 그 관심종목이 아니다.

코드를 통해 조회할 수 있는   [관심종목정보요청]  은 단순하게 해당 종목에 대한 정보를 요청하고 데이터를 받아오는 것 그 이상도 이하도 아닌 기능이다. 그렇다면 우리가 필요한 관심종목이라는 기능을 어떻게 구현할 수 있을까?

 

데이터베이스 활용하기

제목에서 알 수 있듯이, 데이터베이스를 활용하는 방법밖엔 없다. 이 과정에서 중요한 건 계좌 잔고에 대한 데이터도 함께 구축해주어야 한다는 것이다. 단순하게 주가 차트를 조회할 수 있게 지원해주었던 함수가 있던 때와 비교해보면 생각보다 상당히 복잡하고 어려운 절차에 속한다. 데이터베이스가 아닌 다른 방법을 활용할 수 있다면 그 방법을 댓글로 알려주셨으면 좋겠다.

일단 본인이 직접 프로그래밍을 하면서 겪은 키움증권 Open API의 문제점은 다음과 같다.

  • 관심종목에 종목을 추가하고 제거할 수 있는 함수가 없음
  • 데이터를 조회하는 데에 너무 많은 시간이 소요됨

이 문제점 하나 하나 해결 방법에 대해 살펴보면 아래와 같이 정리할 수 있다.

 

문제점 ①. 관심종목 화면[0130]을 컨트롤 할 수 있는 함수의 부재

이로 인해 등장한 해결 방법이 바로 데이터베이스를 생성해서 관심종목 화면[0130]과 같은 역할을 수행하도록 하는 것이다. 데이터의 실시간 입력은 물론 정해진 시간마다 데이터를 업데이트하도록 설정할 수 있다. 다만 관심종목 DB 내에 많은 데이터를 담아두고자 할수록 코드는 복잡해지고 본인의 머리 속도 엉켜들어갈 것이다.

 

문제점 ②. 데이터를 조회하는 데에 소요되는 막대한 시간

기본적으로 코딩을 통해 본인이 사전에 설정한 기준에 알맞은 종목을 찾아내기 위해서는 반드시 주식시장에 상장된 모든 종목에 대한 차트 데이터를 조회하고 저장한 후에, 그 차트 데이터를 기반으로 조건에 적합한지를 한 종목 한 종목 돌려보면서 종목을 선정하는 수밖에 없다. 현재 상장된 종목의 수는 약 2,300여개로 상당히 많은데, 상장일이 1900년대인 경우에는 그 데이터가 얼마나 방대한지 생각해보면 모든 종목에 대해 매일매일 주가 데이터를 조회하고 저장하고 종목을 선정해내는 것 자체가 상당히 어려운 일이다.

따라서 이 문제는 키움증권에서 제공하는 조건검색식[0151]을 통해 종목을 1차적으로 선정해낸 후, 해당 종목을 한정적으로 계산에 필요한 데이터를 받은 후에 거래 여부를 결정지어야 한다. 이 조건검색식[0151]을 통해 선정된 종목 코드를 조회하는 것은 크게 어렵지 않고 시간도 짧다. 여기서의 문제점 역시 해당 종목 코드를 대상으로 차트 데이터를 조회할 때 많은 시간이 소요된다는 것이다. 따라서 조건검색식을 통해 종목을 선정할 때 최대한 많은 조건을 대입하여 데이터 조회에 소요되는 시간을 일차적으로나마 최대한 단축시켜주어야 한다.

 

다음 포스팅에서부터 문제점을 해결하는 해결 방안을 하나하나 알아보도록 하자.

 

 


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.