금융퀀트
-
파이썬을 활용한 주가 경로 구하기: ELS Valuation2금융퀀트/자산평가&프로그램매매 2023. 12. 16. 10:41
주가경로 산출 식 기하 브라운 운동을 따르는 주가의 움직임을 표준 정규분포로 모델링하면 아래와 같다. 아래 식을 이용해서 파이썬을 활용한 주가 변동성 구하기: ELS Valuation1에서 구한 S&P500 지수의 주가 변동성을 바탕으로 S&P500 지수의 주가 경로를 예측해 보자. 위 식에 따르면 다음 시간 단위의 주가는 현재주가, 무위험 수익률, 기초자산의 변동성, 랜덤워크를 따르는 임의의 수 인 z를 이용해서 구할 수 있다. 현재주가는 기준 시점의 주가일 것이고, 무위험 수익률은 기준 시점의 3 개월 CD금리 같은 시장에서 기초자산으로 인식되는 수익률이다. 그리고 z는 평균이 0, 분산이 1 인 표준정규분포에서 뽑아낸 임의의 난수이다. 파이썬을 이용한 주가경로 구하기 무위험 수익률 구하기 이번 작업..
-
파이썬을 활용한 주가 변동성 구하기: ELS Valuation1금융퀀트/자산평가&프로그램매매 2023. 12. 14. 22:17
환경 세팅: yfinance, pandas_market_calendars, matplotlib 설치 ELS 가치평가 하기: ELS는 진짜 위험할까?에서 살펴본 것처럼 S&P500 지수를 기초자산으로 하는 ELS를 평가하는데 있어서 중요한 변수는 기초자산인 S&P500 지수의 변동성과 기초수익률 부분이다. 기초수익률은 계약시점의 3개월 CD금리 정도로 단순 확인이 가능한데, 기초자산인 S&P500 지수의 변동성은 기초 데이터를 받아서 표준편차를 계산해 주어야 한다. 기초자산 데이터를 가장 손쉽게 받을 수 있는 방법이 yfinance라이브러리를 사용하는 방법이다. 다만, yfinance를 그냥 base 환경에서 설치하면 현재 나의 numpy 버전과 안 맞을 수 있기 때문에 "conda env list"명령어..
-
ELS 가치평가 하기: ELS는 진짜 위험할까?금융퀀트/자산평가&프로그램매매 2023. 12. 12. 01:19
ELS 계약조건 확인 기본계약 조건과 ELS의 기초자산 ELS는 보통 위험하다고들 한다. 우리가 ELS 상품에 가입할 때 ELS로 얻을 수 있는 기대수익이 얼마이길래 그렇게 위험하다고 하는 것일까? 실제 ELS 상품을 평가해 보고 얼마나 위험한지 생각해 보자. ELS는 은행 또는 증권사에서 판매하는 상품으로 상대적으로 높은 수익률을 주지만 ELS 의 기초자산의 가격에 따라서 원금손실을 볼 수 있는 상품이다. ELS 상품마다 기초자산은 다양하며 아래는 가장 기초적인 S&P500 지수를 기초자산으로 하는 ELS 상품 예시이다. 스텝다운형 ELS의 기본 수익 구조 ELS 는 기본적으로 일정한 수익률을 보장하지만 기초자산의 가격에 따라서 일정한 조건을 붙인다. 아래 그림 2는 가장 기본적인 ELS 수익 조건이다..
-
[키움API]파이썬 주식 종가정보 불러오기4: 데이터 DB저장(mysql)금융퀀트/(퀀트)증권사API활용(키움) 2023. 12. 6. 15:37
MySQL연결하기 [키움API]파이썬 주식 종가정보 불러오기3: 전체종목 기간별 종가조회에서 작업해 본 것처럼 종목당 600개 정도의 시계열 데이터가 나오고 전체 종목 수는 약 2,000 개 정도니까 전체 데이터를 전부 수집하면 약 1,200,000 개 정도 된다. 이런 방대한 데이터는 엑셀로 관리하기는 힘들고 MySQL을 통해서 DB로 관리하면 편하다.(심지어 무료다.) 파이썬에서 mysql을 사용하려면 먼저 mysql을 설치한 뒤(MYSQL 설치(Windows)를 참조) 아나콘다 프롬프트에서 내가 현재 작업 중인 가상환경을 활성화 한다. 그리고 pip install pymysql, pip install sqlalchemy를 통해서 파이썬과 mysql을 연결해 주는 라이브러리를 설치해 준다. 설치가 완..
-
[키움API]파이썬 주식 종가정보 불러오기3: 전체종목 기간별 종가조회금융퀀트/(퀀트)증권사API활용(키움) 2023. 12. 2. 09:13
시계열데이터 만들기: GetCommData 함수 재구성 KOAStudio 조회 화면을 보면 아래 그림 1에 표시됨 부분의 숫자가 0에서부터 늘어나면서 599까지 조회가 되는 것을 알 수 있다. 0 번째 인덱스 데이터가 기준일자 데이터이고 599 번째 데이터는 599 영업일 뒤의 데이터니까 약 2년 6개월 정도 기간 동안의 종가 데이터를 한 번에 볼 수 있는 것이다.(1년은 약 250 영업일 정도 된다.) 위 그림 1의 인덱스를 나타내는 부분은 아래 GetCommData 의 세 번째 변수로 지금까지 단순히 0으로 설정했던 부분을 변수로 아래와 같이 바꿔주면 된다. # AS-IS def GetCommData(self, trcode: str, trname: str, item: str): return self...
-
[키움API]파이썬 주식 종가정보 불러오기2: 개별종목 종가조회금융퀀트/(퀀트)증권사API활용(키움) 2023. 11. 30. 07:52
종목별 종가 입수 함수 확인: KOA 스튜디오 구현 예시 종목별 종가정보 조회는 키움 API로 "주식일봉차트조회요청"을 하면 된다. KOA Studio에서 Open API 접속을 한 뒤에 아래 그림 1의 좌측처럼 표시된 칸에 종목코드와 기준일자 정도를 넣으면 그림 1의 우측처럼 결과를 볼 수 있다. 그림 1의 우측 상단에는 어떤 API 함수를 호출해야 하는지 안내가 되어 있다. SetInputValue 함수를 통해서( SetInputValue("종목코드" , "005930"), SetInputValue("기준일자" , "20231129"), SetInputValue("수정주가구분" , "") ) 종목코드, 기준일자, 수정주가구분 설정을 해주고, CommRqData( "RQName" , "opt10081"..
-
파이썬 32비트 환경에서 MYSQL 사용하기:DLL load failed while import _sqlite3 대응금융퀀트/프로그램기초 2023. 11. 28. 07:14
32비트 가상환경 만들기 및 필요라이브러리 설치 아나콘다-파이썬 사용자가 32비트 환경을 구현하기 위해서 굳이 32비트용 아나콘다를 다운로드할 필요는 없다. 아나콘다 프롬프트에서 "set CONDA_FORCE_32BIT=1" 명령어로 환경을 32비트로 만들어 준 뒤에 가상환경을 만들어서 activate 시켜주면 32비트 환경에서 작업을 할 수 있다.(자세한 내용은 [키움API]아나콘다-파이썬 가상환경 만들기 참조) 보통은 증권사 API 같은 것들이 32비트 환경에서 구현되어 있어서 가상환경을 만들어서 작업한다. 그런데 대량의 시장 데이터를 이용하는 증권사 API를 사용할 때 데이터베이스 작업도 필수적이다. 보통은 아래와 같이 sqlalchemy와 pymysql을 설치해서 데이터베이스 작업을 한다. "DL..
-
[키움API]파이썬 주식 종가정보 불러오기1: 종목코드 목록 입수금융퀀트/(퀀트)증권사API활용(키움) 2023. 11. 24. 07:06
종목리스트 입수 함수 확인 이제 아래 그림 1의 "기간별 종가 데이터 입수" 버튼 기능을 만들어보자.(버튼 이름의 뜻이 명확하지 않아서 바꿨다.) 주식 종목의 기간별 종가 데이터 입수 작업은 "주식코드의 입수 및 목록화 -> 기준일자의 주식코드별 종가 데이터 수집 -> 일자를 바꿔가면서 종가 데이터 반복 수집-> DB저장"으로 나눌 수 있다. 먼저 주식코드의 입수 및 목록화부터 진행해 보자. 키움 API 개발 가이드를 보면 아래 그림 2와 같이 GetCodeListByMarket이라는 함수를 써서 주식코드 목록을 받을 수 있다는 것을 확인할 수 있다. 여기에서 함수에 패러미터로 "0"을 넣으면 장내, "3"을 넣으면 ELW, "4"를 넣으면 뮤추얼펀드 등이 나오는 방식이다. 코스피 종목 리스트 불러오기 ..