오늘은 DART의 2021년 1분기 손익계산서 데이터를 사용해, 영업이익 증가한 종목을 찾아내보겠습니다.

본격적인 글에 앞서, 절대 어떤 종목을 추천하기 위한 글이 아니며, 본 글로 인해 투자한 종목의 손실에 대해서는 절대 누구도 책임지지 않습니다.

DART에서 손익계산서를 다운로드하고 데이터베이스화하는 과정은 아래 글을 참고해주세요.

 

https://sweetquant.tistory.com/263?category=1163308 

 

2021년 1분기 DART 재무제표 데이터베이스화하기

본 자료는 '평생 필요한 데이터 분석'의 오프라인 강의 자료의 일부입니다. 오늘은 DART의 2021년 1분기 재무제표 데이터를 다운로드해서 데이터베이스화하는 작업을 진행하겠습니다. 이후에는 데

sweetquant.tistory.com

 

위의 글을 통해, DART 손익계산서를 데이터베이스화했다고 가정하고 설명하도록 하겠습니다.

여기서는 앞에서 업로드용으로 사용한 up_손익계산서_20211q 테이블을 사용해 바로 데이터 분석을 진행합니다. 앞으로 좀 더 통합적이고 체계적인 분석을 위해서는 이와 같은 업로드용 테이블이 아닌, 실제 분석용 테이블로 데이터를 한 번 더 정제해서 사용하는 것이 좋습니다. 이러한 내용은 나중에 기회가 되면 다루도록 하고, 일단은 업로드용 테이블을 바로 사용해 분석을 합니다.

먼저 아래와 같은 SELECT SQL로 테이블을 간단히 조회해봅니다.

SELECT  T1.*
FROM    DB_DTECH.up_손익계산서_20211q T1;

 

결과를 확인해 보면, 굉자히 많은 데이터가 있습니다. 이중에서 오늘 사용할 것은 영업이익 데이터입니다.

테이블을 보면, 항목코드와 항목명이 있는데, '영업이익' 데이터를 제대로 고르기 위해서는 항목코드를 사용해야 합니다. 그러기 위해서는 영업이익의 항목코드가 무엇인지 먼저 찾아내야 합니다. 아래와 같은 SQL로 영업이익 항목코드를 유추해볼 수 있습니다.

SELECT  T1.항목코드
        ,COUNT(*) CNT
FROM    DB_DTECH.up_손익계산서_20211q T1
WHERE   T1.항목명 LIKE '%영업이익%'
GROUP BY T1.항목코드
ORDER BY CNT DESC;
[결과]
항목코드                                          CNT    
================================================= ====== 
dart_OperatingIncomeLoss                          1537   
ifrs-full_ProfitLossFromContinuingOperations      240    
ifrs-full_ProfitLossFromDiscontinuedOperations    170    
ifrs-full_ProfitLossBeforeTax                     7      
ifrs-full_DilutedEarningsLossPerShare             3    

 

항목명에 영업이익이 포함된 데이터를 항목코드별로 카운트를 해서 어떤 항목코드가 가장 많은지 찾아봤습니다. 아마도 dart_OperatingIncomeLoss가 영업이익일거 같습니다.

아래와 같은 SQL로 엔씨소프트의 2021년 1분기 영업이익을 확인해봅니다.

SELECT  T1.회사명 
        ,T1.항목명
        ,T1.당기1분기3개월
        ,T1.전기1분기3개월
FROM    DB_DTECH.up_손익계산서_20211q T1
WHERE   T1.항목코드 = 'dart_OperatingIncomeLoss'
AND     T1.회사명 = '엔씨소프트';
[결과]
회사명            항목명                 당기1분기3개월         전기1분기3개월               
================= ====================== ====================== ====================== 
엔씨소프트        영업이익(손실)         56732864604.00         241424012436.00  

 

 

결과에서, 당기1분기3개월은 2021년 1분기(1월~3월)이고 전기1분기3개월은 2020년 1분기입니다. 엔씨소프트의 2021년 1분기 영업이익은 567억이고, 2020년 1분기 영업이익은 2414억입니다. (엔씨소프트의 영업이익이 엄청 줄었네요.. ㅜ.ㅜ 리니즈의 시대가 저무는걸까요...)

위의 결과는 영업이익이 원 단위로 출력됩니다. 원 단위로 출력되다 보니, 숫자가 너무 길어 보기가 불편합니다. 이 경우 1e8로 나누기 처리하면 원 단위를 억원 단위로 바로 변경할 수 있습니다. 아래와 같이 SQL을 실행합니다.

SELECT  T1.회사명 
        ,T1.항목명
        ,ROUND(T1.당기1분기3개월/1e8,1) 당기1분기
        ,ROUND(T1.전기1분기3개월/1e8,1) 전기1분기
