본문 바로가기

API

[전자공시 Dart API] 무상증자 결정 공시 낸 회사의 주가 정보 확인

반응형

전자공시 Dart API의 주요사항보고서 개발가이드 > 공시정보 > 공시검색 데이터에서 무상증자 결정 공시정보를 가져와

주가 정보랑 비교해 보도록 하겠습니다.

본인의  인증키(API Key)가 필요하니 필요하신분은 아래를 참고 부탁드립니다.

 

1. 가입 및 인증키 확인(Skip 가능)

2. 무상증자 결정 공시 데이터 가져오기

3. 주가 정보와 비교하기

 

1. 가입 및 인증키 확인(Skip 가능)

https://yenpa.tistory.com/23

 

[전자공시 Dart API] 가입 및 인증키(API Key) 확인하기

1. 사이트 가입 2. 인증키(API Key) 확인하기 1. 사이트 가입 사이트에 접속합니다. https://opendart.fss.or.kr/ 시스템 점검으로 모든 서비스 이용이 일시적으로 중단되어니 양해 부탁드립니다. 시스템 점

yenpa.tistory.com

 

2. 무상증자 결정 공시 데이터 가져오기

2022년 7월 1일 ~ 2022년 9월 30일의 3개월간의 공시 데이터 중에서

주요사항보고서(무상증자결정) 데이터만 가져옵니다.

import requests
import pandas as pd
from IPython.display import display

crtfc_key='YOUR_APIKEY'

page_no=1
page_count=100
bgn_de='20220701'
end_de='20220930'
pblntf_detail_ty='B001'

results_all=pd.DataFrame()
while(True):
    url = 'https://opendart.fss.or.kr/api/list.json'
    params = {
        'crtfc_key': crtfc_key,
        'page_no' : str(page_no),
        'page_count' : str(page_count),
        'bgn_de' : bgn_de,
        'end_de' : end_de,
        'pblntf_detail_ty' : pblntf_detail_ty,
    }
    
    #결과를 json형태로 저장
    results = requests.get(url, params=params).json()
    #결과중 실제 공시정보가 있는부분만 DataFrame으로 저장
    results_df = pd.DataFrame(results['list'])
    #하나의 DataFrame으로 만듬
    results_all = pd.concat([results_all,results_df])
    
    total_page=results['total_page']
    
    # total_page와 page_no이 같으면 while문 종료
    if page_no==total_page:
        break
    
    page_no=page_no+1
    
#주요사항 보고서(무상증자결정), 법인 Y(코스피), K(코스닥)
keyword='주요사항보고서(무상증자결정)'
df = results_all.loc[(results_all['report_nm']==keyword) & 
                     ((results_all['corp_cls']=='K') | (results_all['corp_cls']=='Y'))]

print(df.shape)
display(df)

입력 요청인자(Parameter)를 잠시 살펴보겠습니다.

bgn_de(시작날짜), end_de(종료날짜) 인데 corp_code를 입력안하면 3개월까지 검색이 됩니다.

pblntf_detail_ty(공시유형)에서 B001(주요사항보고서)만 설정했습니다.

page_no=1
page_count=100
bgn_de='20220701'
end_de='20220930'
pblntf_detail_ty='B001'

 

보고서명은 주요사항보고서(무상증자결정)으로 하고, 법인을 Y(코스피), K(코스닥)만 검색했습니다.

#주요사항 보고서(무상증자결정), 법인 Y(코스피), K(코스닥)
keyword='주요사항보고서(무상증자결정)'
df = results_all.loc[(results_all['report_nm']==keyword) & 
                     ((results_all['corp_cls']=='K') | (results_all['corp_cls']=='Y'))]

 

결과를 확인해 보겠습니다.

3개월간 18개의 회사가 검색이 되고 리스트는 아래와 같습니다.(아래는 생략)

 

반응형

 

 

3. 주가 정보와 비교하기

financedatareader를 사용해서 주가 정보를 가져오겠습니다.

financedatareader의 설치는 아래를 참고하셔도 됩니다.(Skip가능)

https://yenpa.tistory.com/19

 

[FinanceDataReader] 설치 및 주식 주가 정보 가져오기(코스피, 코스닥)

국내 주식 정보를 가져와 보겠습니다. 1. FinanceDataReader 설치 2. 종목 정보 가져오기 3. 주가 정보 가져오기 1. FinanceDataReader 설치 명령프롬프트에서 아래의 명령어로 설치 가능합니다. anaconda의 경

yenpa.tistory.com

 

 

우선 위의 무상증자결정 리스트중 싸이토젠 회사의 주가를 확인하겠습니다.

import FinanceDataReader as fdr

code='217330'
startdate='2022-07-01'
enddate='2022-09-30'
fdr.DataReader(code,startdate,enddate)

정상적으로 잘 나오는 것을 알수 있습니다.

 

주가정보를 그래프로 확인해보겠습니다.

무상증자결정 데이터의 회사별로 각각의 그래프를 그리는 코드입니다.

import matplotlib.pyplot as plt
plt.rc('font', family='NanumGothic') 

for i, r in df.iterrows():
    corp_name = r['corp_name']
    stock_code = r['stock_code']
    
    #주가정보
    code=stock_code
    startdate='2022-07-01'
    enddate='2022-09-30'
    df_stock=fdr.DataReader(code,startdate,enddate)[['Close']]
    
    rcept_date=pd.to_datetime(r['rcept_dt'], format='%Y%m%d')
    
    plt.figure(figsize=(6,2))
    plt.plot(df_stock.index, df_stock['Close'])
    plt.title(corp_name)
    plt.xticks(rotation=90)
    plt.axvline(x = rcept_date, color = 'red')
    plt.show()

결과를 보겠습니다. 아래 빨간부분은 레포트 접수일자가 표시됩니다.

그래프상의 빨간 라인도 레포트 접수일자입니다.

4개만 표시시키고 나머지느 생략하겠습니다.

 

 

이상으로 무상증자 결정 공시정보를 가져와 해당 회사의 주가 정보를 확인해봤습니다.

반응형