더북(TheBook)

이번에는 Fidelity Contrafund Fund(FCNTX)의 주가를 내려받고 초과 수익률을 계산한다. Fidelity Contrafund Fund(FCNTX)는 1967년에 설정된 대형 펀드로, 순자산이 1,000억 달러가 넘는다.

이번에는 앞서 구한 요인 데이터셋을 이용한 초과수익률을 독립변수로 하고 FCNTX 펀드의 월간수익률 데이터를 종속변수로 설정한 후 회귀분석을 한다.

# 필요한 패키지를 임포트한다 
from pandas_datareader 
import data as web import pandas as pd 

# Fidelity Contrafund Fund(FCNTX) 
ticker = "FCNTX" 

# 1980년 1월부터 2019년 6월까지 펀드 월간(interval='m') 과거 주가 중 수정주가(Adj Close)를 구한다 
pxclose = web.get_data_yahoo( ticker, start='1980-01-01', end='2019-06-30', interval='m' )[ 'Adj Close' ] 

# 앞서 요인 자료와 합치기 위해 인덱스 종류를 변경한다 
pxclose.index = pxclose.index.strftime( '%Y-%m' ) 

# 수익률을 계산한다 
ret_data = pxclose.pct_change( )[ 1: ] 

# 데이터프레임으로 변경한다 
ret_data = pd.DataFrame( ret_data ) 

# 컬럼의 이름을 portfolio로 변경한다 
ret_data.columns = [ 'portfolio' ] 

# 회귀분석을 위해 두 개의 데이터프레임(ret_data, ds_3_factors)을 합친다 
# 두 프레임의 인덱스를 기준으로 합치는 경우 매개변수 left_index와 right_index를 True로 한다 
# 또 합치려는 두 프레임의 컬럼 데이터나 인덱스끼리 서로 일치하는 데이터만 합치는 경우 how 매개변수를 'inner'로 한다 
regress_data=ret_data.merge( ds_3_factors, how = 'inner', left_index = True, right_index = True ) 

# "Mkt-RF" 컬럼명을 "mkt_excess"로 변경한다 
regress_data.rename( columns={ "Mkt-RF":"mkt_excess" }, inplace=True ) 

# 초과수익률(펀드 수익률-무위험수익률)을 계산하고 'port_excess' 컬럼을 만들어 저장한다
regress_data[ 'port_excess' ] = regress_data[ 'portfolio' ] - regress_data[ 'RF' ]
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.