FROM    DB_DTECH.up_손익계산서_20211q T1
WHERE   T1.항목코드 = 'dart_OperatingIncomeLoss'
AND     T1.회사명 = '엔씨소프트';
[결과]
회사명            항목명                 당기1분기       전기1분기           
================= ====================== =============== =============== 
엔씨소프트        영업이익(손실)         567.3           2414.2        

 

결과가 좀 더 보기 편해졌습니다.

이제 우리가 사용한 테이블과 데이터에는 어느정도 감이 잡혔을겁니다. 바로, 영업이익이 가장 많이 오른 종목 열 개를 찾아보겠습니다. 2020년 1분기 대비해 2021년 1분기의 영업이익이 가장 많이 증가한 종목입니다.

SELECT  T1.회사명 
        ,T1.항목명
        ,ROUND(T1.당기1분기3개월/1e8,1) 당기1분기
        ,ROUND(T1.전기1분기3개월/1e8,1) 전기1분기
        ,ROUND(ROUND(T1.당기1분기3개월/1e8,1) - ROUND(T1.전기1분기3개월/1e8,1),1) 영업이익증가액
FROM    DB_DTECH.up_손익계산서_20211q T1
WHERE   T1.항목코드 = 'dart_OperatingIncomeLoss'
ORDER BY 영업이익증가액 DESC
LIMIT 10;
[결과]
회사명            항목명           당기1분기    전기1분기   영업이익증가액  
================= ================ ============ =========== =============== 
SK                영업이익(손실)   15446.9      -9654.3     25101.2         
SK이노베이션      영업이익(손실)   5025.4       -18154.3    23179.7         
S-Oil             영업이익(손실)   6292.2       -10072.6    16364.8         
현대중공업지주    영업이익         5343.0       -4872.3     10215.3         
HMM               영업이익(손실)   10192.9      -20.2       10213.1         
LG디스플레이      영업이익(손실)   5230.3       -3619.2     8849.5          
포스코            영업이익         15524.4      7052.5      8471.9          
롯데케미칼        영업이익(손실)   6237.7       -859.9      7097.6          
한화              영업이익(손실)   8484.7       2964.3      5520.4          
SK하이닉스        영업이익         13244.2      8027.6      5216.6    

 

결과는 보다시피 SK, SK이노베이션, S-Oil의 증가액이 가장 큰 것을 알 수 있습니다. 여기서, 주의할 것은 삼성전자나 현대차와 같은 경우는 저희가 사용한 DART 파일에 데이터가 존재하지 않습니다. DART에서 다운 받은 파일 중 다른 파일에 존재할 것입니다.

그리고, 결과를 보면 SK의 항목명은 '영업이익(손실)'이라고 나오고 현대중공업지주는 항목명이 '영업이익'입니다. DART에서 받은 파일 자체에 항목코드는 같지만 항목명은 다르게 들어가 있는 경우입니다. 그렇기 때문에 우리는 항목코드를 사용해야 하고, 이와 같은 항목명은 나중에 클린징이 필요합니다.(우선은 그냥 사용합니다.)

 

 

위와 같이 영업증가액을 사용하면, 영업이익 금액 자체가 높은 우량 기업 위주로 조회가 됩니다. 이 방법도 좋지만, 영업이익 상승률을 확인해볼 필요도 있습니다.

아래와 같은 SQL로 2020년1분기에 영업이익이 100억 이상이면서 영업이익 상승률이 가장 높은 종목 Top-10을 찾아낼 수 있습니다.

SELECT  T1.회사명 
        ,T1.항목명
        ,ROUND(T1.당기1분기3개월/1e8,1) 당기1분기
        ,ROUND(T1.전기1분기3개월/1e8,1) 전기1분기
        ,ROUND(ROUND(T1.당기1분기3개월/1e8,1) - ROUND(T1.전기1분기3개월/1e8,1),1) 영업이익증가액
        ,ROUND(ROUND(T1.당기1분기3개월/1e8,1) / ROUND(T1.전기1분기3개월/1e8,1),1) 영업이익증가율
FROM    DB_DTECH.up_손익계산서_20211q T1
WHERE   T1.항목코드 = 'dart_OperatingIncomeLoss'
AND     ROUND(T1.전기1분기3개월/1e8,1) >= 100
ORDER BY 영업이익증가율 DESC
LIMIT 10;
[결과]
회사명             항목명          당기1분기   전기1분기   영업이익증가액   영업이익증가율         
================== =============== =========== =========== ================ =============== 
다우기술           영업이익        3628.6      219.2       3409.4           16.6            
다우데이타         영업이익(손실)  3760.2      319.7       3440.5           11.8            
현대건설기계       영업이익(손실)  797.0       106.7       690.3            7.5             
씨젠               영업이익        1939.3      397.5       1541.8           4.9             
만도               영업이익(손실)  718.0       185.0       533.0            3.9             
케이씨씨           영업이익        773.5       205.9       567.6            3.8             
세아베스틸         영업이익(손실)  375.2       107.6       267.6            3.5             
아세아             영업이익(손실)  443.6       139.7       303.9            3.2             
한세예스24홀딩스   영업이익(손실)  441.4       141.4       300.0            3.1             
테스               영업이익        330.3       109.8       220.5            3.0  

 

