Appia의 IT세상

Python[파이썬 주식] 코스피(KOSPI),코스닥(KOSDAQ)에 있는 모든 종목들의 BPS, PER,EPS,PBR를 가져오는 방법 본문

Python/Python 주식

Python[파이썬 주식] 코스피(KOSPI),코스닥(KOSDAQ)에 있는 모든 종목들의 BPS, PER,EPS,PBR를 가져오는 방법

Appia 2021. 1. 13. 06:40
반응형

Python[파이썬 주식] 코스피,코스닥에 있는 모든 종목들의 BPS, PER,EPS,PBR를 가져오는 방법

Python[파이썬 주식] 코스피(KOSPI),코스닥(KOSDAQ)에 있는 모든 종목들의 BPS, PER,EPS,PBR를 가져오는 방법

이번 포스팅은 제 블로그를 방문해주신 분께서 문의 주신내용에 대해서 한번 포스팅을 해보고자 합니다. 일단은 요청 사항이 다음과 같습니다. 

소중한 정보 감사합니다. 다름이 아니라, 퀀트 프로젝트를 만들고 있는데 소개해주신 특정 종목 하나 말고 코스피+코스닥에 있는 모든 종목들의 BPS PEREPS PBR를 가져오고 싶은데 따로 방법이 있는지 궁금합니다. from pykrx import stock df = stock.get_market_fundamental_by_date("20100101", "20201030", "088350", "y") print(df)

비슷한 궁금점들이 있는 분들을 위해서 위의 제목과 같이 코스피, 코스닥에 모든 종목들에 대해서 BPS, PER, EPS, PBR을 가져오는 방법을 만들고자 합니다. 우선 기본적으로 이번 포스팅에서 사용할 모듈은 pykrx입니다. 

Python[파이썬 주식] 국내 주식 정보 모으기(스크래핑) - pykrx 모듈 설치

 

Python[파이썬 주식] 국내 주식 정보 모으기(스크래핑) - pykrx 모듈 설치

Python[파이썬 주식] 국내 주식 정보 모으기(스크래핑) - pykrx 모듈 설치 코로나 반발 시점과 더불어 최근 동학 개미 운동이 붐을 일으켰습니다. 이 기세를 모아서, 많은 사람들이 주식투자를

appia.tistory.com

Pykrx모듈이 설치되지 않으신 분들은 위의 링크의 정보를 바탕으로 설치 부탁드립니다.

 

 

먼저, 다음과 같은 순서로 작업을 진행해보고자 합니다. 

 

1. 코스피, 코스닥의 모든 종목들의 대한 ticker번호를 저장하기 

 

2. 그리고 1번에 받은 정보를 바탕으로 fundamental 추출하기

 

그럼 각 항목에 대해서 진행을 해보도록 하겠습니다. 

 

1. 코스피, 코스닥의 모든 종목들의 대한 ticker번호를 저장하기 

이 부분은 생각보다 매우 간단합니다. 관련된 코드를 잠깐 살펴보겠습니다. 

from pykrx import stock
import time

KOSDAQ = stock.get_market_ticker_list(market="KOSDAQ")
KOSPI = stock.get_market_ticker_list(market="KOSPI")
print(KOSPI[:5])
print(KOSDAQ[:5])

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

['095570', '006840', '027410', '282330', '138930']
['060310', '054620', '265520', '211270', '035760']

물론 위에서는 많은 데이터가 있기 때문에 여기에서 코스피/ 코스닥 각 5개씩만 주식번호를 출력하도록 하였습니다. 

 

2. 그리고 1번에 받은 정보를 바탕으로 fundamental 추출하기

그럼 1번에서 받은 추출한 정보를 바탕으로 구성을 fundametal을 추출해보도록 하겠습니다. 

print("KOSAQ Information")
for i in KOSDAQ[:2]:
    print(i)
    time.sleep(3)
    df = stock.get_market_fundamental_by_date("20100101", "20201030", i, "y")
    print(df)

print("KOSPI Information")
for i in KOSPI[:2]:
    print(i)
    time.sleep(3)
    df = stock.get_market_fundamental_by_date("20100101", "20201030", i, "y")
    print(df)

다음과 같은 형태로 구성하시면 됩니다. 

 

그럼 전체코드를 살펴보고, 관련해서 실행을 결과를 살펴보겠습니다. 

from pykrx import stock
import time

KOSDAQ = stock.get_market_ticker_list(market="KOSDAQ")
KOSPI = stock.get_market_ticker_list(market="KOSPI")

