본문 바로가기
미래걱정/주식

안정성 지표 (부채비율, 차입금 비율)을 통한 백테스트 - 슬기로운 퀀트투자 6장 우량주를 찾는 기술 (finterstellar)

by JHistory_ 2023. 4. 8.
반응형
 
미국 주식으로 시작하는 슬기로운 퀀트투자
이 책은 서학개미를 위한 미국 주식 퀀트투자 입문+실습서이다. 퀀트투자는 수학적, 통계적 기법을 활용해 투자 종목을 발굴하는 투자 방법이다. 퀀트투자 전략을 만들기 위해서는 유명한 전략들이 어떻게 만들어졌는지 개념을 이해하고, 어떻게 구현됐는지 기본기를 따라 하며 배워야 한다. 다만 투자 대가들의 전략을 소개한 책은 쉽게 찾아볼 수 있지만, 그 전략을 구현한 기술적인 방법을 담은 책은 매우 찾아보기 어렵다. 또한 퀀트투자 전략을 공부하기 위해서는 코딩이나 수학 등 부가적인 배경지식이 필요하다. 이 책은 이미 잘 알려진 투자 대가들의 전략을 소개하고 자신의 컴퓨터에서 이 전략을 구현해보며 응용하는 방법을 알려준다. 책을 따라 미국 주식 퀀트투자 과정을 배우고 나면 자신만의 투자 전략을 스스로 개발할 수 있을 것이다.
저자
김용환, Yubin Kim
출판
한빛미디어
출판일
2021.09.30

 

● 부채비율과 차입금비율, 장기투자 할 수 있는 토대

 기업이 제때 빚을 갚지 못하면 기업의 재산은 채권자에게 넘어간다. 망하지 않을 기업을 찾는 방법으로 부채가 얼마인지 살펴보는 방법이 있는데, 절대량으로 비교하는 것이 아니라, 전체 자산 중에 얼마를 가지고 있는지와 부채 중에서도 차입금 비율을 확인해야 한다고 한다.

 

 부채비율 = (총부채)/(총자본)*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%

 

 

 

ROA와 비슷한 영업 효율의 지표(GP/A) 백테스트 - 슬기로운 퀀트투자 6장 우량주를 찾는 기술(finterst

미국 주식으로 시작하는 슬기로운 퀀트투자 이 책은 서학개미를 위한 미국 주식 퀀트투자 입문+실습서이다. 퀀트투자는 수학적, 통계적 기법을 활용해 투자 종목을 발굴하는 투자 방법이다. 퀀

jhhistory.tistory.com

 

EV/EBITA EV/Sales, NCAV(안전마진, 1170%의 수익률), PEG(주가수익성장비율)로 백테스트 해보기 (feat. 핀터

https://jhhistory.tistory.com/entry/%EA%B0%80%EC%B9%98%EC%A7%80%ED%91%9C-%EA%B2%B0%ED%95%A9%ED%95%98%EA%B8%B0-PER-PBR-%EB%93%B1-%ED%8C%8C%EC%9D%B4%EC%8D%AC-Finterstellar-%EB%AA%A8%EB%93%88-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0 가치지표 결합하기 (PER

jhhistory.tistory.com

 

가치지표 결합하기 (PER , PBR 등) - 파이썬 Finterstellar 모듈 활용하기

미국 주식으로 시작하는 슬기로운 퀀트투자 이 책은 서학개미를 위한 미국 주식 퀀트투자 입문+실습서이다. 퀀트투자는 수학적, 통계적 기법을 활용해 투자 종목을 발굴하는 투자 방법이다. 퀀

jhhistory.tistory.com

 

미국주식으로 시작하는 슬기로운 퀀트투자 5장(1) - 가치주를 찾는 기술 (feat. PER Band Chart 핀터스

미국 주식으로 시작하는 슬기로운 퀀트투자 이 책은 서학개미를 위한 미국 주식 퀀트투자 입문+실습서이다. 퀀트투자는 수학적, 통계적 기법을 활용해 투자 종목을 발굴하는 투자 방법이다. 퀀

jhhistory.tistory.com

 

단기 투자의 기술 편 (보조지표를 통한 백테스팅) - 슬기로운 퀀트투자 3장

미국 주식으로 시작하는 슬기로운 퀀트투자 이 책은 서학개미를 위한 미국 주식 퀀트투자 입문+실습서이다. 퀀트투자는 수학적, 통계적 기법을 활용해 투자 종목을 발굴하는 투자 방법이다. 퀀

jhhistory.tistory.com

 

슬기로운 퀀트투자 - 2장 일단 해보자 편

미국 주식으로 시작하는 슬기로운 퀀트투자 이 책은 서학개미를 위한 미국 주식 퀀트투자 입문+실습서이다. 퀀트투자는 수학적, 통계적 기법을 활용해 투자 종목을 발굴하는 투자 방법이다. 퀀

jhhistory.tistory.com

 

반응형

댓글