ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 주식 스프레드 계산하는 방법
    투자/파이썬 2023. 2. 11. 19:42
    반응형

    두 종목 사이의 가격 차이를 스프레드라고 한다.

    주가가 절대적 가격을 나타낸다면 스프레드는 다른 종목 대비, 혹은 시장 대비 "상대적 가격"을 나타낸다고 할 수 있다. 

    필요한 이유

    • 아무리 좋은 종목이라도 시장이 하락할 때도 상승하기는 어렵다. 그러나 시장 대비 적게 하락할 것이라고 예상할 수 있다. 
    • 하락장이어서 최근 3개월간 시장 수익률이 -10%였다고 하자. 이때 5%만 하락한 종목이 있다면 무엇인가 이유가 있을 것이라 추측할 수 있다. 
    • 이런식으로 상대적 가격을 나타내는 스프레드가 인사이트를 주기도 한다.

    계산

    • 스프레드를 계산할 때는 로그 가격을 이용하는 것이 편리하다. 
    • 로그 가격끼리 뺸 값이 두 기간의 수익률이 되기 때문이다.
    • 현재의 주가가 100달러, 1년 전이 10달러라고 하자. 수익률을 계산하려면 주가를 뺸 값을 1년 전 가격으로 나눠줘야 해서 한 번 더 계산이 필요해진다. 
    • 그러나 가격을 로그로 나타내면 log(100) - log(10) 자체가 해당 기간의 수익률을 나타내게 된다. 그래서 로그 가격을 이용한다.

    코드

    • 다우존스 지수(DIA ETF이용)와 S&P500 지수(SPY ETF이용)의 스프레드를 계산해보자
    • 1. 가격을 불러온 뒤(여기서는 yfinance 사용) 2. 로그 가격으로 수정하고 3. 두 로그 가격을 빼주면 된다.
    #!pip install yfinance
    import yfinance as yf
    import numpy as np 
    df = np.log(yf.download('DIA,SPY')['Adj Close'].dropna())
    spread = df['DIA'] - df['SPY']

    다우존스 지수와 S&P500 지수의 로그차트
    시작점을 0으로 둔 다우존스-S&P500 스프레드 차트

    • 다우존스 지수는 2000년대 초반 이후로 항상 S&P500보다 높은 수익률을 기록했다는 것을 알 수 있다.
    • 시기에 따라서는 S&P500이 상대적인 강세를 나타내기도 한다.
    • 어떤 기간에 어떤 이유로 어떤 지수가 아웃퍼폼하고 언더퍼폼하는지를 생각해보면 투자 기회를 발견할 수 있다. 이때 스프레드 차트가 필요하다.
    반응형

    댓글

Designed by Tistory.