분류 전체보기(113)
-
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 -
1-2. 웹 스크레이핑을 통한 일별 시세 분석하기
이번 장에서는 1-1에서 만든 함수로 추출한 데이터를 matplotlib으로 분석하고, 캔들차트 그리는 법을 알아보겠다. sise_url = 'https://finance.naver.com/item/sise_day.nhn?code=293490' total_data = read_total_data(sise_url, last_page) 상장한지 얼마안된 카카오게임즈 주식을 분석해보자. total_data = total_data.dropna() total_data = total_data[::-1] 혹시 있을지 모르는 null 값을 지우고, 최근순으로 정렬되어있는 인덱스를 역순으로 정렬하여 오래된 순으로 정렬하였다. spl_data = total_data.iloc[0:30] plt.title("Kakao Gam..
2021.05.29 -
1-1. 웹 스크레이핑을 통한 일별 시세 읽어오기
What is web scraping Web scraping is the process of using bots to extract content and data from a website. Unlike screen scraping, which only copies pixels displayed onscreen, web scraping extracts underlying HTML code and, with it, data stored in a database. The scraper can then replicate entire website content elsewhere. Web scraping is used in a variety of digital businesses that rely on data..
2021.05.29