datascience/Finanace

금융 투자 기본 개념(Return, Risk)

patrck_jjh 2021. 5. 2. 20:37

금융 투자를 하는데 있어 가장 기초가 되는 개념들이 있다

 

  • Return(수익): 개별 자산의 수익률(R_i)을 각 자산의 가중치(x_i)를 곱하여 합하면 포트폴리오 수익률을 구할 수 있다. 

 

  • Risk(위험): 개별 자산 수익률 간의 분산-공분산 행렬을 통해 포트폴리오 분산을 구하고 Risk를 도출할 수 있다.

 

 


 

 

 

#데이터 불러오기

from pykrx import stock
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
    
# ticker와 list로 코스피 기업목록 가져오기
    
def return_name(market):
    Market = []
 
    for ticker in market:
        Value =stock.get_market_ticker_name(ticker)
        Market.append([Value,ticker])
 
    df = pd.DataFrame(Market,columns=['회사명','상장번호'])
    return df
    
    

KOSPI = stock.get_market_ticker_list(market="KOSPI")
db1 = return_name(KOSPI)

# 시가총액 4대 기업 주식정보가져오기

stocks=['삼성전자','SK하이닉스','NAVER','LG화학']
df_res = pd.DataFrame()

for i in stocks:
    bun=db1[db1['회사명']==i]
    번호=bun.iloc[0,1]
    df_res[i] = stock.get_market_ohlcv_by_date("20160104", "20210325", 번호)['종가']

 

pykrx모듈을 활용하여 주식 데이터를 끌어왔다. 먼저 회사명과 상장번호를 불러와 Market이라는 list에 저장해주는  return_name이라는 함수를 정의했다. 그리고 KOSPI의 ticker 리스트를 불러와 return_name함수를 통해 db1에 데이터 프레임 형태로 저장해 주었다.

 

 

 그 다음 시가총액 4대 기업인 삼성전자, SK하이닉스, Naver, LG화학의 종가를 2016년 1월 4일부터 2021년 3월 25일 까지 데이터를 불러와 df_res에 저장 하였다.

 

 

 

# 포트폴리오 Return
daily_ret = df_res.pct_change()           #pct_change() 일간 수익률 구하기
annual_ret = daily_ret.mean() * 252       #일간수익률 평균에 252를 곱해서 연간 수익률 구하기

# 포트폴리오 Risk
daily_cov = daily_ret.cov()               #일간 리스크
annual_cov = daily_cov * 252              #연간 리스크

 

pct_change()은 전날 수익률 대비 오늘의 수익률을 구해주는 명령어 이다. daily_ret에 각 날의 수익률을 구하고 그 수익률들의 평균을 구해서 연간 개장 일수인 252를 곱해 연간 수익률을 구하였다.

 

다음으로 cov()명령어를 통해 4개의 주식 수익률(daily_ret)간의 분산-공분산 행렬을 구하고 또한 252를 곱하여 연간 분산-공분산 행렬을 구했다.

 

annual_ret

 

 각 주식의 연간 수익률을 보여준다.

 

 

annual_cov   # 각각의 분산표시 ~ 리스크의 제곱값 ~ variance-covariance matrix

 

 

 대각선에 위치한 값들은 각 주식의 분산 값으로 삼성전자는 7.36%, SK하이닉스는 13.44%, Naver는 11.29%, LG화학은 14.81%라고 생각할 수 있다. 대각선 이외의 값들은 주식 간의 공분산을 나타낸다.

 

 

 

 

 

Reference

파이썬증권데이터분석 (김황후, 한빛미디어)

 

 

Github

github.com/dudungE/AI_Finance/blob/master/%EA%B8%88%EC%9C%B5%ED%88%AC%EC%9E%90_basic.ipynb