파이썬 퀀트투자 쉽게하기 - 8. 모듈가져오기
본문 바로가기
파이썬으로 만든 것들/퀀트투자

파이썬 퀀트투자 쉽게하기 - 8. 모듈가져오기

by Squat Lee 2021. 12. 20.

이제 본격적으로 파이썬으로 퀀트투자 백테스트를 하는 코드를 작성해 보겠습니다.

 

우선 필요한 모듈을 가져오겠습니다.

1
2
3
4
from pykrx import stock
import pandas as pd
import numpy as np
import os
cs

모듈을 가져오는 방법은 아래 링크의 이전 포스트를 참고해 주세요.

 

2021.12.13 - [집구석 강의/파이썬 퀀트투자 쉽게하기] - 파이썬 퀀트투자 쉽게 하기 - 7. 파이썬 기초

 

파이썬 퀀트투자 쉽게 하기 - 7. 파이썬 기초

파이썬 코드를 짜기위한 기초적인 부분만 설명하려고 합니다. 어디부터 어디까지 알려드려야 할지 개인적으로 고민이 많았습니다. 그리고 어떻게 알려드려야 할지도 감이 잡히질 않네요. 그래

dotsnlines.tistory.com

 

모듈에 대해서 설명을 드리겠습니다.

 

pykrx

'pykrx' 라이브러리(모듈)은 증권거래소 데이터를 쉽게 가져올 수 있게 해줍니다.

 

백테스트를 위해서는 종목명, 종목코드, 종가, PBR, 상장주식수 등이 필요한데, 2003년부터의 데이터를 pykrx 라이브러리로 모두 가져올 수 있습니다.

 

제가 블로그에서 알려드릴 방법은 PBR만 기준으로 백테스트를 하는 것입니다. 포스트를 다 보시고 PBR과 PER 또는 PBR과 DPS 등 여러 방법으로 응용해서 백테스틀 하실 수 있습니다.

 

from pykrx import stock

 

이것의 의미는 pykrx 모듈에서 stock이라는 함수를 쓰겠다는 얘기입니다. pykrx 모듈에는 여러 함수가 존재하기 때문에 해당 함수를 사용하기 위해서는 일일이 함수 이름을 입력해야 합니다. 예를들어 "import pykrx"라고만 쓰면, 사용할때는 "pykrx.stock.get_market_ticker_list(date)" 이런식으로 사용해야 되니 귀찮겠죠? 조금이라도 글자수를 줄이기 위해 "from pykrx import stock"이라고 사용하면 pykrx는 생략하고 "stock.get_market_ticker_list(date)" 만 적으면 됩니다.

 

별것 아닌것 처럼 보이지만, 코드가 길어지면 보기도 힘들고, 노가다 작업이 될 수 있으니 많은 사람들이 최대한 쉽게 사용하려고 이렇게 사용합니다.

 

pandas

'pandas' 라이브러리는 데이터프레임을 쉽게 만들 수 있는 기능을 제공합니다. 이렇게 말하니 처음 접하시는 분들은 상당히 어려울 수도 있겠다는 생각이 드네요. 엑셀의 테이블처럼 데이터를 테이블 형태로 만들고, 형태 변화를 쉽게 할 수 있도록 도와주는 역할을 합니다.

 

우리가 특정 날짜의 모든 주식데이터를 불러오면 대략 2,300개 정도 됩니다. 이 데이터를 아래의 표와 같이 만들고, 1년 후의 가격도 비교해야 되니, 테이블 형태가 편하겠죠.

종목코드 종목명 PBR 종가 1년 후 종가 수익 수익률
111111 대박전자 0.2 5,000 10,000 5,000 100%
222222 쪽박산업 10.8 10,000 2,000 -8,000 -80%

설명만으로 한계가 있으니, 대략 그렇구나 하고 넘어가시고 나중에 코드를 작성하면서 이해를 하시는게 좋을 것 같습니다.

 

import pandas as pd

 

pandas를 pd로 줄여서 사용하겠다는 의미 입니다. 모듈이름이 길면 사용하기 번거롭잖아요. 오타가 날 수도 있고요. 그래서 쉽게 줄여서 쓰는 것을 의미합니다. 

 

numpy

'pandas'나 'numpy'는 통계나 데이터사이언스를 하기 위해 사용하는 모듈입니다. AI 즉 인공지능을 구현하기 위해서는 많은 데이터가 필요하고, 그런 데이터를 유의미하게 만들기 위해서 pandas와 numpy이를 사용합니다.

 

사실 이런 모듈을 설명하기는 상당히 어렵습니다. 이 것만 공부해도 몇 달은 걸릴 것 같아요. 하지만, 제가 필요한 기능만 쓴다고 말씀드린거 기억 하시나요? 저는 numpy를 이용해서 위의 테이블에서 투자한 날짜를 일괄적으로 입력 할겁니다.

 

os

'os' 모듈은 폴더 또는 경로를 지정하거나, 폴더를 만드는 등의 기능을 도와줍니다. 저는 os 모듈로 백테스트 결과를 엑셀파일로 저장하는 경로를 지정하는데 사용할 예정입니다.

 

 

 

 

 

 

728x90
반응형

댓글