금융퀀트/프로그램기초
-
(OpenAPI)NOTION API 사용: 데이터 입력(파이썬활용)금융퀀트/프로그램기초 2024. 6. 23. 10:39
파이썬에서 데이터 불러오기: configdf(OpenAPI)Notion API 사용: 데이터 입수 1, (OpenAPI)Notion API 사용: 데이터 입수 2를 통해 노션에 있는 데이터를 불러올 수도 있지만 노션에 데이터를 저장할 필요성도 생긴다. 내 컴퓨터에 sql 서버를 굳이 만들지 않아도 정기적으로 DataBase를 저장해서 나만의 DB를 만들 수 있다. ETF가격 분석을 위해서 일별 ETF종가 DB를 만드는 상황을 가정해 보자. 먼저 KRX정보데이터시스템(http://data.krx.co.kr/)에 접속해서 일별 ETF전종목 시세를 다운받는다. 다운로드한 csv 파일 데이터에 기준일자인 2024-06-14를 추가하고, 종목코드의 데이터 형식은 문자열로 하며, 기준일자+종목코드로 REFID라는 ..
-
(OpenAPI)Notion API 사용: 데이터 입수 2(파이썬 활용)금융퀀트/프로그램기초 2024. 6. 17. 07:31
데이터 불러오기 및 데이터 확인노션(Notion)에서 데이터를 불러오는 코드의 구조는 간단하다. 내 API키를 이용한 Client 객체를 먼저 만든다. Client 객체의 databases라는 속성에 있는 query라는 함수를 사용해서 데이터를 받는다. 이때 query라는 함수를 수행하기 위해서는 database id 가 필요하다. 노션(Notion)의 어느 페이지의 데이터를 갖고 올지를 정해주어야 하는 것이다. 이를 코드로 나타내면 아래와 같다. # 노션 및 판다스 라이브러리 가져오기from notion_client import Clientimport pandas as pd# Notion API 키 변수 생성NOTION_API_KEY = "나의 API 키"# Notion 클라이언트 객체만들기notion..
-
(OpenAPI)Notion API 사용: 데이터 입수 1(파이썬 활용)금융퀀트/프로그램기초 2024. 6. 16. 09:30
노션(Notion) 데이터 입력 및 연결데이터를 가져오려면 일단 나의 노션에 갖고올 데이터가 있어야 한다. 표와 같이 가로, 세로로 되어 있는 데이터 외에 일반적인 메모는 API를 사용해서 갖고 올 일도 없고 현재까지 API로 데이터를 갖고오는 기능을 지원해주지도 않는다. 따라서 아래 그림 1과 같이 새 페이지 자체를 표로 만들어 준다.그림 2와 같이 페이지 제목을 "DBTEST"라고 설정하고 간단한 데이터를 입력한 뒤 페이지를 "내 API 통합"과 연결해 주어야 한다. (OpenAPI)Notion API 사용: 인증키 발급 에서 moonsongdb라는 새 API 통합을 만들었으므로 해당 항목과 그림 2처럼 연결해 준다. 파이썬 가상환경 생성 및 노션 라이브러리 설치아나콘다 환경에서 일반적으로 가상환경을..
-
(OpenAPI)Notion API 사용: 인증키 발급금융퀀트/프로그램기초 2024. 6. 15. 16:10
노션(Notion) API 활용Notion은 자료의 기록, 보관, 공유에 특화된 서비스로 점점 많은 회사의 협업 툴로 자리잡고 있다. 그리고 Notion에서 제공하는 API 서비스를 통해 Notion에 기록한 각종 정보는 일종의 DataBase로 활용될 수 있다. 아마존 AWS 의 RDS 서비스, Azure Database 같은 무거운 서비스를 이용하지 않아도 간략하게 나만의 DataBase를 구축해 볼 수 있는 것이다.내 API 통합 만들기-인증키 발급하기 먼저 Notion(노션) 아이디를 만든 뒤 https://developers.notion.com/ 에 접속해서 아래 그림 1의 우측 상단의 "View My Integrations"를 클릭한다.아래 그림 2의 "새 API 통합 만들기"를 클릭한 뒤 내..
-
(OpenAPI)KRX OpenAPI 활용: 서비스 이용 신청 및 API 예제금융퀀트/프로그램기초 2024. 3. 28. 07:57
서비스 이용 신청 인증키 발급 확인 (OpenAPI)KRX OpenAPI 활용: 인증키 발급에서 해 본 것처럼 법인이 아닌 개인은 로그인 후 마이페이지에서 API인증키 신청을 누르면 API를 사용할 수 있는 인증키 발급절차가 진행되고, 발급이 완료되면 아래 그림 1과 같이 마이페이지 -> 이용현황 -> 나의 정보에 인증키가 발급된 내역을 확인할 수 있다. 개별 서비스 신청 인증키 발급 후 API 서비스를 이용하려면 데이터 별로 추가적인 이용 신청이 필요하다. 예를 들어 유가증권시장에 상장되어 있는 주권의 매매정보를 받고 싶은 경우 아래 그림 2와 같이 서비스이용 -> 주식-> 유가증권일별매매정보를 클릭해서 들어간다. 상세 페이지에서 출력되는 데이터의 layout을 알 수 있고, 샘플 테스트 텝에서 실제로..
-
(OpenAPI)KRX OpenAPI 활용: 인증키 발급금융퀀트/프로그램기초 2024. 3. 23. 23:19
KRX OpenAPI 서비스 파이썬으로 한국주식정보를 가지고 올 수 있는 라이브러리는 다양하게 존재한다. yfinance, pykrx 등이 있는데 이런 라이브러리 들은 정보를 입수, 가공, 제공하는 기능이 한 번에 묶여 있기 때문에 라이브러리에 request, numpy, pandas 가 묶여있는 경우가 많다. 그래서 종종 설치하면 기존 설치된 pandas, numpy 버전 등과 충돌하는 경우도 있다. 그리고 라이브러리에 세팅된 대로만 정보를 요청할 수 있기 때문에 확장성이 떨어질 수 있다. KRX에서는 최근 OPEN API 서비스를 오픈해서 사용자가 직접 KRX 서버에 데이터를 요청할 수 있도록 열어두었다. 이제 yfinance나 pykrx 등 2차적인 정보제공라이브러리나 웹스크렙핑을 통해서 주식 종가..
-
파이썬: 멀티쓰레딩을 활용한 기업기본정보 목록 만들기(DART API활용)금융퀀트/프로그램기초 2024. 3. 17. 09:52
멀티쓰레딩풀 활용의 필요성 파이썬: 멀티쓰레딩(Threading)과 멀티프로세싱(multiprocessing) 에서 살펴본 것처럼 단일 함수들의 멀티쓰레딩, 멀티프로세싱은 단순히 구현하면 되지만 함수가 복잡하거나, 수많은 작업을 다시 작은 단위로 묶어서 작업하고 싶을 때(총작업량은 1만 개인데, 100개씩 한 번에 처리하고 싶을 때)는 단순한 멀티쓰레딩이나 멀티프로세싱 구조로는 한계가 있다. 이 경우는 아래의 그림 1처럼 쓰레딩 또는 프로세싱 작업묶음의 풀을 만들어서 해결할 수 있다. 작업풀에 작업묶음1, 2, 3을 동시에 넣고 작업을 수행한 뒤 결과를 한 번에 뽑아내는 방식이다. 멀티쓰레딩과 멀티프로세싱 모두 작업풀로 처리가 가능하지만 이하에서는 멀티쓰레딩풀만을 이용하여 API를 요청한 결과를 가지고 ..
-
파이썬: 멀티쓰레딩(Threading)과 멀티프로세싱(multiprocessing)금융퀀트/프로그램기초 2024. 3. 16. 09:13
파이썬의 GIL(Global Interpreter Lock)파이썬 프로그램의 실행 구조는 아래 그림 1과 같다. 여기서 프로세스는 하나의 실행 중인 프로그램을 의미하고, 프로세스 안에서 일어나는 작업의 단위들을 쓰레드라고 한다. 파이썬에서는 기본적으로 하나의 프로세스는 하나의 코어를(Core) 사용하고 multiprocessing 라이브러리를 사용하면 여러 개의 코어를 사용하여 작업이 가능하다.우리같은 비전문가는 보통 보급형 "Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz" CPU를 사용하고 이 CPU에는 6개의 코어가 달려있기 때문에 멀티프로세스 작업을 6개를 초과해서 수행하면 작업 효율이 더 크게 증가하지는 않는다.그리고 파이썬에서는 하나의 프로세스 안에서는 여러 개의 쓰레드..