ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [야후 파이낸스 데이터를 활용한 Quant Analysis - 2] 쓸 만한 데이터 정리하기 (1)
    Morgan Project/주식 데이터 분석 (Quant Analysis) 2022. 6. 25. 19:39

     

     

     

     

    지난 포스팅에 이어, 이번에는 yfinance로 수집한 종목의 데이터를 살펴보고, 이 중에서 쓸 만한 정보들을 선별해보도록 하자. 단기 매매 관점이 아닌 가치투자 관점으로 종목을 볼 것이기 때문에 이와 관련된 정보들을 위주로 살펴본다는 점을 유의하도록 하자.

     


     

     

    [Ticker Info 살펴보기]

     

    우선 마이크로소프트라는 종목을 예시로 살펴보자. 아래의 코드처럼 마이크로소프트 종목의 Ticker 객체를 불러오도록 하자.

     

    import yfinance as yf
    
    ticker = yf.Ticker("MSFT")

     

     

    그리고 나서 Ticker 객체의 info 변수를 살펴본다. 여기에는 종목의 재무제표와 히스토리 정보를 제외한 거의 모든 정보들이 들어있다.

     

     

     

    위 이미지처럼 Dictionary의 형태로 데이터가 들어가 있다. 마이크로소프트라는 회사의 주소부터, 애널리스트들의 매수의견까지 아주 다양한 정보들을 확인할 수 있다. 여기에서 Quant Analysis에 필요한 정보들을 나름대로 정리하여 Mapper Dictionary를 하나 만들었다.

     

    info_columns_mapper = {
        # 정보 관련
        'market': '상장종류',  # nasdaq, nyse, amex
        'sector': '섹터',
        'industry': '산업군',
        'recommendationKey': '종합매수의견',
        
        # 매매 정보 관련
        'sharesOutstanding': '발행주식수',
        'averageVolume10days': '종목평균거래량(10일)',
        'averageVolume': '종목평균거래량',
        'heldPercentInstitutions': '기관보유비율',
        'shortRatio': '일일공매도비율',
        'sharesPercentSharesOut': '발행주식대비공매도비율',
        'shortPercentOfFloat': '유동주식중공매도비율',
        
        # 가격 관련
        'marketCap': '시가총액',  # 200B:mega // 10B~200B:large // 2B-10B:medium // 300M~2B:small // 50M~300M:micro // ~50M:nano
        'currentPrice': '현재가',
        'fiftyDayAverage': '50일평균가',
        'twoHundredDayAverage': '200일평균가',
        'fiftyTwoWeekHigh': '52주최고가',
        'fiftyTwoWeekLow': '52주최저가',
        'SandP52WeekChange': 'S&P_52주변동성',
        '52WeekChange': '52주변동성',
        'ytdReturn': '연초대비수익률',
        'fiveYearAverageReturn': '5년연평균수익률',  # 5년연평균수익률
        'beta': '베타값',  # 5년 데이터, 개별주식의 변동률을 의미. 1에 가까울수록 시장과 가깝고, 1을 넘어가면 시장 대비 고변동, 0으로 가까우면 시장 대비 저변동 주식을 의미함.
        
        # 현금 창출, 매출 관련 (ttm)
        'totalRevenue': '총매출액',
        'grossProfits': '매출총이익',  # 매출이익(매출액 - 매출원가)
        'revenuePerShare': '주당매출액',
        'ebitda': 'EBITDA',  # 감가상각 등의 부가비용을 차감하기 전의 금액, 영업 활동을 통한 현금 창출 능력. 유형자산의 가치까지 포함하는 지표
        'ebitdaMargins': 'EBITDA마진',  # 유형자산의 유지비용을 고려한 기업의 현금 창출 능력
        
        # 재무 상태 관련 (mrq)
        'debtToEquity': '부채자본비율',
        'operatingCashflow': '영업현금흐름',  # 영업현금흐름 : 영업이익 - 법인세 - 이자비용 + 감가상각비
        'freeCashflow': '잉여현금흐름',  # 기업의 본원적 영업활동을 위해 현금을 창출하고, 영업자산에 투자하고도 남은 현금
        'totalCashPerShare': '주당현금흐름',
        'currentRatio': '유동비율',  # 회사가 가지고 있는 단기 부채 상환 능력
        'quickRatio': '당좌비율',  # 회사가 가지고 있는 단기 부채 상환 능력
        
        
        # 경영 효율 관련
        'returnOnAssets': '자기자본이익률',  # mrq : 간단히 말해, 얼마를 투자해서 얼마를 벌었냐
        'returnOnEquity': '총자산순이익률',  # mrq : ROE와 비교하여 기업이 가지고 있는 부채의 비중을 볼 때
        'grossMargins': '매출총이익률',  # ttm : 매출이익(매출액 - 매출원가) / 매출액 : 매출이익률, Gross Profit Margin (GPM)
        'operatingMargins': '영업이익률',  # ttm : 매출총이익 - 판관비 - 감가상각비
        'profitMargins': '순이익률',  # ttm : Net Income(순이익) / Revenue(총수익) : 순이익률, Net Profit Margin (NPM)
        
        # 기업 자산 관련
        'totalCash': '총현금액',
        'totalDebt': '총부채액',
        
        # 기업 가치 관련
        'priceToBook': 'PBR',  # 기업이 가진 순 자산에 비해 주가가 얼마나 비싼지
        'enterpriseValue': '기업가치',  # 기업가치 : 시가총액 + (총차입금 - 현금성 자산)
        'enterpriseToRevenue': 'EV/R',  # 매출액대비 기업가치 비율
        'enterpriseToEbitda': 'EV/EBITDA',  # EBITDA대비 기업가치 비율 : PER과 의미적으로 비슷한 지표
        'forwardEps': '선행1년EPS',  # 주당순이익, 보통 5년동안의 EPS를 관찰해서 추이를 봄
        'trailingEps': '1년EPS',  # 주당순이익 = 당기순이익 / 유통주식수
        'priceToSalesTrailing12Months': '1년PSR',  # 주가매출액비율 (1년 기준)
        'forwardPE': '선행1년PER',  # 향후 1년동안 예상되는 PER
        'trailingPE': '1년PER',  # 현재 PER. 기업이 한 주당 벌어들이는 순이익에 비해, 실제 주가가 몇 배가 되는 지 나타내는 지표. 고평가 저평가에 사용
        
        # 배당 관련
        'dividendYield': '배당수익률',  # 현재 기준 배당 수익률
        'payoutRatio': '배당성향',  # 20 ~ 60% 사이가 일반적.
        'trailingAnnualDividendYield': '1년배당수익률',  # 지난 1년간 배당 수익률
        'dividendRate': '주당수익달러',
        'trailingAnnualDividendRate': '1년주당수익달러',
        
        # 성장성 관련
        'revenueGrowth': 'mrq매출액증가율',
        'earningsGrowth': 'mrq수익상승률',
        'earningsQuarterlyGrowth': 'yoy수익상승률',  # yoy : 지난해 동일 분기 대비 최근 분기의 수익 상승률
        'revenueQuarterlyGrowth': 'yoy매출상승률',  # yoy : 지난해 동일 분기 대비 최근 분기의 매출 상승률
        'heldPercentInsiders': '직원보유비율',
    }

     

    정리한 내용들은 기업의 가치평가에 사용될 수 있는 정보들을 모아놓은 것이다. 물론 이걸 다 활용하진 않겠지만, 공부에 도움이 되는 모든 column들을 끌어다가 정리했다. 중요한 정보들을 몇 개 살펴보도록 하자.

     

     


     

     

    1) 기업의 현금 창출 능력

     

    - totalRevenue : 기업의 총 매출액을 의미한다
    - grossProfits : 기업의 총 매출 이익을 의미한다. 매출액에 매출 원가를 제외한 개념.

    - revenuePerShare : 주당매출액을 의미한다. 현재 기업 가치 대비, 얼마나 많은 매출을 내고 있는지를 알 수 있는 지표.

    - ebitda : 이자나 세금 등의 부가비용 지출, 그리고 감가상각비를 순이익에서 빼기 전의 기업 이익을 말한다. 주로 감가상각비를 많이 가지고 있는 기업(반도체 설비 기업 등)들의 현금 창출력이 얼마나 되는지를 보기 위한 지표라고 할 수 있다.

    - ebitdaMargins : ebitda를 매출액으로 나눈것이다. 감가상각비를 뺀 영업이익의 매출 대비 효율이 얼마나 좋은 지를 보는 것이다. 기업 현금 흐름의 효율성 측면을 보기 위한 지표.

     

     

     

    2) 기업의 재무 관련 지표

     

    - debtToEquity : D/E Ratio, 부채자본비율이라고 불린다. 기업의 총 부채를 주주 자본으로 나눈 것이다. 부채자본비율은 기업 경영에 대한 주주의 기여도와 주주 이외 채권자, 대금업자, 채무자, 원재료 및 제품 공급업자 등의 기여도를 평가하는 데 유용하게 쓰인다. 일반적으로 부채자본비율은 낮은 게 좋다. 기업이 레버리지를 얼마나 사용하고 있는가를 나타내기 때문이다.

    - operatingCashflow : OCF, 영업현금흐름 혹은 Cash Flows from Operating (CFO)라고 불린다. ebitda와 유사한 개념이지만, 매출에 영향을 미치는 영업 자산을 조금 더 반영하는 지표이다. 영업이익 + 법인세 + 이자비용 + 감가상각비가 EBITDA인 반면, 영업이익 - 법인세 - 이자비용 + 감가상각비가 OCF를 계산하는 방법이다. EBITDA는 자산에 대한 고려가 안 되어있다는 단점이 있고, OCF는 기업가치 뻥튀기를 할 수 있다는 단점이 있다.

    - freeCashflow : 기업활동으로 벌어들인 돈 중, 세금과 판관비, 감가상각비를 제외하고 남은 현금을 의미한다. 즉 잉여현금흐름을 의미하는 것. 잉여현금흐름은 배당금 또는 기업의 저축, 인수·합병, 자사주 매입, 채무 상환 등의 용도로 사용할 수 있다. 

    - currentRatio : 유동 비율을 의미한다. 유동비율 (Current ratio) = 유동자산 (Current Assets) / 유동부채 (Current Liabilities). 요즘 코스닥에서 유행하는 무상증자 같은 것들도 이 현금흐름을 보고 판단할 수 있다. 값이 클 수록 자산이 많거나 부채가 작은 것이므로, 일반적으로 비율이 클 수록 좋다. 하지만 너무 높아도 돈을 제대로 못 쓰는 것이기 때문에 마냥 좋지는 않다.
    - quickRatio : 당좌 비율은 회사가 가지고 있는 단기적인 부채 상환 능력을 의미한다. 유동 비율과 다른 점은, 유동 자산에 재고 자산을 차감한 뒤에 나오는 값을 유동 부채로 나눈다는 점이다. 즉, 당좌 비율 (Quick ratio) = (유동자산 - 재고자산) / 유동부채 (Current Liabilities)이다. 유동 비율은 높은데 당좌 비율이 낮은 경우, 재고가 많이 쌓인 것까지 자산 거품으로 반영되고 있다는 것이다.

     

     

     

    3) 경영 효율성 관련 지표

     

    - returnOnAssets : ROE(Return On Equity, 자기자본이익률), 당기순이익을 자기자본으로 나눈 것으로, 간단히 말하면 얼마를 투자해서 얼마를 벌었냐를 판단하는 경영 효율성과 관련된 지표이다. 킹런 버핏은 ROE를 매년 15% 이상 내는 기업에 주목하라고도 말했었다.

    - returnOnEquity :  ROA(Return On Assets, 총자산순이익률), 당기순이익을 단순히 자기자본으로 나눈 것이 아닌, 부채까지 포함한 값으로 나눈 것이다. ROE와 함께 보면 얼마나 레버리지를 잘 쓰고 있는 기업인지를 알 수 있는 지표이다. ROE에 비해 ROA가 낮다면, 기업이 가지고 있는 부채의 비중이 높다는 것이다. 가치주는 두 지표가 차이나지 않는 것이 좋지만, 성장주는 두 지표가 어느 정도 차이가 나는 것이 효율적 경영이라고 할 수 있다.

    - grossMargins : Gross Profit Margin (매출총이익률), 매출총이익(매출액 - 매출원가)를 매출액으로 나눈 것. 대부분의 경우에는 같은 산업군끼리 비교하는 것이 의미가 있다.
    - operatingMargins : Operating Profit Margin (영업이익률), 총매출액에서 매출원가를 감산한 것이 매출총이익이고, 다시 관리비와 판매비용을 제한 것이 영업이익이다. 즉, 매출액에서 매출 원가, 판관비, 감가상각비까지 빼버린 것.
    - profitMargins : Net Profit Margin (순이익률), 기업이 매출액 대비 얼마 만큼의 순이익을 내는지 계산한 것. 매출총이익률, 영업이익률, 순이익률 모두 비슷한 의미이지만 관리비나 판매비가 많이 드는 산업군이 있고, 원가가 들지 않는 산업군이 있기 때문에 세 가지를 유두리 있게 보는 것이 좋다.

     

     

     

    4) 기업 가치 관련 지표

     

    - enterpriseValue : 흔히 말하는 기업가치를 의미한다. 정확히는 시가총액 + (총차입금 - 현금성 자산)을 계산한 것.
    - enterpriseToRevenue : EV/R(Enterprise Value to Revenue Multiple). 매출액대비 기업가치 비율을 의미한다. EV(시가총액 + (총차입금 - 현금성 자산))를 매출(Revenue)로 나눈 것. EV/EBITDA가 2라면, 만약 투자자가 기업가치대로 기업을 인수했을 때 EBITDA 2년치만 있으면 투자 원금을 회수할 수 있다는 의미이다. 그래서 PER과 의미적으로 비슷한 지표라고 할 수 있다. 보통 M&A를 위한 기업가치 평가에 주로 쓰인다.

    - enterpriseToEbitda : EV/EBITDA(Enterprise Value to EBITDA), 기업가치를 EVITDA로 나눈 것. 
    - priceToBook : PBR(Price to Book Ratio), 주가순자산비율, P/B 로 표기하기도 한다. (주가순자산비율 = 주당 가격 / 주당순자산가치)로 계산되며, 가장 대표적인 가치평가 지표중에 하나이다. PER, PSR과 헷갈리곤 하는데 PER은 순이익 대비 기업이 평가된 비율이며 PSR은 매출액 대비 기업이 평가된 비율, PBR은 순자산 대비 기업이 평가된 비율이다. 주로 제조업이나 가치주에서 많이 사용된다.

    - trailingPE : PER(Pricing Earning Ratio), 주가수익비율이다. 지난 1년을 기준으로, 현재 PER을 나타낸다. 기업이 한 주당 벌어들이는 순이익에 비해, 실제 주가가 몇 배가 되는 지 나타내는 지표이다. 주로 성장주에서 많이 사용된다.
    - priceToSalesTrailing12Months : PSR(Price Selling Ratio, 주가매출액비율), 주가매출액비율 = 주당 가격 / 주당 매출액 혹은 (시가총액 / 매출액). 보통 미래 유망 종목에 속하는 종목들은 적자 단계에 있는 경우도 많다. 이런 기업들을 PER로 평가하는 것은 좋지 않기 때문에, 수익비율 대신 매출비율을 봐야하는 경우가 있고, 이를 살펴보는 지표가 바로 PSR.



     

     

    여기까지가 기업 가치평가에 흔히 사용되는 지표들을 정리한 것이고, Ticker 객체의 info 정보 외에도 쓸 만한 정보들이 몇 가지 있다. 다음 포스팅에서는 이를 이어서 알아보고, 크롤링 하는 코드까지 작성해보도록하자.

     

     

     

     

    댓글

분노의 분석실 Y.LAB