open api
-
코드 구축 목표기작업한 차트 조회 함수들을 별도의 클래스로 생성메인으로 작업할 클래스에서 해당 클래스 호출하여 차트 조회해보기지난 두 번의 게시글에서 일봉, 주봉, 월봉, 분봉 차트 데이터를 조회하는 방법에 대해 살펴보았다. 이제 슬슬 하나의 파일 안에서 모든 코드를 제작하다 보니 코드가 관리하기 어려워지는 게 와닿을 것이다. 그래서 이번에는 새로운 폴더를 만들어서 그 안에 새롭게 파일을 생성하고, 파일 별로 하나의 클래스를 만들어서 아예 분리된 캡슐화 작업을 할 예정이다.일단 우리가 작업하고 있는 trade_cybos 프로젝트(폴더) 안에 COM이라는 이름을 가진 폴더를 생성한 후, CpSysDib.py 파일을 생성해주도록 하자. 앞으로 COM과 관련된 내용들은 모두 COM이라는 폴더 안에 기능을 구현..
대신증권 CYBOS PLUS 시작하기 (7) - 차트조회 클래스 생성하기코드 구축 목표기작업한 차트 조회 함수들을 별도의 클래스로 생성메인으로 작업할 클래스에서 해당 클래스 호출하여 차트 조회해보기지난 두 번의 게시글에서 일봉, 주봉, 월봉, 분봉 차트 데이터를 조회하는 방법에 대해 살펴보았다. 이제 슬슬 하나의 파일 안에서 모든 코드를 제작하다 보니 코드가 관리하기 어려워지는 게 와닿을 것이다. 그래서 이번에는 새로운 폴더를 만들어서 그 안에 새롭게 파일을 생성하고, 파일 별로 하나의 클래스를 만들어서 아예 분리된 캡슐화 작업을 할 예정이다.일단 우리가 작업하고 있는 trade_cybos 프로젝트(폴더) 안에 COM이라는 이름을 가진 폴더를 생성한 후, CpSysDib.py 파일을 생성해주도록 하자. 앞으로 COM과 관련된 내용들은 모두 COM이라는 폴더 안에 기능을 구현..
2024.08.04 -
학습 목표차트를 조회하는 여러 가지 방법하나의 함수로 분봉부터 일봉 주봉 월봉까지 모두 다 해결할 수 있을까 ?분봉 차트 데이터 조회하기지난 게시글에서 일봉 차트 데이터를 조회하는 방법에 대하여 살펴봤었는데, 사실 분봉 차트 데이터를 조회하는 방법도 숙지하고 있어야 한다. 간단하게 결론부터 설명하자면 분봉 차트 데이터는 `SetInputValue(6, ord("D"))` 부분에 있는 "D"를 "m"으로 변경해주기만 하면 되고, 주봉은 "W"로, 월봉은 "M"으로 변경해주면 된다. 각각 Day, min, Week, Month의 약자이므로 이 부분은 크게 어렵지 않다. 다만 요청하고자 하는 데이터의 형태에 따라 각기 다른 형태의 데이터를 전달받아야 한다는 점이 문제이다. 즉, 분봉 차트 데이터를 요청할 경우..
대신증권 CYBOS PLUS 시작하기 (6) - 분봉차트 데이터 조회하기학습 목표차트를 조회하는 여러 가지 방법하나의 함수로 분봉부터 일봉 주봉 월봉까지 모두 다 해결할 수 있을까 ?분봉 차트 데이터 조회하기지난 게시글에서 일봉 차트 데이터를 조회하는 방법에 대하여 살펴봤었는데, 사실 분봉 차트 데이터를 조회하는 방법도 숙지하고 있어야 한다. 간단하게 결론부터 설명하자면 분봉 차트 데이터는 `SetInputValue(6, ord("D"))` 부분에 있는 "D"를 "m"으로 변경해주기만 하면 되고, 주봉은 "W"로, 월봉은 "M"으로 변경해주면 된다. 각각 Day, min, Week, Month의 약자이므로 이 부분은 크게 어렵지 않다. 다만 요청하고자 하는 데이터의 형태에 따라 각기 다른 형태의 데이터를 전달받아야 한다는 점이 문제이다. 즉, 분봉 차트 데이터를 요청할 경우..
2024.08.04 -
학습 목표차트 데이터 조회 시 전달해야 하는 인자 목록차트 데이터 조회 시 데이터 수신 방법차트 데이터 조회 함수 캡슐화앞전 게시글에서 현재가를 조회하는 모듈(`Dscbo1.StockMst`)을 살펴보았고, 그 사용 방법에 대해서도 간략하게 살펴보았다. 사실 이쯤 되면 대신증권 홈페이지에 있는 도움말만 보고도 스스로 해당 함수의 기능을 구현할 수 있을 정도로 간단한 방식으로 동작한다는 것을 알게 되었을 것이다. 다만 차트 데이터를 조회하는 모듈(`CpSysDib.StockChart`)의 경우에는 데이터를 요청한 후 반환받는 함수인 `GetHeaderValue()` 뿐만 아니라 `GetDataValue()` 함수를 사용해야 한다는 점에서 현재가를 조회하는 모듈과는 다소 다른 방법으로 동작하는 것처럼 보일 ..
대신증권 CYBOS PLUS 시작하기 (5) - 일봉차트 데이터 조회하기학습 목표차트 데이터 조회 시 전달해야 하는 인자 목록차트 데이터 조회 시 데이터 수신 방법차트 데이터 조회 함수 캡슐화앞전 게시글에서 현재가를 조회하는 모듈(`Dscbo1.StockMst`)을 살펴보았고, 그 사용 방법에 대해서도 간략하게 살펴보았다. 사실 이쯤 되면 대신증권 홈페이지에 있는 도움말만 보고도 스스로 해당 함수의 기능을 구현할 수 있을 정도로 간단한 방식으로 동작한다는 것을 알게 되었을 것이다. 다만 차트 데이터를 조회하는 모듈(`CpSysDib.StockChart`)의 경우에는 데이터를 요청한 후 반환받는 함수인 `GetHeaderValue()` 뿐만 아니라 `GetDataValue()` 함수를 사용해야 한다는 점에서 현재가를 조회하는 모듈과는 다소 다른 방법으로 동작하는 것처럼 보일 ..
2024.08.04 -
학습 목표현재가 조회 함수 사용해보기현재가 조회 함수 캡슐화대신증권의 홈페이지에 따르면, CYBOS PLUS에서 현재가를 조회할 수 있는 함수(=오브젝트)는 `StockMst()`이다. 이번 게시글에서는 `StockMst()` 오브젝트를 포함하는 함수를 구현하고, 더 나아가 우리가 해당 함수의 인자(=parameter)로 종목코드만 전달해주면 그 종목의 현재가를 반환해주도록 하나의 캡슐 함수를 제작할 예정이다. (1) 현재가 조회 모듈의 인스턴스 생성하기현재가를 조회하는 함수를 제작하기 전에 앞서, 이전 게시글에서 살펴봤던 것과 같이 현재가를 조회하는 모듈의 인스턴스를 생성해주어야 한다. 이 모듈의 이름은 아래의 이미지와 같이 대신증권 도움말을 보면 어렵지 않게 확인할 수 있다. 아래 이미지에서 주황색..
대신증권 CYBOS PLUS 시작하기 (4) - 특정종목 현재가 조회하기학습 목표현재가 조회 함수 사용해보기현재가 조회 함수 캡슐화대신증권의 홈페이지에 따르면, CYBOS PLUS에서 현재가를 조회할 수 있는 함수(=오브젝트)는 `StockMst()`이다. 이번 게시글에서는 `StockMst()` 오브젝트를 포함하는 함수를 구현하고, 더 나아가 우리가 해당 함수의 인자(=parameter)로 종목코드만 전달해주면 그 종목의 현재가를 반환해주도록 하나의 캡슐 함수를 제작할 예정이다. (1) 현재가 조회 모듈의 인스턴스 생성하기현재가를 조회하는 함수를 제작하기 전에 앞서, 이전 게시글에서 살펴봤던 것과 같이 현재가를 조회하는 모듈의 인스턴스를 생성해주어야 한다. 이 모듈의 이름은 아래의 이미지와 같이 대신증권 도움말을 보면 어렵지 않게 확인할 수 있다. 아래 이미지에서 주황색..
2024.08.03 -
증권사를 옮기게 된 배경나는 원래는 키움증권 영웅문을 애용해왔었는데, 도저히 못쓰겠다 싶어서 이번에는 증권사 이전을 결심했다. 잘 돌아가던 프로그램은 고사하고, 관련 데이터를 구축하거나 하는 데에 있어서 여러 가지 오류들(특히 TR 회신과 관련된 제한)이 많았기 때문이다.사실 오류로 인해서 시스템 전체를 들어내고 다른 증권사를 이용하는 데에 있어서 무엇보다도 걱정됐던 부분은 단 하나, '여태까지 만들었던 것들을 싹다 옮기는 걸 할 수 있을까'하는 걱정이었다. 그럼에도 증권사를 옮기고자 하는 데에 큰 결심을 내릴 수 있었던 이유는 '증권사 거래 수수료 혜택'도 있기 때문이었다. 키움증권은 현재 매수도 모두 0.015%를 내면서 거래하고 있는데, 대신증권에서는 이벤트를 진행하고 있고 첫 한 달만 무료긴 하지..
대신증권 CYBOS PLUS 설치기 (1) - 난 증권사를 옮기겠다.증권사를 옮기게 된 배경나는 원래는 키움증권 영웅문을 애용해왔었는데, 도저히 못쓰겠다 싶어서 이번에는 증권사 이전을 결심했다. 잘 돌아가던 프로그램은 고사하고, 관련 데이터를 구축하거나 하는 데에 있어서 여러 가지 오류들(특히 TR 회신과 관련된 제한)이 많았기 때문이다.사실 오류로 인해서 시스템 전체를 들어내고 다른 증권사를 이용하는 데에 있어서 무엇보다도 걱정됐던 부분은 단 하나, '여태까지 만들었던 것들을 싹다 옮기는 걸 할 수 있을까'하는 걱정이었다. 그럼에도 증권사를 옮기고자 하는 데에 큰 결심을 내릴 수 있었던 이유는 '증권사 거래 수수료 혜택'도 있기 때문이었다. 키움증권은 현재 매수도 모두 0.015%를 내면서 거래하고 있는데, 대신증권에서는 이벤트를 진행하고 있고 첫 한 달만 무료긴 하지..
2024.07.14 -
※ 키움증권 설명서에서 이야기하는 trcode란 Transaction Code의 약칭입니다. ※ 각 Transaction Code(또는 Tr 이름) 클릭 시 사용 방법 링크로 연결됩니다. ※ [call real]은 실시간 데이터를 발생시킴을 의미합니다. ※ 선물옵션 및 지수 관련 데이터는 추후 업데이트 예정입니다. ※ 모든 Transaction Code를 사용하기 위해서는 반드시 이벤트 처리를 해주어야 합니다. ※ 모든 데이터는 멀티 데이터 기반이나, 싱글 데이터와 멀티 데이터가 구분되어 표기된 trcode는 getrepeatcnt()를 사용 이벤트 처리 관련 게시글 바로가기 조건검색식 관련 게시글 바로가기 파이썬 동작 bit 확인 관련 게시글 바로가기 GetRepeatCnt() 함수 사용 바로가기 데이..
키움증권 TR 코드 및 사용 방법 총 정리※ 키움증권 설명서에서 이야기하는 trcode란 Transaction Code의 약칭입니다. ※ 각 Transaction Code(또는 Tr 이름) 클릭 시 사용 방법 링크로 연결됩니다. ※ [call real]은 실시간 데이터를 발생시킴을 의미합니다. ※ 선물옵션 및 지수 관련 데이터는 추후 업데이트 예정입니다. ※ 모든 Transaction Code를 사용하기 위해서는 반드시 이벤트 처리를 해주어야 합니다. ※ 모든 데이터는 멀티 데이터 기반이나, 싱글 데이터와 멀티 데이터가 구분되어 표기된 trcode는 getrepeatcnt()를 사용 이벤트 처리 관련 게시글 바로가기 조건검색식 관련 게시글 바로가기 파이썬 동작 bit 확인 관련 게시글 바로가기 GetRepeatCnt() 함수 사용 바로가기 데이..
2022.02.09 -
결론부터 말하자면, 현재 키움증권 Open API 내에서는 관심종목을 불러오는 코드를 지원하지 않고 있다. 개발가이드 상에서는 CommKwRqData 함수를 통해 '주식 관심종목정보'를 불러올 수 있다고 하지만, 여기서 이야기하는 관심종목은 영웅문 내에서 이용하는 '관심종목'과는 전혀 다른 것이다. 해당 코드의 동작 결과를 사전에 확인할 수 있는 KOS Studio를 통해 CommKwRqData를 실행해봐도 그 결과값으로 관심종목 내에 있는 종목 코드를 반환하는 것이 아니라 그냥 그 종목에 대한 정보만을 반환하고 있다. CommKwRqData("종목코드", "연속조회여부", "조회종목개수", "0", "RQName", "화면번호"); CommKwRqData("03940;023590", "연속조회여부", ..
키움증권 Open API 관심종목 불러오기(불가능)결론부터 말하자면, 현재 키움증권 Open API 내에서는 관심종목을 불러오는 코드를 지원하지 않고 있다. 개발가이드 상에서는 CommKwRqData 함수를 통해 '주식 관심종목정보'를 불러올 수 있다고 하지만, 여기서 이야기하는 관심종목은 영웅문 내에서 이용하는 '관심종목'과는 전혀 다른 것이다. 해당 코드의 동작 결과를 사전에 확인할 수 있는 KOS Studio를 통해 CommKwRqData를 실행해봐도 그 결과값으로 관심종목 내에 있는 종목 코드를 반환하는 것이 아니라 그냥 그 종목에 대한 정보만을 반환하고 있다. CommKwRqData("종목코드", "연속조회여부", "조회종목개수", "0", "RQName", "화면번호"); CommKwRqData("03940;023590", "연속조회여부", ..
2021.12.20 -
지난 게시글에서는 특정 종목의 종목코드가 if_savepoint 데이터베이스 안에 저장되어 있는지를 판단하는 코드를 제작하였고, 이번 게시글에서 if문과 else문 아래 부분의 코드 제작을 마무리할 예정이다. if문은 filtered_code 안에 있는 종목이 item_savepoint 데이터베이스 안에 있는 경우이고, else문은 반대로 filtered_code안에는 있지만 item_savepoint 데이터베이스 안에는 없는 종목이다. 해당 종목의 날짜 불러오기 일단 filtered_code() 안에 있는 종목이 item_savepoint 데이터베이스에 있는 경우에는 해당 종목 코드와 함께 저장된 저장 일자를 불러와야 한다. 그러기 위해서는 SELECT 명령어와 WHERE 명령어를 함께 사용해서 불러와..
키움증권 Open API - 차트 데이터 이어서 조회하기 (2)지난 게시글에서는 특정 종목의 종목코드가 if_savepoint 데이터베이스 안에 저장되어 있는지를 판단하는 코드를 제작하였고, 이번 게시글에서 if문과 else문 아래 부분의 코드 제작을 마무리할 예정이다. if문은 filtered_code 안에 있는 종목이 item_savepoint 데이터베이스 안에 있는 경우이고, else문은 반대로 filtered_code안에는 있지만 item_savepoint 데이터베이스 안에는 없는 종목이다. 해당 종목의 날짜 불러오기 일단 filtered_code() 안에 있는 종목이 item_savepoint 데이터베이스에 있는 경우에는 해당 종목 코드와 함께 저장된 저장 일자를 불러와야 한다. 그러기 위해서는 SELECT 명령어와 WHERE 명령어를 함께 사용해서 불러와..
2021.06.09 -
이번 게시글에서 다룰 내용은 반드시 데이터베이스가 구축이 되어 있어야만 이어서 조회하는 것이 가능하다. 아직 데이터베이스를 구축하지 않았다면 반드시 이전 게시글을 보면서 차트 데이터 조회를 관리하기 위한 데이터베이스를 구축하고 넘어와야만 이번 게시글을 이해하고 따라갈 수 있다. 키움증권 Open API - 차트 데이터 관리 DB 제작 (2) 지난 게시글에서 item_savepoint라는 데이터베이스 안에 item_savepoint라는 테이블을 생성한 채로 마무리했으니 이번 게시글에서는 그 내용에 이어서 item_savepoint라는 테이블 안에 종목 코드들을 입력 trustyou.tistory.com item_savepoint 데이터베이스 불러오기 본격적인 내용을 시작하기 전에 앞서, 기본적으로 우리가 ..
키움증권 Open API - 차트 데이터 이어서 조회하기 (1)이번 게시글에서 다룰 내용은 반드시 데이터베이스가 구축이 되어 있어야만 이어서 조회하는 것이 가능하다. 아직 데이터베이스를 구축하지 않았다면 반드시 이전 게시글을 보면서 차트 데이터 조회를 관리하기 위한 데이터베이스를 구축하고 넘어와야만 이번 게시글을 이해하고 따라갈 수 있다. 키움증권 Open API - 차트 데이터 관리 DB 제작 (2) 지난 게시글에서 item_savepoint라는 데이터베이스 안에 item_savepoint라는 테이블을 생성한 채로 마무리했으니 이번 게시글에서는 그 내용에 이어서 item_savepoint라는 테이블 안에 종목 코드들을 입력 trustyou.tistory.com item_savepoint 데이터베이스 불러오기 본격적인 내용을 시작하기 전에 앞서, 기본적으로 우리가 ..
2021.06.08 -
지난 게시글에서 item_savepoint라는 데이터베이스 안에 item_savepoint라는 테이블을 생성한 채로 마무리했으니 이번 게시글에서는 그 내용에 이어서 item_savepoint라는 테이블 안에 종목 코드들을 입력하고 차트 데이터를 저장한 경우에는 저장이 된 날짜를 입력하도록 하는 방법에 대해 알아볼 예정이다. 종목코드 입력하기 item_savepoint 안에는 'code'와 'sv_day'라는 두 개의 칼럼이 있는데, 그 중 code라는 부분에 종목 코드를 입력하기 위한 코드는 어떤 구조를 갖추고 있는지 알아보자. 결론부터 말하자면, 앞의 게시글에서도 여러 번 사용했었지만 cur.execute()라는 형태를 이용하되, 그 안에서 사용할 명령어는 INSERT이다. 즉, 무언갈 생성할 때에는 ..
키움증권 Open API - 차트 데이터 관리 DB 제작 (2)지난 게시글에서 item_savepoint라는 데이터베이스 안에 item_savepoint라는 테이블을 생성한 채로 마무리했으니 이번 게시글에서는 그 내용에 이어서 item_savepoint라는 테이블 안에 종목 코드들을 입력하고 차트 데이터를 저장한 경우에는 저장이 된 날짜를 입력하도록 하는 방법에 대해 알아볼 예정이다. 종목코드 입력하기 item_savepoint 안에는 'code'와 'sv_day'라는 두 개의 칼럼이 있는데, 그 중 code라는 부분에 종목 코드를 입력하기 위한 코드는 어떤 구조를 갖추고 있는지 알아보자. 결론부터 말하자면, 앞의 게시글에서도 여러 번 사용했었지만 cur.execute()라는 형태를 이용하되, 그 안에서 사용할 명령어는 INSERT이다. 즉, 무언갈 생성할 때에는 ..
2021.06.08 -
이번 게시글에서는 이전에 제작했던 filtered_code() 함수와 rq_chart_data 함수를 이용해서 전체 종목의 종목 코드를 조회한 후에 해당 종목을 데이터베이스에 저장하는 방법에 대해 포스팅하고자 한다. filtered_code() 함수 보완 여느 때와 마찬가지로 if문 아래에 다음과 같은 코드를 제작함으로써 필터링을 거친 종목 코드들을 불러올 수 있다. 하지만 지난 포스팅에서 제작하다 만 부분이 조금 있기 때문에, 이번 포스팅에서 마저 마무리 제작하고 for문을 돌리도록 하겠다. 2021년 6월 기준, 우선주 또는 ETN 등의 종목을 걸러내는 방법은 아래와 같다. if 검색할 단어 in 대상 단어: 예를 들어 우선주를 걸러내고 싶다면 if "우" in codename과 같은 형태로, 스팩주..
키움증권 Open API - 전 종목 차트 자동 조회하기이번 게시글에서는 이전에 제작했던 filtered_code() 함수와 rq_chart_data 함수를 이용해서 전체 종목의 종목 코드를 조회한 후에 해당 종목을 데이터베이스에 저장하는 방법에 대해 포스팅하고자 한다. filtered_code() 함수 보완 여느 때와 마찬가지로 if문 아래에 다음과 같은 코드를 제작함으로써 필터링을 거친 종목 코드들을 불러올 수 있다. 하지만 지난 포스팅에서 제작하다 만 부분이 조금 있기 때문에, 이번 포스팅에서 마저 마무리 제작하고 for문을 돌리도록 하겠다. 2021년 6월 기준, 우선주 또는 ETN 등의 종목을 걸러내는 방법은 아래와 같다. if 검색할 단어 in 대상 단어: 예를 들어 우선주를 걸러내고 싶다면 if "우" in codename과 같은 형태로, 스팩주..
2021.06.08 -
이번 포스팅에서는 지난 글에서 이야기했듯이 종목 코드를 불러오고 그 종목들 중에서 필요없는 종목들을 걸러낸다거나 또는 그 종목의 특성을 확인한 후에 얻고자 하는 최종적인 결과물에서 제외하는 방식으로 코드를 제작하고자 한다. KOSPI · KOSDAQ 전체 종목 코드 불러오기 일단 필요 없는 종목들을 걸러내기 위해서는 그에 앞서 상장된 종목들의 코드는 어떻게 되는지를 확인할 필요가 있는데, 그는 바로 GetCodeListByMarket 함수를 통해 불러올 수 있다. 개발 가이드 내에서의 설명은 다음과 같다. 원형 GetCodeListByMarket(Market) 설명 시장구분에 따른 종목코드를 반환한다. 입력값 Market : 시장구분 반환값 종목코드 리스트, 종목간 구분은 ';'이다. 비고 0:장내, 3..
키움증권 Open API 전체 종목 리스트 불러오기이번 포스팅에서는 지난 글에서 이야기했듯이 종목 코드를 불러오고 그 종목들 중에서 필요없는 종목들을 걸러낸다거나 또는 그 종목의 특성을 확인한 후에 얻고자 하는 최종적인 결과물에서 제외하는 방식으로 코드를 제작하고자 한다. KOSPI · KOSDAQ 전체 종목 코드 불러오기 일단 필요 없는 종목들을 걸러내기 위해서는 그에 앞서 상장된 종목들의 코드는 어떻게 되는지를 확인할 필요가 있는데, 그는 바로 GetCodeListByMarket 함수를 통해 불러올 수 있다. 개발 가이드 내에서의 설명은 다음과 같다. 원형 GetCodeListByMarket(Market) 설명 시장구분에 따른 종목코드를 반환한다. 입력값 Market : 시장구분 반환값 종목코드 리스트, 종목간 구분은 ';'이다. 비고 0:장내, 3..
2021.06.01