Alpha Factor 탐색 > Value Factor

2023. 7. 20. 22:44금융 데이터 분석

반응형

Value Factor를 활용하여 투자를 하는 사람들은 결국 기업이 가친 가치만큼 주가가 올라가거나 또는 내려간다고 생각을 합니다. 

주요한 Value Factor로는 Cash flow yield, Free Cash flow yield, 배당율, Earning yield(주가대비 수익) 등이 있습니다. 정말 많은 Value Factor들이 있기 때문에 무엇을 적용할지를 결정하는 것부터가 중요한 일이라고 볼 수 있을 것입니다. 일단 여기서는 Python을 활용해서 Free Cash flow yield를 계산하는 방법을 다루어보겠습니다. 이 방법을 이용해서 재무정보와 주가 정보를 불러와서 자신이 활용하고 싶은 Factor들을 만들어서 활용하시면 좋을 것 같습니다.

[Free Cash flow yield]

Cash flow(영업현금흐름) yield는 일반적으로 주식수당 영업활동현금흐름을 시장가로 나눈 값이고 Free cash flow(잉여현금흐름) yield는 주식수당 잉여현금흐름을 시장가로 나눈 값입니다. 결국 Free cash flow yield는 "Free cash flow ÷ 시가총액"이 됩니다.

Free cash flow yield을 구하기 위해서는 잉여현금흐름을 먼저 구해주어야 하는데 구하는 방법은 아래 두가지가 있습니다 

1. 잉여현금흐름 = 당기순이익 + 감가상각비 - 비유동자산증가분 - 순운전자본증가분

2. 잉여현금흐름 = 영업활동현금흐름 - CAPEX(고정자산투자)

여기서는 2번의 방법을 활용하여 카카오의 잉여현금흐름을 구해보도록 하겠습니다.  다만, 고정자산투자규모를 추정하는 것이 기업 내부기준으로 인해 정해질 수 있기 때문에, 카카오 IR자료에서 활용한 기준인 "유형자산취득+무형자산취득" 을 CAPEX로 활용해보겠습니다.

보통 전년도 공시가 3월 정도에 나오기 때문에, 카카오의 4월 3일 주가를 활용하여 Free Cash flow yield를 구해보겠습니다. 이를 활용해서 4월의 주가가 적절한지에 대해서 판단해보겠습니다. Dart API를 활용하여 공시자료를 가지고 온 후에 계산시 필요한 항목들을 불러와서 주가정보와 연계하여 분석을 수행하면 됩니다.

import FinanceDataReader as fdr
import pandas as pd
import numpy as np
import OpenDartReader
import requests
from bs4 import BeautifulSoup
import os



## Dart에서 공시자료 가지고 오기
api_key='your API KEY'
dart = OpenDartReader(api_key)
df_fs = dart.finstate_all('035720', 2022, reprt_code='11011') ## '11013':'1Q', '11012':'Half-year', '11014':'3Q', '11011':'Annual'



##  Free Cash flow yield 구하기
## 재무제표중 현금흐름표 가져오기
df_cf = df_fs.loc[df_fs["sj_div"]=='CF']

## 잉여현금흐름 계산을 위해 필요한 항목 가지고 오기
operational_cash_flow=int(df_cf[df_cf["account_nm"] == "영업활동현금흐름"]["thstrm_amount"].values[0])
purchase_of_property=int(df_cf[df_cf["account_nm"] == "유형자산의 취득"]["thstrm_amount"].values[0])
purchase_of_intangibleasset = int(df_cf[df_cf["account_nm"] == "무형자산의 취득"]["thstrm_amount"].values[0])

## Capex = 유형자산취득 + 무형자산 취득
capex = purchase_of_property + purchase_of_intangibleasset

## 잉여현금흐름 = 영업활동현금흐름 - Capex
free_cash_flow = operational_cash_flow-capex


## 4월 3일 주가 가져오기
df = fdr.DataReader('035720','2023-04-01', '2023-04-03')

## 카카오 주식수 구하기
df_market =  fdr.StockListing('KRX-MARCAP') ## 회사별 시가총액, 주식수
the_num_of_kakao_stocks = df_market.loc[df_market["Code"]=='035720']["Stocks"]

## 4월 3일 기준 시가총액구하기
marcap = df["Close"].values[0]*the_num_of_kakao_stocks.values[0]

## free_cash_flow_yield 구하기
free_cash_flow_yield = free_cash_flow/marcap ## 상당히 낮음

 

22년의 현금흐름이 카카오에게는 좋진 않았는데, 그렇기 때문에 Free cash flow yield는 4월달의 카카오 주가가 비싸다는 것을 나타내고 있습니다.

하지만 투자활동에 쓰이는 현금흐름이 향후 수익성 개선 및 현금창출에 활용될 수 있다면 이 지표가 낮은 것이 꼭 나쁜 것만은 아닐 수 있습니다. 그렇기 때문에 여러 지표를 동시에 고려해야 올바른 결정을 할 수 있을 것 같습니다. 다만, 여기서는 그냥 파이썬을 기반으로 다루는 방법만 다뤄보는 것을 목적으로 하기 때문에 어떤 지표를 어떻게 활용할지에 대해서는 다뤄보지 않겠습니다.(사실 저도 잘 모릅니다!!)

 

 

참조:

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hwii_pyj&logNo=221007845468 

https://t1.kakaocdn.net/kakaocorp/admin/ir/event/5444.pdf

https://blog.naver.com/frame8717/222259993178

https://jatechpedia.tistory.com/58

반응형