전체 글 159

09. 데이터 파일(CSV) 읽어서 그래프 그리기 + 이동평균선 추가

데이터 파일 설명 일별 데이터: 데이터 파일: stock.{테이블이름}.csv 데이터 기간: 2018-01-02 ~ 2021-07-30, 약 3년 7개월, 비영업일 제외 종목 수: 2,396 개 단위 (테이블 이름, 설명) 원 단위: adj_close 주가 (adjusted close : 조정 종가) 백만원 단위 : mc 시가총액(market capitalization), sales_ttm 매출액(sales trailing 12 months), op_ttm 영업이익(operating profit), ni_ttm 순이익(net income), liab 부채(liability), eq 자본, asset_cur 유동자산(current asset) 색인 데이터: stockinfo.itemname.csv : 종목..

퀀트 2022.12.28

08. 데이터 분석 : EDA

Exploratory Data Analysis : 탐색적 데이터 분석 데이터의 모양, 크기, 분포, 값 등 데이터가 어떠한 형태인지 관찰하고 파악하는 이해 단계. 목적 데이터의 용도나 설명, 의미 파악 데이터의 개별 속성 파악 데이터에 오류 체크 작업 값의 종류 파악하기 (숫자, 카테고리, 순서, T or F 등) 값 이상치 및 누락 유무 확인 숫자형 데이터 집계 (최소, 최대, 평균 등) 변수간 관계 분석 또는 분포 그려보기 데이터를 합치거나 쪼개보고 의미 찾기

퀀트 2022.12.26

07. Seaborn

Seaborn matplotlib을 감싸서 만든 보다 쉬운 파이썬 시각화 패키지 matplotlib보다 쉬운 코드로 그릴 수 있음 matplotlib의 명령어를 그대로 사용할 수 있음 데이터의 통계적인 부분을 살펴볼 때 강점이 있다. import 및 준비 # COLAB 환경을 위한 나눔고딕 한글폰트 설치 --> 진행 후, 런타임 > 런타임 다시 시작을 해 주세요. 다시 시작 후에는 이 부분 실행 X !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf from matplotlib import pyplot as plt import seaborn as sns sns.set() plt.rc('font', famil..

퀀트 2022.12.05

06. Matplotlib / Pandas 에서 plot 생성하기

Matplotlib 그래프를 그리거나, 분포를 보여주는 등 시각화를 위한 파이썬 패키지 연구용으로 많이 쓰인 MATLAB의 코드 스타일을 모방 ( Matlab - Plotting Library ) 기능은 많으나 사용하기는 불편한 편 Matplotlib 준비 # COLAB 환경을 위한 나눔고딕 **한글폰트 설치** --> 진행 후, 런타임 > 런타임 다시 시작을 해 주세요. 다시 시작 후에는 이 부분 실행 X !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf import from matplotlib import pyplot as plt 한글 폰트 설정 # 한글 폰트 설정 (Colab 나눔바른고딕, 윈도우 M..

퀀트 2022.12.01

05. 시각화를 위한 그래프들

시각화를 위한 그래프 몇가지 Line Plot 선그래프 (x, y축 ⇒ 함수) 시간의 흐름에 따른 데이터 변화를 표현하기 좋다. Area Plot 영역 그래프 선그래프와 비슷하나, 아래 영역의 넓이가 어떠한 의미를 가질 때 주로 사용한다. Histogram 히스토그램 막대그래프 데이터의 값에 따른 분포를 나타낼 때 주로 사용한다. Bar charts 막대그래프 각 수치 간 비교를 직관적으로 할 수 있는 장점이 있다. Pie charts 파이 그래프 일반적으로 각 조각의 합을 100%로 그린다. 각 값들이 차지하는 비중을 살펴보기에 적합한 그래프이다. Scatter plots 산점도 그래프 데이터가 수치적으로 어떠한 곳에 위치하고 있는지 직관적으로 볼 수 있다. 두 변수간의 관계를 볼 때도 많이 사용한다...

퀀트 2022.12.01

04. DataFrame : 생성, 연산, 정렬, 병합, 그룹, 쿼리

