금융퀀트
-
(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를 요청한 결과를 가지고 ..
-
수익률의 개념의 근본적인 이해: 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 에서 다른 ..
-
[키움API]python 샤프지수를 이용한 종목선정 2금융퀀트/(퀀트)증권사API활용(키움) 2024. 1. 28. 16:28
종목별 샤프지수 분석과 UI 변경 샤프지수의 정의 샤프지수는 아래 식으로 나타낼 수 있다.(샤프지수(Sharpe Ratio): 얼마나 덜 쫄리게 많이 벌었나? 참조) 샤프지수 = (투자자산의 수익률 - 기초수익률 ) / 투자자산의 변동성 우리는 [키움API]python 샤프지수를 이용한 종목선정1: 코스피 종목 종가데이터 입수에서 종목별 종가를 입수했기 때문에 종목별 일일 수익률과 계산된 일일 수익률의 표준편차로 수익률의 변동성을 알 수 있다. 그리고 기초 수익률은 해당 종목이 아닌 예금 등 무위험 자산에 투자했을 때 얻을 수 있는 수익률인데 현재 3년 국고채 금리인 3.3% 정도로 잡으면 될 것 같다. 주의해야 할 점은 일일 수익률과 일일 표준편차를 계산했기 때문에 연 금리인 3.3%를 일일 금리로 환..
-
[키움API]python 샤프지수를 이용한 종목선정1: 코스피 종목 종가데이터 입수금융퀀트/(퀀트)증권사API활용(키움) 2024. 1. 22. 07:29
코스피 종목 데이터 찾기: KRX데이터시스템 [키움API]파이썬 주식 종목별 종가정보 불러오기5: UI파일 화면구성(Qt Designer) 및 프로그램module과 CLASS구성까지는 키움에서 제공하는 주식목록입수 API 함수인 GetCodeListByMarket 을 사용해서 약 15,000 개 가량의 종목을 대상으로 입수 작업을 했다. 큰 기업 위주로 투자하겠다는 계획이면 사실 코스피 주식들만 분석해 보면 되기 때문에 약 15,000 개가 되는 데이터 전부를 DB에 저장할 필요는 없다. 코스피 종목은 아래 그림 1과 같이 KRX정보데이터시스템(http://data.krx.co.kr/)에서 지수 -> 주가지수 -> 지수구성종목 항목에서 지수명에 "코스피"를 입력하면 볼 수 있으며 그림 1에 표시된 버튼을..
-
[키움API]파이썬 주식 종목별 종가정보 불러오기6: 데이터 수집시 주의사항금융퀀트/(퀀트)증권사API활용(키움) 2024. 1. 20. 09:10
데이터 요청 횟수 제한 [키움API]파이썬 주식 종목별 종가정보 불러오기5: UI파일 화면구성(Qt Designer) 및 프로그램module과 CLASS구성 에서 완성한 프로그램으로 이제 데이터 수집만 하면 종목 추천을 위한 기본 DB를 구성할 수 있다. 하지만 무작정 아래 그림 1과 같이 종료 인덱스를 10000으로 놓고 기간별 종가 데이터 입수를 하면 안 된다. 키움에서 서버 과부하 방지를 위해서 몇 가지 제약을 걸어놓았기 때문이다. 제약사항은 아래 그림 2와 같이 KOA Studio의 하단 텝의 개발가이드 텝 -> 자주 묻는 질문 -> "키움OpenAPI 개발/구현 중입니다." 항목에 나와 있다. 대표적인 제약사항이 1초당 5회 횟수제한과 서버부하 방지 제한이다. [키움API]파이썬 주식 종목별 종..