이번에는 2020년1분기에 영업이익이 500억 이상인 종목 중에 2021년 1분기 영업이익 증가율이 높은 종목 Top-10을 찾아보겠습니다. 앞에 SQL에서 100억 이상 조건만 500억 이상으로 살짝 바꿔주시면 됩니다. 결과만 살펴보면 아래와 같습니다.

회사명                 항목명           당기1분기   전기1분기   영업이익증가액   영업이익증가율         
====================== ================ =========== =========== ================ =============== 
한화                   영업이익(손실)   8484.7      2964.3      5520.4           2.9             
아모레퍼시픽           영업이익         1762.4      609.4       1153.0           2.9             
아모레퍼시픽그룹       영업이익         1976.5      679.1       1297.4           2.9             
휠라홀딩스             영업이익(손실)   1835.7      671.4       1164.3           2.7             
삼성SDI                영업이익(손실)   1331.7      539.7       792.0            2.5             
포스코                 영업이익         15524.4     7052.5      8471.9           2.2             
삼성물산               영업이익(손실)   3025.8      1470.5      1555.3           2.1             
삼성전기               영업이익         3314.8      1662.7      1652.1           2.0             
카카오                 영업이익(손실)   1575.4      882.1       693.3            1.8             
한국타이어앤테크놀로지 영업이익         1860.2      1060.0      800.2            1.8    


마지막으로 2020년 1분기 영업이익 500억 이상이면서 영업이익 증가율이 Top-30 중에, 영업이익 증가액이 가장큰 Top-5만 조회하려면 아래와 같이 SQL을 작성하면 됩니다.

SELECT  T2.*
FROM    (
        SELECT  T1.회사명 
                ,T1.항목명
                ,ROUND(T1.당기1분기3개월/1e8,1) 당기1분기
                ,ROUND(T1.전기1분기3개월/1e8,1) 전기1분기
                ,ROUND(ROUND(T1.당기1분기3개월/1e8,1) - ROUND(T1.전기1분기3개월/1e8,1),1) 영업이익증가액
                ,ROUND(ROUND(T1.당기1분기3개월/1e8,1) / ROUND(T1.전기1분기3개월/1e8,1),1) 영업이익증가율
        FROM    DB_DTECH.up_손익계산서_20211q T1
        WHERE   T1.항목코드 = 'dart_OperatingIncomeLoss'
        AND     ROUND(T1.전기1분기3개월/1e8,1) >= 500
        ORDER BY 영업이익증가율 DESC
        LIMIT 30
        ) T2
ORDER BY T2.영업이익증가액 DESC
LIMIT 5;
[결과]
회사명        항목명           당기1분기  전기1분기  영업이익증가액   영업이익증가율          
============= ================ ========== ========== ================ ================ 
포스코        영업이익         15524.4    7052.5     8471.9           2.2              
한화          영업이익(손실)   8484.7     2964.3     5520.4           2.9              
SK하이닉스    영업이익         13244.2    8027.6     5216.6           1.6              
삼성전기      영업이익         3314.8     1662.7     1652.1           2.0              
삼성물산      영업이익(손실)   3025.8     1470.5     1555.3           2.1        

 

이상입니다.~!

위와 같이 데이터를 다루는 SQL을 이용해 주식을 분석하고 싶다면 아래 책을 추천합니다.~!

 

※ 주의 사항

  ▶ 절대 특정 종목을 추천하거나 투자를 권유하는 책이 아닙니다.

  ▶ 데이터 분석을 공부하기 위한 MySQL 책입니다.

  ▶ 책의 내용을 통해 얻은 종목에 투자해 발생한 손해는, 저를 비롯한 책 관계자 누구도 책임지지 않습니다.

※ 책 소개: https://sweetquant.tistory.com/243

※ 책 미리보기: https://sweetquant.tistory.com/257

※ 완전판 E-Book

  ▶ 유페이퍼: https://www.upaper.net/ryu1hwan/1142997

  ▶ 알라딘: https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=273701425 

  ▶ Yes24: http://www.yes24.com/Product/Goods/102264444?OzSrank=1 

  ▶ 교보문고: https://digital.kyobobook.co.kr/digital/ebook/ebookDetail.ink?selectedLargeCategory=001&barcode=4801167630019&orderClick=LAG&Kc=

 

 

+ Recent posts