DataFrame 연산 메소드 prac_df = 주가_데이터.T.loc['2020-09-10':'2020-09-12', ['A005930','A005940']] print(prac_df.abs()) # 절댓값 print(prac_df.isna()) # NaN 여부 print(prac_df.notna()) # 유효 여부 print(prac_df.pow(2)) # 거듭제곱 .isna() 와 .notna()의 결과 값은 True or False .isna() 값이 True다 = np.NaN = None = pd.NaT ‘ ‘ 처럼 공백은 False다. .pow()의 첫번째 인자로 상수가 들어가면 broadcast로 거듭제곱하고, Series나 DataFrame이 인자로 들어갈 수 있다. .pow()에 axis..

퀀트 2022.11.30

03. Pandas : Series, DataFrame

Pandas Panel Data System 금융 데이터 분석에 적합한 도구 1~2차원의 표 형태의 데이터 행과 열에 이름을 붙일 수 있다. (index와 columns) Series 1차원 데이터 표현 행 X 값 데이터 데이터 배열에 이름과 각 데이터의 라벨(인덱스)를 붙임 Pandas 임포트 import pandas as pd Series의 인덱스와 이름 보기 # Series의 인덱스 보기 my_series.index # Series의 이름 보기 my_series.name Series 접근 .loc[] # my_series.loc[데이터라벨 (or slice)] my_series.loc['2020-09-15'] Series에서 데이터의 라벨이름으로 접근한다. Slice 할 경우 끝을 포함한다. .il..

퀀트 2022.11.30

02. Numpy : 배열 생성, indexing, slicing, 연산, broadcast, aggregation

Numpy 다차원 배열(데이터)을 다루는 도구 다차원 배열, 행렬의 생성과 연산, 정렬 등 편리한 기능이 있음 numpy import import numpy as np numpy 배열 생성 다차원 # 1차원 array_1 = np.array([1,2,3,4]) print(array_1) # [1 2 3 4] # 2차원 array_2 = np.array([[1,2,3,4],[11,12,13,14]]) print(array_2) # [[ 1 2 3 4] # [11 12 13 14]] # 3차원 array_3 = np.array([[[1,2,3,4],[11,12,13,14]], [[21,22,23,24],[31,32,33,34]]]) print(array_3) # [[[ 1 2 3 4] # [11 12 13 ..

퀀트 2022.11.30

01. 퀀트 개념 / CAGR, MDD, Sharp Ratio / 라이브러리

퀀트 투자 Quantitative Investment = 계량 투자 인간의 직관과 분석에 기반한 투자 방법론이 아니라 컴퓨터와 데이터 분석을 이용해서 투자를 집행하는 투자 방법론. 컴퓨터 발전에 따라 퀀트 투자 방법론이 많이 나오고있다. 투자 = 논리(매매전략) + 심리(시장상황, 내심리상태) 🚩퀀트 투자의 기본 프로세스 계량 분석에 기반한 투자전략 아이디어 발굴 과거 데이터로 해당 아이디어를 백테스팅 실제 매매를 통해 검증 퀀트 투자가 필요한 이유 높은 수익률을 달성하기 위해서? 심리적 안정감을 가지고 투자를 진행하기 위해서 ⇒ 결국 투자는 확률 게임인데 인간의 직관이나 본능으로 하기 힘들다.(심리적 불안감, 욕심) ⇒ 데이터를 통한 검증 퀀트 기본 용어 CAGR (Compound Annual Grow..

퀀트 2022.11.30

Python Flask : CRUD

Python Flask CRUD 1. module import from flask import Flask, request, redirect request : 클라이언트로부터 들어오는 요청 데이터를 처리하기 위해 사용 redirect : 클라이언트를 (location)위치로 리디렉션 하기 위해 사용 2. 더미 데이터 nextId = 4 topics = [ {'id':1, 'title':'html', 'body':'html is...'}, {'id':2, 'title':'css', 'body':'css is...'}, {'id':3, 'title':'javascript', 'body':'javascript is...'} ] 임시 추가 데이터. 데이터베이스와 연결시에는 topics 리스트에 불러온 데이터가 들..

Python/Flask 2022.10.18