Contents

[-]
1 모멘텀이란?
2 모멘텀 유형
3 모멘텀 품질
4 계절성 있다
5 실전에서 써먹기
6 Perry Kaufman의 Efficiency Ratio
7 최근 90일동안의 잘나간 자산


주로 [http]이 책(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161752969&orderClick=LAG&Kc=)을 정리함
작고, 얇은데 뭘 2만원이나 하나? 하는 생각을 했었는데..
역시 책값은 절대 비싸지 않음을 또 느꼈다. 한 편의 논문을 보는 느낌이다.

1 모멘텀이란? #

자기 상관성이 있다는 말이다. 다른 말로 오르는 놈이 계속 오른다는 말.
계산은 쉽다.

예를 들어, 주가가 다음과 같다.

  • 1월: 100원
  • 2월: 150원 -> 전월에 비해 50% 상승
  • 3월: 120원 -> 전월에 비해 20% 하락
  • 4월: 150원 -> 전월에 비해 25% 상승

모멘텀 계산은 1.5 * 0.80 * 1.25 - 1 = 0.5 = 50%

2 모멘텀 유형 #

  • 단기(1개월) --> 음의 관계(이전 1개월 상승했으면 다음 1개월 하락)
  • 중기(12개월) --> 양의 관계 --> 중기가 일정하게 수익률을 준다.
  • 장기(60개월) --> 음의 관계

3 모멘텀 품질 #

가파르게 오른(오버슈팅) 것은 모멘텀 품질이 좋지 않고, 서서히 오르는게 좋은거다.
어떻게 측정하냐? 아래와 같이

FIP = sign(과거수익률) * (마이너스 수익률 비중(%) - 플러스 수익률 비중(%)) --> 부정적일수록 좋은거

4 계절성 있다 #

계절성을 갖게 하는 요인
  • 윈도우 드레싱(펀드 매니저가 단기 성과 좋게 만들기)
  • 절세

--> 개인적으로는 무시해도 될 것 같다는 느낌(수익률에도 크게 영향을 주는거 같지 않음)

5 실전에서 써먹기 #

  • 모멘텀 있는 주식을 고른 후 품질까지 고려해 최대 50개 이하로 뽑아서 투자(종목이 많으면 지수에 투자하는 것과 마찬가지)
  • 수수료보다 10배 더 버니까 수수료는 고려치 말자.
  • 모멘텀 몰빵보다는 가치 투자 + 모멘턴 투자
  • 추세 추종(추세를 봐서 채권으로 갈아 타기)
  • MDD 제한(예: 10%이상 손해나면 손절하기)

6 Perry Kaufman의 Efficiency Ratio #

이 문서(https://ssl.pstatic.net/imgstock/upload/research/invest/1535939783023.pdf)에 설명이 잘 되어 있다.
아래는 내용을 캡쳐한 것

er.PNG

7 최근 90일동안의 잘나간 자산 #

library(quantmod)
library(PerformanceAnalytics)
library(magrittr)
library('lubridate')
library(dplyr)

ticker = c("QQQ", "DIA", "SPY", "TLT", "VNQ", "IAU", "VWO")
getSymbols(ticker, from= today()-90, to = today(),warnings = FALSE, auto.assign = TRUE, src="yahoo")
prices = do.call(cbind, lapply(ticker, function(x) Ad(get(x))))
rets = Return.calculate(prices) %>% na.omit()
#head(rets)
#head(prices)

lambda <- 0.94
result <- data.frame()
for( n in 1:ncol(prices))
{
  tmp1 <- data.frame(price=prices[,n]) %>% mutate(seq=row_number())
  colnames(tmp1) <- c("price", "seq")
  tmp1$ewma <- NA
  tmp1$diff <- NA
  
  for(i in tmp1$seq){
    if (i > 1){
      ewma <- lambda*tmp1[i,]$price +(1-lambda)*ewma
      end <- tmp1[i,]$price
      tmp1[i,]$diff <- abs(end - yesterday_price)
    } 
    else{
      ewma <- tmp1[i,]$price
      yesterday_price <- tmp1[i,]$price
      start <- tmp1[i,]$price
    }
    tmp1$ewma[i] <- ewma
  }
  
  change <- end - start
  volatility <- sum(na.omit(tmp1$diff))
  efficiency_ratio <- change / volatility
  result <- rbind(data.frame(ticker = ticker[n], efficiency_ratio), result)
}
arrange(result, desc(efficiency_ratio))
charts.PerformanceSummary(rets)