#title 모멘텀 [[TableOfContents]] 주로 [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161752969&orderClick=LAG&Kc= 이 책]을 정리함 * 퀀트 모멘텀 투자 기법 - 모멘텀 투자의 이해 * 웨슬리 그레이 , 잭 보겔 지음 | 이병욱 옮김 | 에이콘출판 | 2019년 05월 24일 출간 작고, 얇은데 뭘 2만원이나 하나? 하는 생각을 했었는데.. 역시 책값은 절대 비싸지 않음을 또 느꼈다. 한 편의 논문을 보는 느낌이다. ==== 모멘텀이란? ==== 자기 상관성이 있다는 말이다. 다른 말로 오르는 놈이 계속 오른다는 말. 계산은 쉽다. 예를 들어, 주가가 다음과 같다. * 1월: 100원 * 2월: 150원 -> 전월에 비해 50% 상승 * 3월: 120원 -> 전월에 비해 20% 하락 * 4월: 150원 -> 전월에 비해 25% 상승 모멘텀 계산은 1.5 * 0.80 * 1.25 - 1 = 0.5 = 50% ==== 모멘텀 유형 ==== * 단기(1개월) --> 음의 관계(이전 1개월 상승했으면 다음 1개월 하락) * 중기(12개월) --> 양의 관계 --> __중기가 일정하게 수익률을 준다.__ * 장기(60개월) --> 음의 관계 ==== 모멘텀 품질 ==== 가파르게 오른(오버슈팅) 것은 모멘텀 품질이 좋지 않고, 서서히 오르는게 좋은거다. 어떻게 측정하냐? 아래와 같이 FIP = sign(과거수익률) * (마이너스 수익률 비중(%) - 플러스 수익률 비중(%)) --> 부정적일수록 좋은거 ==== 계절성 있다 ==== 계절성을 갖게 하는 요인 * 윈도우 드레싱(펀드 매니저가 단기 성과 좋게 만들기) * 절세 --> 개인적으로는 무시해도 될 것 같다는 느낌(수익률에도 크게 영향을 주는거 같지 않음) ==== 실전에서 써먹기 ==== * 모멘텀 있는 주식을 고른 후 품질까지 고려해 최대 50개 이하로 뽑아서 투자(종목이 많으면 지수에 투자하는 것과 마찬가지) * 수수료보다 10배 더 버니까 수수료는 고려치 말자. * 모멘텀 몰빵보다는 가치 투자 + 모멘턴 투자 * 추세 추종(추세를 봐서 채권으로 갈아 타기) * MDD 제한(예: 10%이상 손해나면 손절하기) ==== Perry Kaufman의 Efficiency Ratio ==== 이 문서(https://ssl.pstatic.net/imgstock/upload/research/invest/1535939783023.pdf)에 설명이 잘 되어 있다. 아래는 내용을 캡쳐한 것 attachment:UPRO-TMFEWMA역변동성전략/er.PNG ==== 최근 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) }}}