Quant Investment Facts

퀀트 투자의 허와 실

퀀트의 분류


  • 초고빈도 매매(Ultra HFT) : 서버 colocation, 기계어 레벨 코딩, 하드웨어
  • 알고리즘 트레이딩(Algorithmic Trading) : MACD, RSI등 기술적 지표, Rule-based
  • 통계적 차익거래 (Statistical Arbitrage) : 페어 트레이딩, 통계적 모델, 기법
  • 팩터 인베스팅 (Factor Investing) : 모멘텀 팩터, 가치 팩터...
  • 퀀터멘탈 : 펀더멘탈 분석을 계략화
  • 데이터 과학, 기계학습, 빅데이터, 대안 데이터

퀀트 매매의 원칙


  1. 투자 아이디어/가설 (Hypothesis)
  2. 백테스팅
  3. 실전 매매
  4. 리스크 관리

백테스팅의 가정


  • 과거의 패턴이, 미래에도 반복될 것이라는, 보장되지 않은 가정하에, 과거에 수익성이 좋았던 패턴을 찾는 것
  • 지난 과거의 수익성이 좋았던 패턴의 개수는 무한하다. 이 중 몇 개나 미래에도 수익성이 좋을까?

퀀트 투자에서 조심할 점 10가지


  1. 데이터를 의심하라

    • 무료 데이터는 무척이나 더럽고 오류가 많다

    • 데이터 클리닝에는 사람의 주관적 판단과 편향도 들어가기 마련

      • 여러 거래소의 매매 상품의 경우는 다 통합이 되었는가
      • MDD 계산 시, 종가가 아닌 저가 기준으로 하는가
      • 만기가 있는 상품이면 어떻게 롤오버 하는가
    • 생존자 편향 : 현재 생존해 있는 회사들로만 백테스팅 대상으로 삼아서 백테스팅하면 수익률이 뻥튀기 ⇒ 백테스팅 기간이 길어질수록 더 큰 문제가 된다

  2. 미래를 먼저 바라보지 마라

    • Look-ahead Bias : 매매 시점에서 아직 획득할 수 없는 정보로 매매할 경우

    • ex) 2021.09 기준 코스피 시총 상위 100위 중, PER 15미만 주식 매매 전략으로 2011~2021 백테스팅 하였더니 수익률이 매우 좋음 ⇒ 2021.09 코스피 시총 상위 100위 종목을, 2011년에 미리 알 수 있을 리 없다

    • ex) 기업의 펀더멘털 실적 데이터로 백테스팅 할 때, 매 분기별 각 기업의 실적 발표 날짜 후에 해당 기업에 대해 매매를 하였는가?

    • 종가 기준 매매 : 종가는 그 하루가 끝나봐야 아는 정보

  3. 과최적화 피하라

    • 주어진 샘플에만 지나치게 성능이 좋도록 모델을 만드는 것

    • 과거 데이터에 상세하게 너무 끼워 맞춘 모델 금물

    • 샘플 외 데이터(Out of Sample)를 이용하라 : 2014.9~2020.9 데이터에서 수익률이 좋은 전략을 찾아, 2020.10~2021.9에 백테스팅 해보고, 그 결과가 좋으면 2021.10부터 실전 매매

  4. 검증 기회는 단 한번 뿐이다

    • Out of Sample Testing : 규칙이나 모델을 복잡하게 하면 할수록 학습 데이터 상의 성능은 좋아지지만, 검증 데이터 상의 성능은 나빠짐

      • 오차가 커진다는 것은 수익률이 낮아진다는 것과는 다름. 백테스팅을 엉망으로 하면 할수록 미래 수익률과의 격차가 커진다는 뜻이지, 격차는 무작위적으로 더 높을수도, 낮을 수도 있다
    • Walk-forward Testing : 롤링 식으로 테스팅

    • K-fold Cross Validation

    • 짝수 해 데이터로 학습하고, 홀수 해 데이터로 검증 : market regime의 변화에 parameter가 안정적임

      • Look-ahead Bias 주의!
    • 검증 데이터는 두번 보면 오염된다

  5. 시대(Market Regime)는 변한다

    • 왜 20년치 백테스트는 의미가 없을까?

      • 데이터의 개수는 많으면 좋으나, 같은 분포(같은 환경)에서 비롯되는 데이터여야 한다.
    • 시장 성질의 변화

      1. 시장 플레이어들의 변화(코로나 이후 개미 유입, gamestop 사태 하의 공매도 전략)
      2. 제도 및 규제 변화 (금융위기 이후 투자은행의 프랍 매매 금지 및 파생 상품 시장의 변화)
      3. 외생적인 이벤트 (오일 쇼크)
      4. 거시 경제적 변화 (부채비율 상승, 저금리 시대, 양적 완화)
      5. 신기술의 등장 및 산업 구조 변화 (전기차, ESG)
    • 2001년의 데이터가 의미가 있을까 : 현재 시점을 반영할 수 있는, Market Regimedㅢ 변화의 변화로 유사점이 있어야 함

    • 퀀트 투자의 맹점 : 장기 투자에 적용할 때 많은 데이터 개수를 확보하면서, Regime Change를 피하기가 어렵기 때문

  6. 퀀트도 자신을 절제해야 한다

    • 백테스팅은 다다익선이 아니다. 백테스팅을 많이 할수록 과최적화 문제는 심각해진다

    • 백테스팅을 많이 할수록 단순한 무작위 움직임에서도 패턴과 시그널을 픽업하게 됨 → p-value Hacking

  7. 비퀀트적 언어로 전략을 설명하기

    • 과거 통계학과 현대 데이터 과학의 차이는 무엇일까?

    • 데이터 개수의 중요성 : 모델이 유연할 수록 주어진 샘플에 완벽히 맞출 수 있으나, 실전에서는 새로운 데이터를 잘 맞추지 못함 → 데이터가 매우 많은 경우에는 유연한 모델도 과최적화가 일어나지 않음

    • 초,분 → 시,일, 월, 년으로 갈 수록 데이터의 숫자가 적어진다

    • 데이터가 작을 때 : 모델의 유연성에 제한을 둬야 오버피팅이 일어나지 않는다

    • 모델의 선택에서 제한을 둘 수도 있지만, 아이디어 단계에서 경제학 적으로 의미있는 전략만 테스트 함으로써 과최적화 예방 효과를 얻을 수 있다. 의미없는 무작위적 패턴 발견 예방

    • 빅데이터, 패턴 인식 등의 거창한 단어가 아닌 일상적인 언어로, 내 전략이 왜 경제학적으로 초과수익을 달성할 수 있는지 설명하지 못한다면, 데이터 스누핑을 하고 있을 확률이 크다

  8. 나를 여러 각도에서 의심하라

    • 백테스팅을 통과한 전략은 수익률이 좋을거라 증명된 전략이 아니다

    • 수익률이 나쁠거라 증명하지 못한 전략들일 뿐이다

    • 너무 좋아보이는 건 아마 좋은 게 아니다 : HFT 아닌 단일 전략이 샤프지수 2가 넘으면 의심, 3이상은 불가능

    • 본인의 전략을 여러 각도에서 의심해보기

      1. 비용에 대한 가정을 조정해볼 것
      2. 전략의 파라미터를 변화시켜보면서 안정성을 체크할 것
      3. 매매 타이밍을 변화시켜볼 것 (월별 리밸런싱이면, 월말 대신 29일)
      4. 다양한 가정을 추가해볼 것 (외생적 이벤트)
      5. 통계적인 노이즈를 추가해 볼 것 (Bootstrapping)
  9. 벤치마크를 제대로 설정하라

    • 지난 6개월 간 이 전략으로 30% 나 냈다? 동기간 코스피 40% 상승

    • 테크주 전략을 S&P 500과 비교해서는 안됨

    • 동기간 벤치마크 지수에 따라 전략의 성과가 달라짐

      • 변동성/리스크 관련 설정, 유동성 문제
      • 가치주인가, 성장주인가
      • 옵션을 사용하는가, 아닌가
      • 매수만 하는가, 매수/공매도 둘다 하는 전략인가?
  10. 전략을 분산하라

    • 아무리 심혈을 기울여 백테스팅을 해도 실제 수익률은 다르게 나올 것
    • 전략을 분산 후 투자하면, 수익률은 낮아지자 않으면서 리스크는 줄어듦
      • 이미 보유한 전략과 비슷한 전략은 효용가치가 그다지 없다

