금융퀀트
-
(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개를 초과해서 수행하면 작업 효율이 더 크게 증가하지는 않는다.그리고 파이썬에서는 하나의 프로세스 안에서는 여러 개의 쓰레드..
-
수익률의 개념의 근본적인 이해: HPR, TWRR, CAGR, MWRR금융퀀트/자산평가&프로그램매매 2024. 2. 18. 19:12
수익률의 종류 수익률에 대한 다양한 정의가 있지만 결국 수익률은 얼마를 갖고 얼마를 벌었는지를 뜻한다. 중간에 투자금을 추가하는 경우 어떻게 생각할 것인지, 수익률의 단위 기간을 어떻게 잡을 것인지에 따라서 크게 HPR(보유기간수익률), TWRR(시간가중수익률), CAGR(연평균(복리)수익률), MWRR(금액가중수익률)로 나뉜다. 아래의 코스피 200 지수투자 예시를 통해서 각 수익률의 계산 방법을 알아보자. 포트폴리오 가정 KODEX200 ETF, TIGER200 ETF 같은 코스피 200 지수에 연동되는 상품에 2020-01-02 년도부터 가입해서 2023-12-28 연말까지 4년을 보유했다고 가정하자.(코스피 200 지수의 수익률과 추종 ETF 수익률이 100% 연동된다고 가정) A는 초기에 1백만..
-
파이썬 : 함수(Function), 클래스(Class), 모듈(Module), 패키지(Package)금융퀀트/프로그램기초 2024. 1. 31. 06:45
함수, 클래스, 모듈, 패키지의 관계 프로그램을 만드는 것은 각각의 기능들을 만들고 그 기능들을 묶어내서 하나의 구조화된 기계를 만들어내는 과정이라고 생각하면 된다. 여기서 가장 최소의 기능을 가지는 것을 "함수(Function)"라고 하고, 그 함수들을 클래스(Class)로 묶어도 되고 묶지 않아도 된다. 클래스로 묶이거나 묶이지 않은 함수들은 모듈(module)이라는 하나의 파일에 담긴다. 그리고 이 모듈들은 패키지(package)라는 하나의 폴더에 담긴다. 함수, 클래스, 모듈, 패키지의 관계를 그림으로 그리면 아래 그림 1과 같다. 위 그림 1과 같이 클래스로 묶인 함수 혹은 그냥 함수들이 모여서 하나의 모듈을 이루고, 모듈이 모여서 하나의 패키지 혹은 라이브러리가 된다. python 에서 다른 ..