OpenAPI
-
한 종목에 대해 일봉, 3분봉, 15분봉 모든 데이터에 대해 데이터를 조회하고 pandas 라이브러리의 to_sql 메서드를 통해 데이터를 저장한다고 했을 때, 어떠한 값으로 설정해야 하는지 의문이 들어 직접 비교해봤다. 비교 대상은 차트 데이터 조회 중에 걸어둔 time.sleep() 내에 들어가는 시간과 해당 차트 데이터를 조회하는 데에 소요되는 시간으로, 차트 데이터를 조회하면서 '과다 조회 오류'가 발생하기 전까지 조회할 수 있었던 종목의 개수와 소요된 시간 및 종목당 소요된 시간을 비교하는 것이다. [참고 게시글] [실험 조건] 1. 일봉, 3분봉, 15분봉을 기준으로 상장기준일 이후의 모든 차트 데이터를 조회한다. 2. 일봉 데이터는 일반적인 차트 데이터 조회가 아닌 GetCommDataEx(..
키움증권 Open API 시간 간격 설정하기한 종목에 대해 일봉, 3분봉, 15분봉 모든 데이터에 대해 데이터를 조회하고 pandas 라이브러리의 to_sql 메서드를 통해 데이터를 저장한다고 했을 때, 어떠한 값으로 설정해야 하는지 의문이 들어 직접 비교해봤다. 비교 대상은 차트 데이터 조회 중에 걸어둔 time.sleep() 내에 들어가는 시간과 해당 차트 데이터를 조회하는 데에 소요되는 시간으로, 차트 데이터를 조회하면서 '과다 조회 오류'가 발생하기 전까지 조회할 수 있었던 종목의 개수와 소요된 시간 및 종목당 소요된 시간을 비교하는 것이다. [참고 게시글] [실험 조건] 1. 일봉, 3분봉, 15분봉을 기준으로 상장기준일 이후의 모든 차트 데이터를 조회한다. 2. 일봉 데이터는 일반적인 차트 데이터 조회가 아닌 GetCommDataEx(..
2023.11.26 -
키움증권에서 제공하는 개발 가이드 내 실시간 데이터 FID 리스트를 살펴보면 여러 가지 FID들이 제공되고 있지만, 8.19 주문 체결과 8.20 잔고는 OnReceiveRealData 이벤트가 아닌 OnReceiveChejanData 내에서 처리해야한다. OnRecieveChejanData 이벤트 처리하기 이 부분은 여타 이벤트 처리 방법과 크게 다르지 않다. 키움증권 내에서 발생하는 이벤트는 아래의 7가지로, 그 외에 발생하는 이벤트는 존재하지 않는다. 따라서 아래 7개의 이벤트만 실행할 함수와 연결해주면 된다. self.kiwoom.OnReceiveTrData.connect(self.receive_trdata) self.kiwoom.OnReceiveRealData.connect(self.receiv..
키움증권 Open API - 체결 데이터 및 잔고 관리하기 (1)키움증권에서 제공하는 개발 가이드 내 실시간 데이터 FID 리스트를 살펴보면 여러 가지 FID들이 제공되고 있지만, 8.19 주문 체결과 8.20 잔고는 OnReceiveRealData 이벤트가 아닌 OnReceiveChejanData 내에서 처리해야한다. OnRecieveChejanData 이벤트 처리하기 이 부분은 여타 이벤트 처리 방법과 크게 다르지 않다. 키움증권 내에서 발생하는 이벤트는 아래의 7가지로, 그 외에 발생하는 이벤트는 존재하지 않는다. 따라서 아래 7개의 이벤트만 실행할 함수와 연결해주면 된다. self.kiwoom.OnReceiveTrData.connect(self.receive_trdata) self.kiwoom.OnReceiveRealData.connect(self.receiv..
2022.05.24 -
지난 게시글에서 언급했듯, 이번 글에서는 개별적 문제점들에 대한 해결 방법을 살펴볼 예정이다. 다만 문제점 ①이 아닌 문제점 ②를 먼저 다룰 예정인데, 이렇게 해야 수순이 맞다. 왜냐하면 관심종목이라는 역할을 수행할 수 있는 데이터베이스를 생성하기 위해서는 일단 대입할 종목코드 리스트가 필요한데, 그 종목코드 리스트는 조건검색식[0151]을 통해야 보다 수월하게 데이터를 조회할 수 있기 때문이다. 키움증권 상에서 조건검색식을 만드는 방법에 대해서는 여타 다른 게시글에서 충분히 설명하고 있으니 검색해서 보시길 바란다. 본격적인 설명에 앞서 영웅문 내에서 설정한 조건검색식의 조건을 바탕으로 선정된 종목을 살펴보도록 하겠다. A : [골든 크로스] 10일 이동평균선이 20일 이동평균선을 D : [골든 크로스]..
키움증권 Open API - 관심종목 관리하기 (2)지난 게시글에서 언급했듯, 이번 글에서는 개별적 문제점들에 대한 해결 방법을 살펴볼 예정이다. 다만 문제점 ①이 아닌 문제점 ②를 먼저 다룰 예정인데, 이렇게 해야 수순이 맞다. 왜냐하면 관심종목이라는 역할을 수행할 수 있는 데이터베이스를 생성하기 위해서는 일단 대입할 종목코드 리스트가 필요한데, 그 종목코드 리스트는 조건검색식[0151]을 통해야 보다 수월하게 데이터를 조회할 수 있기 때문이다. 키움증권 상에서 조건검색식을 만드는 방법에 대해서는 여타 다른 게시글에서 충분히 설명하고 있으니 검색해서 보시길 바란다. 본격적인 설명에 앞서 영웅문 내에서 설정한 조건검색식의 조건을 바탕으로 선정된 종목을 살펴보도록 하겠다. A : [골든 크로스] 10일 이동평균선이 20일 이동평균선을 D : [골든 크로스]..
2022.03.12 -
결론부터 이야기하자면 현재 키움증권 Open API 내에서는 관심종목을 관리할 수 있는 함수를 제공하지 않고 있다. 물론 KOA Studio에서 관심종목을 검색해보면 [OPTKWFID : 관심종목정보요청] 이라는 TR 목록이 존재하지만 이는 우리가 흔히 알고 있는 그 관심종목이 아니다. 코드를 통해 조회할 수 있는 [관심종목정보요청] 은 단순하게 해당 종목에 대한 정보를 요청하고 데이터를 받아오는 것 그 이상도 이하도 아닌 기능이다. 그렇다면 우리가 필요한 관심종목이라는 기능을 어떻게 구현할 수 있을까? 데이터베이스 활용하기 제목에서 알 수 있듯이, 데이터베이스를 활용하는 방법밖엔 없다. 이 과정에서 중요한 건 계좌 잔고에 대한 데이터도 함께 구축해주어야 한다는 것이다. 단순하게 주가 차트를 조회할 수 ..
키움증권 Open API - 관심종목 관리하기 (1)결론부터 이야기하자면 현재 키움증권 Open API 내에서는 관심종목을 관리할 수 있는 함수를 제공하지 않고 있다. 물론 KOA Studio에서 관심종목을 검색해보면 [OPTKWFID : 관심종목정보요청] 이라는 TR 목록이 존재하지만 이는 우리가 흔히 알고 있는 그 관심종목이 아니다. 코드를 통해 조회할 수 있는 [관심종목정보요청] 은 단순하게 해당 종목에 대한 정보를 요청하고 데이터를 받아오는 것 그 이상도 이하도 아닌 기능이다. 그렇다면 우리가 필요한 관심종목이라는 기능을 어떻게 구현할 수 있을까? 데이터베이스 활용하기 제목에서 알 수 있듯이, 데이터베이스를 활용하는 방법밖엔 없다. 이 과정에서 중요한 건 계좌 잔고에 대한 데이터도 함께 구축해주어야 한다는 것이다. 단순하게 주가 차트를 조회할 수 ..
2022.03.12 -
지난 게시글에서는 filtered_code() 함수를 통해 불러온 종목 코드들을 바탕으로 전체 종목의 일봉 차트 데이터를 조회하는 부분까지 알아봤다. 이번 게시글에서 알아볼 내용은 바로 차트 데이터를 DB에 저장하고 그를 어떻게 관리해야 하는지 등에 대한 방법론적인 부분에 대해 다루어볼 예정이다. 차트 데이터 DB에 저장하기 지난 시간에 제작했던 코드를 보면 for code in code_list:라고 제작한 부분이 있는데, 이는 code_list 안에 있는 ['000020', '000040', '000050' ···]와 같은 값들 중에서 code = '000020'이라는 가정 하에 코드를 실행하고, 그 다음 번 반복에서는 code = '000040'이라는 가정 하에 코드를 실행하는 방식으로 동작한다. ..
키움증권 Open API - 차트 데이터 관리 DB 제작 (1)지난 게시글에서는 filtered_code() 함수를 통해 불러온 종목 코드들을 바탕으로 전체 종목의 일봉 차트 데이터를 조회하는 부분까지 알아봤다. 이번 게시글에서 알아볼 내용은 바로 차트 데이터를 DB에 저장하고 그를 어떻게 관리해야 하는지 등에 대한 방법론적인 부분에 대해 다루어볼 예정이다. 차트 데이터 DB에 저장하기 지난 시간에 제작했던 코드를 보면 for code in code_list:라고 제작한 부분이 있는데, 이는 code_list 안에 있는 ['000020', '000040', '000050' ···]와 같은 값들 중에서 code = '000020'이라는 가정 하에 코드를 실행하고, 그 다음 번 반복에서는 code = '000040'이라는 가정 하에 코드를 실행하는 방식으로 동작한다. ..
2021.06.08 -
사실 지난 포스팅들을 바탕으로 대부분의 이벤트 처리가 가능하고 본인 역시 스스로 제작해보길 바라는 마음을 갖고 있긴 하지만 사실 또 제작하다가 오류가 발생했는데 어디서 오류가 발생한 건지, 어떻게 제작하는 것이 올바르게 작동하는 것인지 잘 모를 때에는 누군가의 도움이 필요하기 때문에 이번 포스팅도 제작하게 되었다. 차트 데이터 요청 함수 제작하기 앞전 포스팅에서 제작했던 일봉 차트의 경우에는 def rq_chart_data로 제작했으나 분봉은 일봉과는 다른 값을 전송해야 하기 때문에 분봉 차트 조회는 별도의 함수를 제작함으로써 조회 요청을 할 수 있다. 즉 일봉 차트 조회의 경우에는 종목코드, 기준일자, 수정주가구분을 입력했지만 분봉 차트 조회의 경우에는 종목코드, 틱범위, 수정주가구분을 입력해주어야 한..
키움증권 Open API - 3분봉 차트 조회사실 지난 포스팅들을 바탕으로 대부분의 이벤트 처리가 가능하고 본인 역시 스스로 제작해보길 바라는 마음을 갖고 있긴 하지만 사실 또 제작하다가 오류가 발생했는데 어디서 오류가 발생한 건지, 어떻게 제작하는 것이 올바르게 작동하는 것인지 잘 모를 때에는 누군가의 도움이 필요하기 때문에 이번 포스팅도 제작하게 되었다. 차트 데이터 요청 함수 제작하기 앞전 포스팅에서 제작했던 일봉 차트의 경우에는 def rq_chart_data로 제작했으나 분봉은 일봉과는 다른 값을 전송해야 하기 때문에 분봉 차트 조회는 별도의 함수를 제작함으로써 조회 요청을 할 수 있다. 즉 일봉 차트 조회의 경우에는 종목코드, 기준일자, 수정주가구분을 입력했지만 분봉 차트 조회의 경우에는 종목코드, 틱범위, 수정주가구분을 입력해주어야 한..
2021.06.07 -
이번 포스팅에서는 영웅문 내에서 설정된 조건검색식을 Open API와 연결된 파이썬을 통해 불러오고, 그를 바탕으로 검색된 종목의 종목코드를 출력하는 방법에 대해 서술하고자 한다. 조건검색식을 사용하면 편한 이유는 파이썬 내에서 특정 조건들을 만들어내지 않아도 된다는 것이다. 즉, 특정 조건에 알맞은 종목을 검색하는 데에 필요한 조건들을 만드는 것이 파이썬 내에 구축하는 것보다 차라리 영웅문 내의 조건검색 화면 내에서 구축하는 것이 백배 천배는 편하다는 것이다. 그러면 왜 굳이 파이썬으로 이러고 앉아있냐는 의문이 들 수 있는데, 그 이유는 영웅문 내에서 제공하지 않는 분석 조건들을 파이썬에서는 구축할 수 있기 때문이다. 물론 이 방법은 영웅문 내에 조건검색식이 구축되어 있지 않다면 사용할 수 없다. 왜냐..
키움증권 Open API - 조건 검색식 불러오기이번 포스팅에서는 영웅문 내에서 설정된 조건검색식을 Open API와 연결된 파이썬을 통해 불러오고, 그를 바탕으로 검색된 종목의 종목코드를 출력하는 방법에 대해 서술하고자 한다. 조건검색식을 사용하면 편한 이유는 파이썬 내에서 특정 조건들을 만들어내지 않아도 된다는 것이다. 즉, 특정 조건에 알맞은 종목을 검색하는 데에 필요한 조건들을 만드는 것이 파이썬 내에 구축하는 것보다 차라리 영웅문 내의 조건검색 화면 내에서 구축하는 것이 백배 천배는 편하다는 것이다. 그러면 왜 굳이 파이썬으로 이러고 앉아있냐는 의문이 들 수 있는데, 그 이유는 영웅문 내에서 제공하지 않는 분석 조건들을 파이썬에서는 구축할 수 있기 때문이다. 물론 이 방법은 영웅문 내에 조건검색식이 구축되어 있지 않다면 사용할 수 없다. 왜냐..
2021.06.01 -
지난 게시글에서 서버에 데이터를 요청하고 그 결과값을 받아오는 부분까지 코드를 제작했고, 이번 포스팅에서는 추가로 조회할 데이터가 남아 있다면 그 데이터를 어떻게 받아올 것인지에 대한 코드를 제작해보도록 하자. 일단 지난 포스팅에서 결과물이 깔끔하게 나오긴 했지만 사실 글을 업로드한 후에 요청 횟수당 600회를 불러올 수 있다는 점과 OnReceiveTrData 내에도 이벤트 루프를 종료하는 코드를 제작해주어야 연속 조회가 가능하다는 점을 깜빡하고 그 내용을 함께 소개하지 못했다. 그래서 이번에는 한 번의 조회로 총 600개의 데이터를 가져오는 것을 먼저 구축한 후 남아 있는 데이터가 있다면 그 데이터도 불러오도록(이하 연속조회) 하는 구조를 구축하도록 하겠다. OnReceiveTrData : "나도 이..
키움증권 Open API 차트 데이터 불러오기 (3)지난 게시글에서 서버에 데이터를 요청하고 그 결과값을 받아오는 부분까지 코드를 제작했고, 이번 포스팅에서는 추가로 조회할 데이터가 남아 있다면 그 데이터를 어떻게 받아올 것인지에 대한 코드를 제작해보도록 하자. 일단 지난 포스팅에서 결과물이 깔끔하게 나오긴 했지만 사실 글을 업로드한 후에 요청 횟수당 600회를 불러올 수 있다는 점과 OnReceiveTrData 내에도 이벤트 루프를 종료하는 코드를 제작해주어야 연속 조회가 가능하다는 점을 깜빡하고 그 내용을 함께 소개하지 못했다. 그래서 이번에는 한 번의 조회로 총 600개의 데이터를 가져오는 것을 먼저 구축한 후 남아 있는 데이터가 있다면 그 데이터도 불러오도록(이하 연속조회) 하는 구조를 구축하도록 하겠다. OnReceiveTrData : "나도 이..
2021.05.31 -
키움증권에서는 자사의 Open API의 사용 방법에 대해 기본적인 가이드 자료를 제공하고 있다. 다만 기본적으로 제공하는 함수의 형태가 파이썬에서 사용하기가 다소 어려운 형태로 되어 있기 때문에, 개발 가이드를 본다고 하더라도 어떻게 사용해야 할지 잘 모르는 경우가 태반이다. 따라서 해당 포스팅에서는 개발 가이드를 어떻게 활용할 수 있는지, 그리고 어떤 함수는 개별적으로 작동하고 어떤 함수는 다른 함수와 함께 사용되는지에 대해 정리해보고자 한다. TR 관련 함수 TR 관련 함수란 개발 가이드 자료 중 [5.4 OpenAPI 컨트롤 이벤트] 항목 안에 있는 함수로, 총 8가지의 함수를 제공하고 있다. 또한 이에 대해 "차트 컨트롤에서 발생하는 컨트롤 이벤트 목록은 다음과 같다."고 설명하고 있는데, 솔직히..
키움증권 Open API 개발 가이드 사용 설명서 (1)키움증권에서는 자사의 Open API의 사용 방법에 대해 기본적인 가이드 자료를 제공하고 있다. 다만 기본적으로 제공하는 함수의 형태가 파이썬에서 사용하기가 다소 어려운 형태로 되어 있기 때문에, 개발 가이드를 본다고 하더라도 어떻게 사용해야 할지 잘 모르는 경우가 태반이다. 따라서 해당 포스팅에서는 개발 가이드를 어떻게 활용할 수 있는지, 그리고 어떤 함수는 개별적으로 작동하고 어떤 함수는 다른 함수와 함께 사용되는지에 대해 정리해보고자 한다. TR 관련 함수 TR 관련 함수란 개발 가이드 자료 중 [5.4 OpenAPI 컨트롤 이벤트] 항목 안에 있는 함수로, 총 8가지의 함수를 제공하고 있다. 또한 이에 대해 "차트 컨트롤에서 발생하는 컨트롤 이벤트 목록은 다음과 같다."고 설명하고 있는데, 솔직히..
2021.05.22