퀀트의 장점과 한계


  • 과거 데이터를 통한 추론, 난 과학적 투자 중이라는 그릇된 환상을 가지게 된다

  • 백테스팅을 통해 수익정이 좋다고 증명되는 게 아니다

  • 인간의 장점 : 적은 데이터로 추론이 가능하다. 역사적 흐름은 퀀트에 있으나, 범용 인공지능언 적어도 수십년은 걸릴 일

  • 트레이더로 성공하고 싶다면?

    1. 여러가지 계량분석과 모델의 보조를 받으면서, 개인 추론을 하는 인간 트레이더

    2. 제대로 된 이공계 박사 공부를 통해 기관에서 매매 하는 기관 퀀트

    3. 제대로 된 퀀트 매매 공부를 통해 기관이 건드리지 않는 닛치를 공략하는 개인 퀀트

    ⇒ capacity가 몇십억 미만인 전략

퀀트 공부 커리큘럼


  1. 코딩 : 엑셀 뿐만 아니라 파이썬 등으로 공부
  2. 통계의 기본을 탄탄히 : 학부 레벨 통계학, 베이지안 통계
  3. 시계열 분석 : ARIMA, Cointegration, Kalman Filter
  4. 머신러닝 : 회귀 분석, GBM, 딥러닝, 자연어처리 등...
  5. 영어 : 한글 자료는 아직 열악하다