● 부채비율과 차입금비율, 장기투자 할 수 있는 토대
기업이 제때 빚을 갚지 못하면 기업의 재산은 채권자에게 넘어간다. 망하지 않을 기업을 찾는 방법으로 부채가 얼마인지 살펴보는 방법이 있는데, 절대량으로 비교하는 것이 아니라, 전체 자산 중에 얼마를 가지고 있는지와 부채 중에서도 차입금 비율을 확인해야 한다고 한다.
부채비율 = (총부채)/(총자본)*100%로 표시하는데, 부채비율이 100 이상이면 부채가 자본보다 많은 것이다. 부채비율이 낮으면 안정적이지만, 높다고 무조건 나쁜 것은 아니다. 레버리지를 잘 활용하고 있을 수 있는 것이다.
그중에서 이자 비용이 발생되는 차입금 비용을 중요하게 보는데, Debt/Equity Ratio라는 항목으로 제시된다. 차입금 비율은 (단기차입금 + 장기차입금)/총자본 * 100으로 이루어져 있다.
부채비율이나 차입금비율을 볼 때는 비율의 변화와 총자산의 변화를 함께 봐야 한다. 부채비율이 줄면서 총자산도 함께 줄어들고 있으면, 회사가 쪼그라든다는 의미일 수 있다. 하나 체크해 보자.
df.pip install finterstellar
import finterstellar as fs
df=fs.fn_single(otp='otp', symbol='GOOGL',window='T')
df.columns
columns으로 체크해 보면, Current Debt, Long Term Debt, Total Liabilites, Shareholders Equity를 이용하면 된다.
Index(['Revenue', 'COGS', 'Gross Profit', 'SG&A', 'Operating Income',
'Net Income', 'EPS', 'EBITDA', 'EBIT', 'Shares', 'Cash & Equivalents',
'Receivables', 'Inventory', 'Current Assets', 'Long Term Assets',
'Total Assets', 'Current Debt', 'Current Liabilities', 'Long Term Debt',
'Long Term Liabilities', 'Total Liabilities', 'Shareholders Equity',
'Depreciation', 'Operating Cash Flow', 'Capital Expenditure',
'Investing cash flow', 'Dividends', 'Financing cash flow', 'Price'],
dtype='object')
계산해서 그래프로 살펴보면, 구글은 총자산이 증가하면서 부채비율이 조금씩 증가하는 모습을 볼 수 있다. 근데, 부채비율은 42% 정도 되는 것 같은데, 차입금비율은 7%도 안된다. 미친 기업인가?
df['Liability/Equity']=df['Total Liabilities']/df['Shareholders Equity']
df['Debt/Equity']=(df['Long Term Debt'] + df['Current Debt']) / df['Shareholders Equity']
df[['Liability/Equity', 'Debt/Equity']].tail()
fs.draw_chart(df,left='Total Assets', right='Liability/Equity')
fs.draw_chart(df,left='Total Assets', right='Debt/Equity')
부채비율이 낮은 종목만 골라서 투자했다면이라는 물음에 백테스트를 진행해 보자.
terms=fs.set_terms(trade_start='2011Q1', trade_end='2021Q1')
data={}
s={}
signal={}
for t in terms:
data[t]=fs.fn_consolidated(otp='otp', term=t)
for t in terms:
data[t]['Liability/Equity']=data[t]['Total Liabilities']/data[t]['Shareholders Equity']
data[t].loc[(data[t]['Shareholders Equity']<0), 'Liability/Equity']=float('nan')
s[t]=fs.fn_filter(data[t], by='Liability/Equity',floor=0 , n=30, asc=True)
signal[t]=list(s[t].index)
df=fs.backtest(signal=signal, data=data, m=3, cost=0.001)
fs.draw_return(df)
10년 간의 투자 성과가 그렇게 좋은 느낌은 아니다.
CAGR: 8.97%
Accumulated return: 136.31%
Investment period: 10.0yrs
Sharpe ratio: 0.57
MDD: -27.57%
여태 좋았던 PBR 전략과 합쳐서 비교해 보자.
s={}
signal={}
for t in terms:
data[t]['PBR']=data[t]['Price_M3'] / (data[t]['Shareholders Equity']/data[t]['Shares'])
s[t]=fs.fn_filter(data[t], by='PBR', floor=0.1, cap=1,n=30, asc=True)
signal[t]=list(s[t].index)
df=fs.backtest(signal=signal, data=data, m=3, cost=0.001)
위에 생성된 분기별 데이터를 기반으로 PBR을 구해서 보면 아래의 성과를 나타낸다.
CAGR: 36.67%
Accumulated return: 2179.55%
Investment period: 10.0yrs
Sharpe ratio: 4.54
MDD: -34.14%
부채비율 합성하면 오히려 성과가 안 좋다. 그래도 S&P500보단 좋다.
s1={}
s2={}
s={}
signal={}
for t in terms:
data[t]['PBR']= data[t]['Price_M3'] / (data[t]['Shareholders Equity'] / data[t]['Shares'])
data[t]['Liability/Equity']=data[t]['Total Liabilities']/data[t]['Shareholders Equity']
data[t].loc[(data[t]['Shareholders Equity']<0), 'Liability/Equity']=float('nan')
s1[t]=fs.fn_filter(data[t], by='PBR', floor=0.1, cap=1, asc=True)
s2[t]=fs.fn_filter(data[t], by='Liability/Equity', floor=0, n=1000, asc=True)
s[t]= fs.combine_signal(s1[t],s2[t],how='and',n=30)
signal[t]=list(s[t].index)
df=fs.backtest(signal=signal, data=data,m=3,cost=0.001)
fs.draw_return(df)
CAGR: 22.61%
Accumulated return: 669.34%
Investment period: 10.0yrs
Sharpe ratio: 1.41
MDD: -44.43%
'미래걱정 > 주식' 카테고리의 다른 글
미국 최대 수입국이 바뀌다. 국제 정세의 향방은? (0) | 2023.07.17 |
---|---|
달러와 엔화, 미국과 일본 더 안전하고 유망한 투자처는? (0) | 2023.07.09 |
ROA와 비슷한 영업 효율의 지표(GP/A) 백테스트 - 슬기로운 퀀트투자 6장 우량주를 찾는 기술(finterstellar) (0) | 2023.04.05 |
우량주를 찾는 기술 (ROA, ROE, RIM) [슬기로운 퀀트투자 6장(feat. finterstellar)] (0) | 2023.04.04 |
EV/EBITA EV/Sales, NCAV(안전마진, 1170%의 수익률), PEG(주가수익성장비율)로 백테스트 해보기 (feat. 핀터스텔라 finterstellar) (0) | 2023.04.02 |
댓글