print("KOSAQ Information")
for i in KOSDAQ[:2]:
    print(i)
    time.sleep(3)
    df = stock.get_market_fundamental_by_date("20100101", "20201030", i, "y")
    print(df)

print("KOSPI Information")
for i in KOSPI[:2]:
    print(i)
    time.sleep(3)
    df = stock.get_market_fundamental_by_date("20100101", "20201030", i, "y")
    print(df)

 

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 일단은 내용이 많아서 반복문을 적용할 때 2개씩 만 적용하도록하였습니다.

KOSAQ Information
060310
            DIV   BPS     PER  EPS        PBR
날짜                                           
2010-12-31  0.0   454    0.00    0   0.000000
2011-12-31  0.0   379    0.00    0   0.000000
2012-12-31  0.0   512  558.14   43  46.875039
2013-12-31  0.0   753  170.24   42   9.495458
2014-12-31  0.0  1169  263.82   17   3.836561
2015-12-31  0.0  1051    0.00    0   0.000000
2016-12-31  0.0   928    0.00    0   0.000000
2017-12-31  0.0   846    0.00    0   0.000000
2018-12-31  0.0   695    0.00    0   0.000000
2019-12-31  0.0   704    0.00    0   0.000000
2020-12-31  0.0   768   87.34   32   3.639167
054620
            DIV    BPS     PER    EPS       PBR
날짜                                             
2010-12-31  0.0   3794    9.45    466  1.160701
2011-12-31  0.0   3770   65.16    124  2.143194
2012-12-31  0.0   2851    0.00      0  0.000000
2013-12-31  0.0   3753   14.74    521  2.046240
2014-12-31  0.0   3957   17.93    536  2.428729
2015-12-31  0.0   4294    8.74    708  1.441062
2016-12-31  0.0   4185  211.02     59  2.974953
2017-12-31  0.0   4548   72.45    412  6.563193
2018-12-31  0.0  10544    4.36   1749  0.723221
2019-12-31  0.0  13639    0.09  46508  0.306893
2020-12-31  0.0  11083  162.50     64  0.938374
KOSPI Information
095570
             DIV    BPS    PER   EPS       PBR
날짜                                            
2015-12-31  0.00  23715  12.99  2732  1.496466
2016-12-31  0.00  23715  17.57  2732  2.024088
2017-12-31  0.00  28067  13.59  2391  1.157719
2018-12-31  0.86   5980  24.20   288  1.165485
2019-12-31  1.90   6168  14.16   320  0.734630
2020-12-31  1.98   7231   4.49  1124  0.697934
006840
             DIV    BPS    PER    EPS       PBR
날짜                                             
2010-12-31  3.94  43004   0.00      0  0.000000
2011-12-31  2.16  38905   0.00      0  0.000000
2012-12-31  3.95  41917   4.93   7714  0.907270
2013-12-31  3.37  38797   3.24   6861  0.572973
2014-12-31  0.37  33073   1.79  22933  1.241196
2015-12-31  0.24  35485  12.03   7072  2.397525
2016-12-31  0.58  42221  10.83   5549  1.423360
2017-12-31  0.94  42342   0.00      0  0.000000
2018-12-31  0.75  46834  13.18   5585  1.571728
2019-12-31  1.25  52954   6.72   7727  0.980576
2020-12-31  2.15  63797   4.24   8224  0.546574

그리고 각 반복문 사이에 time.sleep(3)정도 주어서, 증권거래소 블랙리스트에 등재되지 않도록 하였습니다. 만약 이 부분이 블랙리스트에 등재되면 IP가 블록 되기 때문에 관련해서 몇일에서 몇주동안 사용 모듈 사용을 못하시는 결과가 나타날 수 있습니다. 

 

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 리스트 출력, CSV로 추출- pykrx

 

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 리스트 출력, CSV로 추출- pykrx

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 리스트 출력 - pykrx 이번 포스팅에서는 국내 상장되어 있는 코스프, 코스닥의 있는 회사들의 이름과 상장번호를 출력하는 부분들을 만

appia.tistory.com

이번 포스팅에서는 Python[파이썬 주식] 코스피(KOSPI),코스닥(KOSDAQ)에 있는 모든 종목들의 BPS, PER,EPS,PBR를 가져오는 방법라는 주제로 간단히 살펴봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

* 위의 모듈 자체가 증권거래소 API를 활용하는 부분이 있습니다. 과도한 사용에 대한 IP block 및 공격으로 오해 받는 것에 대해서는 사용자에게 직접 책임이 있습니다. 따라서 과도한 사용에 대해서 주의 하시길 바랍니다. 

반응형
Comments