알고리즘트레이딩(10)
-
3-2. [트레이딩 전략 구현] 샤프 지수(Sharpe Ratio)
샤프 지수(Sharpe Ratio)는 측정된 위험 단위당 수익률을 계산한다. 포트폴리오 수익률에서 무위험률을 뺀 뒤, 포트폴리오 수익률 표준편차로 나눈다. 효율적 투자선 내에서 위험률 대비 가장 높은 수익률을 얻을 수 있는 지점을 찾아보자. class efficient_frontier: def __init__(self, stock_list, start_date, end_date): self.daily_ret = [] self.annual_ret = [] . . . self.sharpe_ratio = [] #샤프지수 변수를 추가 . 클래스 멤버에 샤프지수를 나타내는 변수를 추가한다. def monte_carlo_sim(self, stock_list): for _ in range(20000): . . . s..
2021.06.12 -
3-1. [트레이딩 전략 구현] 효율적 투자선 구하기
주식 포트폴리오를 짤 때 전략 없이 종목을 구성하는 것이 아닌, 전략적으로 구성한다면 더 좋은 수익률을 거둘 수 있다. 그러한 지표 중 하나가 효율적 투자선(Efficient Frontier)이다. What Is Efficient Frontier? The efficient frontier is the set of optimal portfolios that offer the highest expected return for a defined level of risk or the lowest risk for a given level of expected return. Portfolios that lie below the efficient frontier are sub-optimal because they d..
2021.06.12 -
2-2. DB에서 시세 조회하는 API 만들기
2-1장에서는 웹 페이지에서 기업들의 일별 시세를 스크래핑한 뒤, MariaDB에 저장하는 기능을 구현하였다. 이번 장에서는 DB에 저장된 종목들의 일별 시세를 기간 별로 조회할 수 있는 API를 만들어보자. import pymysql import pandas as pd from datetime import datetime from datetime import timedelta import re class MarketDB: def __init__(self): """생성자 : MarketDB 연결 및 종목코드 딕셔너리 생성""" def __del__(self): """소멸자 : MariaDB 연결 해제""" def get_comp_info(self): """company_info 테이블에서 읽어와서 cod..
2021.06.06 -
2-1. 스크래핑한 데이터를 DB에 저장하기
주식 데이터를 분석하거나 백테스팅할 경우 일일이 웹에서 스크래핑할 경우 많은 시간을 소요한다. 따라서 먼저 스크래핑하여 한번에 DB에 따로 저장해두고 필요할 때 DB로부터 가져온다면 빠르게 데이터를 처리할 수 있다. 여기서는 MariaDB를 이용한다. 먼저 기업공시채널 홈페이지에 접속하여 KOSPI200 상장 기업의 목록 엑셀 파일을 다운로드 받는다. https://dev-kind.krx.co.kr/corpgeneral/corpList.do?method=loadInitPage 대한민국 대표 기업공시채널 KIND 업종 전체 농업, 임업 및 어업 광업 제조업 - 식료품 제조업 - 음료 제조업 - 담배 제조업 - 섬유제품 제조업; 의복제외 - 의복, 의복액세서리 및 모피제품 제조업 - 가죽, 가방 및 신발 제..
2021.06.05