Appia의 IT세상

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 특정 기간동안의 주가 변동 확인하기(pykrx) 본문

Python/Python 주식

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 특정 기간동안의 주가 변동 확인하기(pykrx)

Appia 2020. 10. 30. 07:09
반응형

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 특정 기간동안의 주가 변동 확인하기

앞서 포스팅에서 코스피, 코스닥 상장회사의 주가시세 즉 흔히 말하는 OHLCV값을 구하는 방법에 대해서 이야기를 해봤습니다. 그럼 이번 포스팅에서는 앞서 포스팅과 더불어서, 특정기간 동안의 주가 변동을 확인하는 방법에 대해서 이야기를 해보고자 합니다. 

 

먼저 관련해서는 pykrx에서 관련 함수를 제공하고 있습니다. 다음 함수를 살펴보겠습니다. 

stock.get_market_price_change_by_ticker(시작 날짜, 종료 날짜)

위에 함수에서 시작 날짜와 종료 날짜의 경우 8자리 숫자로 표시하면됩니다. 그럼 다음과 같이 예를 들어 표시해보도록 하겠습니다. 

1
df1 = stock.get_market_price_change_by_ticker("20200320""20201027")
cs

위와 같이 표현할 수 있습니다. 그럼, 2020년 03월 20일 부터, 2020년 10월 27일까지의 모든 종목에 대해서 가격 변동을 확인할 수 있습니다. 여기에서는 코스피, 코스닥, 코넥스 모든 종목에 대해서 나열을 합니다. 그럼 다음과 같이 전체 코드를 작성해서 실제 나오는 가격을 살펴보도록 하겠습니다. 

 

1
2
3
4
5
from pykrx import stock
import pandas as pd
 
df1 = stock.get_market_price_change_by_ticker("20200320""20201027")
print(df1)
cs

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
              종목명     시가     종가    변동폭     등락률        거래량           거래대금
티커                                                                      
000020       동화약품   4985  17500  12515  251.05  291832666  5521485229230
000040      KR모터스    441    923    482  109.30  409542926   355438001440
000050         경방   7210  10900   3690   51.18   14990247   171827563960
000060      메리츠화재   9180  14650   5470   59.59   29610346   394625643540
000070      삼양홀딩스  36500  62000  25500   69.86    4167120   264318109050
...           ...    ...    ...    ...     ...        ...            ...
276920  IBKS제7호스팩   2035      0  -2035 -100.00          0              0
277480    신한제4호스팩   2040      0  -2040 -100.00          0              0
279410  한화에이스스팩4호   2010      0  -2010 -100.00          0              0
281410    한국제6호스팩   2030      0  -2030 -100.00          0              0
900040    차이나그레이트    518      0   -518 -100.00          0              0
 
[2479 rows x 7 columns]
 
Process finished with exit code 0
cs

 

위에서 보이는 바와 같이 종목명 시가(시작 날짜의 시가) 종가(종료 날짜의 종가) 변동폭 등락률 거래량, 거래대금등을 명시해줍니다. 

 

그럼 만약 코스피, 코스닥, 코넥스를 분리 하고 싶으시다면, 몇가지 작업이 필요로 합니다. 그래서 일단 막 코드로 다음과 같이 작성을 해봤습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from pykrx import stock
import pandas as pd
 
def check_name(v):
    return stock.get_market_ticker_name(v)
 
 
KOSDAQ = stock.get_market_ticker_list(market="KOSDAQ")
KOSPI = stock.get_market_ticker_list(market="KOSPI")
KOSPIL = []
KOSDAQL = []
for i in KOSDAQ:
    KOSDAQL.append(check_name(i))
 
for v in KOSPI:
    KOSPIL.append(check_name(v))
 
df1 = stock.get_market_price_change_by_ticker("20201020""20201027")
 
No = []
vKOSPIL = []
vKOSDAQL = []
 
for item in df1.values :
    print(item)
 
    if item[0in KOSPIL :
        vKOSPIL.append(item)
    elif item[0in KOSDAQL :
        vKOSDAQL.append(item)
    else :
        No.append(item)
 
KDQ = pd.DataFrame(vKOSDAQL)
KSP = pd.DataFrame(vKOSPIL)
KNX = pd.DataFrame(No)
KDQ.to_csv('KOSDAQ.csv',encoding='utf-8-sig')
KSP.to_csv('KOSPI.csv',encoding='utf-8-sig')
KNX.to_csv('KONEX.csv',encoding='utf-8-sig')
cs

 앞서 포스팅인 다음 링크에서 각 종목의 리스트를 불러오는 방법들을 활용하였습니다. 

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

 

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

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

appia.tistory.com

가장 먼저 각 시장의 종목 리스트를 불러왔습니다. 코스피, 코스닥외에는 모두 코넥스로 설정하였습니다. 

1
2
3
# 각 시장의 종목들 리스트 불러오기
KOSDAQ = stock.get_market_ticker_list(market="KOSDAQ")
KOSPI = stock.get_market_ticker_list(market="KOSPI")
cs

 

그런 후에 반복문과 다음 작성한 함수를 통해서 각 상장번호를 바탕으로 이름을 추출하였습니다. 

1
2
3
4
5
6
7
8
def check_name(v):
    return stock.get_market_ticker_name(v)
 
for i in KOSDAQ:
    KOSDAQL.append(check_name(i))
 
for v in KOSPI:
    KOSPIL.append(check_name(v))
cs

 

그런 후에 앞서서 결과문들을 반복문으로 돌리면서 이 부분이 코스닥인지 코스피인지 분별하게 작업을 하였습니다. 

1
2
3
4
5
6
7
8
9
for item in df1.values :
    print(item)
 
    if item[0in KOSPIL :
        vKOSPIL.append(item)
    elif item[0in KOSDAQL :
        vKOSDAQL.append(item)
    else :
        No.append(item)
cs

그런 후에 이 부분을 토대로, 다시 Pandas의 DataFrame으로 변경하고 이 부분을 CSV파일 형태로 추출하였습니다. 

1
2
3
4
5
6
KDQ = pd.DataFrame(vKOSDAQL)
KSP = pd.DataFrame(vKOSPIL)
KNX = pd.DataFrame(No)
KDQ.to_csv('KOSDAQ.csv',encoding='utf-8-sig')
KSP.to_csv('KOSPI.csv',encoding='utf-8-sig')
KNX.to_csv('KONEX.csv',encoding='utf-8-sig')
cs

 

위와 같은 형태로 작성하면 각 CSV파일 형태로 추출이 가능합니다. 

 

이번 포스팅에서는 Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 특정 기간동안의 주가 변동 확인하기라는 주제로 간단하게 살펴봤습니다. 실제 보다 더욱 간단하게 정리할 수도 있었겠지만, 처음 공부하면서 작업을 하는 거라서 향후에 기회가 된다면 조금 더 업데이트 된 버전으로 재포스팅을 드리도록 하겠습니다. 감사합니다. 

 

*API 사용에 대한 모든 책임은 사용자 본인에게 있습니다. 의도한 공격용이나, 과도한 트래픽 발생에 대해서 항상 주의가 필요하며, 관련해서 악용하시면 안됩니다. 

반응형
Comments