기계학습과 포지션사이징전략

1.
매일 읽어보는 매매전략과 관련한 글중 눈에 들어오는 제목이었습니다. Inovance라는 회사가 제공하는 글입니다.

Machine Learning Techniques to Improve Your Strategy

위의 글을 읽어보는 두가지 개념이 나옵니다. 첫째는 Random Forest Algorithm이고 나머지는 은닉마르코프모델(Hidden Markov Model)입니다. 이 논문은 기계학습 알고리즘의 하나인 랜덤포레스트 알고리즘을 통하여 포지션사이징전략을 유연하게 구사하는 방법을 소개하고 있습니다.

무작위의 숲, 은닉 마르코프, 포지션사이징

하나같이 쉬운 개념은 아닙니다. 다만 포지션사이징과 관련한 자료를 읽어보니 무엇인지 이해는 할 수 있었습니다. 우선 포지션사이징(Position Sizing)입니다. 포지션사이징은 자산의 규모를 정하는 것입니다. “달걀을 한 바구니에 담지 말라”는 말처럼 분산투자를 할 경우 포지션분배를 하여야 합니다. 분배를 하려면 자산별로 얼마만큼을 보유할지를 정해야 합니다. 이것이 포지션사이징입니다.

포지션 분배는 포트폴리오 분배의 가장 기본적인 형태로 증권별로 포지션을 다양화하는 것이다. 포지션 분배에서 가장 중요한 것은 포지션 규모를 정하는 것, 즉 포지션 사이징(position sizing)이다. 투자자는 이른바 ‘몰빵’을 할 수도 있고 여러 주식에 분산 투자할 수도 있다. 포지션 크기는 투자자가 자금을 기준으로 백분율로 결정해야 한다. 엄밀하게 정한 매수 기준을 동일하게 충족시키는 주식은 10개 종목인데 2% 포지션 사이즈로 5개 종목을 매수할 여유밖에 없다고 하자. 저자와 같이 운이 없는 어떻게 해야 할까? 저자는 포지션 사이즈 1%로 10개 종목을 매수할 것이다. 부자가 되느냐, 거지가 되느냐는 어떤 종목을 선택하느냐가 아니라 어떤 과정을 채택하느냐에 따라 판가름 난다. 하나의 기업에 많이 투자했다는 것은 그 투자에 대한 믿음이 그만큼 크다는 것이며, 동시에 투자 과정은 믿지 않는다는 것을 의미한다.
위험한 비즈니스중에서

논문은 포지션사이징이라고 하지 않고 포지션사이징전략이라고 합니다. 무슨 의미일까요? Van Tharp가 쓴 Definitive Guide to Position Sizing Strategies을 보면 다음과 같이 정의하고 있습니다.

Position sizing™ strategies are that portion of your trading system that tells you “how many” or “how much.” How many units of your investment should you put on at a given time? How much equity should you be willing to risk (lose)?

Types of position sizing strategies을 보면 포지션사이징전략을 다양합니다. 그렇지만 넓은 의미로 보면 포지션사이징전략은 위험관리전략이고 자산관리(Money Management) 전략이라고 할 수 있습니다. 그래서 포지션사이징전략에 대해 다른 이야기를 하는 분도 있습니다.

The futures industry has spawned a myriad of position sizing strategies. Many are impractical, or positively dangerous, leading as they do to significant risk of catastrophic loss. Generally, investors should seek out strategies with higher Sharpe Ratios, and use money management techniques only to improve the risk-adjusted return. But there is no universal money management methodology that will suit every investor. Instead, money management should be conditioned on each individual investors risk preferences.
Money Management – the Good, the Bad and the Ugly중에서

2.
이제 무작위의 숲입니다. ‘R을 이용한 데이터 처리 & 분석 실무‘는 이렇게 설명하고 있습니다.

랜덤 포레스트(Random Forest)는 앙상블(Ensemble) 학습 기법을 사용하는 모델이다. 앙상블 학습은 주어진 데이터로부터 여러 개의 모델을 학습한 다음, 예측 시 여러 모델의 예측 결과들을 종합해 사용하여 정확도를 높이는 기법을 말한다.

랜덤 포레스트는 두 가지 방법을 사용해 다양한 의사결정나무를 만든다. 첫 번째는 의사결정나무를 만들 때 데이터의 일부를 복원 추출로 꺼내고 해당 데이터에 대해서만 의사결정나무를 만드는 방식이다. 즉, 각 의사결정나무는 데이터의 일부만을 사용해 만들어진다. 두 번째는 노드 내 데이터를 자식 노드로 나누는 기준을 정할 때 전체 변수가 아니라 일부 변수만 대상으로 하여 가지를 나눌 기준을 찾는 방법이다.

새로운 데이터에 대한 예측을 수행할 때는 여러 개의 의사결정나무가 내놓은 예측 결과를 투표(voting) 방식으로 합한다. 예를 들어, 총 5개의 의사결정나무 중 Yes를 예측한 나무가 3개, No를 예측한 나무가 2개면 Yes를 최종 결과로 결정하는 방식이다

A Gentle Introduction to Random Forests, Ensembles, and Performance Metrics in a Commercial System은 다음과 같은 그림으로 표현합니다.

RF.

랜덤 포레스트 알고리즘을 매매전략에 적용한 사례입니다.

Bollinger Band Feature Analysis
How to Use a Decision Tree to Trade Bank of America Stock

위의 사례들은 R을 이용하였고 Python을 사용하고자할 경우 Random Forests in Python을 참조하세요.

다음은 은닉마르코프모델(HMM)입니다. HMM을 설명한 글을 읽어보았지만 영어를 번역하면서 개념의 혼란을 줍니다. 그래서 몇가지 읽어보다가 큰 그림을 그리는데 저에게 유용한 설명입니다.

The theory of HMM deals with two things: estimation and control. The first include signal filtering, model parameter identification, state estimation, signal smoothing, and signal prediction. The latter refers to selecting actions which effect the signal generating system in such a way as to achieve ceratin control objectives. Essentially, the goal is to develop optimal estimation algorithms for HMMs to filter out the random noise in the best possible way. The use of HMMs is also motivated by empirical studies that favors Markov-switching models when dealing with macroeconomic vari-ables. This provides flexibility to financial models and incorporates stochastic volatility in a simple way. Early works, proposing to have an unobserved regime following a Markov process, where the shifts in regimes could be compared to business cycles, stock prices, foreign exchange, interest rates and option valuation. The motive for a regime-switching model is that the market may switch from time to time, between for example periods of high and low volatility.

수학적인 기초지식이 있으면 서울시립대 데이터마이닝 연구실이 공개한 자료는 어떨까요? 마르포크 연쇄(Chain), 마르코프 모델(MM), 은닉마르코프모델(HMM)을 설명하고 있습니다.

GDE Error: Requested URL is invalid

설명까지 들어간 자료를 찾는다면 Introduction to Hidden Markov Model and Its Application과 이를 설명한 HMM ( Hidden Markov Model )를 함께 읽어보시면 이해가 편합니다.

Download (PDF, 546KB)

Identifying Changing Market Conditions 은 Inovance가 HMM을 설명한 글입니다. 마지막으로 트레이더를 위한 설명입니다. HMM을 이용한 Trend Following까지 다룹니다.

Hidden Markov Models – Model Description Part 1 of 4
Hidden Markov Models – Forward & Viterbi Algorithm Part 2 of 4
Hidden Markov Models – Examples In R – Part 3 of 4
Hidden Markov Models – Trend Following – Part 4 of 4

혹시 HMM을 이용하여 알고리즘트레이딩시스템을 구현해보고자 하면 Algorithmic Trading – Hidden Markov Models on Foreign Exchange Data을 찬찬히 살펴보시면 어떨까 합니다.

Download (PDF, 1.29MB)

3.
이상으로 최초 글에 등장하는 개념을 정리해보았습니다. 그렇다고 제가 실무적인 수준으로 이해한 것은 아닙니다. 개념을 이해하여 무엇에 쓰는 물건인지 알 수 있을 정도입니다.

다시 최초 글로 돌아갑니다. 위의 글은 포지션사이징전략을 시장상황에 따라 바꾸기 위해서 Ramdom Forest Algorithm을 사용하고 매매를 할지, 말지는 HMM을 이용하였습니다. 즉, 새로운 전략을 찾기 보다는 현재 있는 전략을 기계학습을 이용하여 수익율을 높히는 방법으로 사용하는 제안을 하고 있습니다. 글을 보시면 R을 이용한 코드를 제공하고 있습니다. 참고하세요.

알고리즘트레이딩을 위한 데이터사이언스과정‘이 다루고 있는 기계학습이 트레이딩에 적용할 수 있는 사례중 하나입니다.

포지션사이징을 검색하다가 Safe Strategies For Financial Freedom라는 책을 보았습니다. 아래는 책을 요약한 글의 일부입니다. 수익과 위험은 동전의 양면입니다. 위험관리가 수익관리가 아닐까 생각합니다. 사실 사업도 마찬가지입니다.

포지션 사이징(position sizing)’을 이해하고 실천한다

투자전략을 선택하고 나면 이익을 극대화하기 위해서 특정 포지션이나 투자에 얼마나 돈을 들일지 결정해야 한다. 특정 투자대상에 많은 투자를 했다면 돈을 벌지 못하고 잃은 채로 끝낼 수도 있다. 마찬가지로 돈을 벌고 있는 투자대상에 충분히 투자를 하지 않으면 그 전략의 이득을 극대화할 수 없다. 포지션의 크기가 어때야 하는지 결정하는 법은 다음과 같다.

1. 투자전략에서 얻고자 하는 것이 무엇인지에 대해 뚜렷한 의식을 가져야 한다.
2. 객관적인 입장에서 리스크를 무릅쓰고 얼마나 많은 돈을 투자할 수 있는지 밝힌다. 이것이 순자산(Equity)이다.
3. 다음에는 리스크 수준을 밝힌다 – 즉 시장이 하락해 투자를 중단할 경우 어느 정도의 현금 손실을 감당할 수 있는지 정한다. 이것이 리스크다.
4. 이상적인 포지션 사이즈는 Position size = Equity / Risk 로 구할 수 있다.

능숙한 거래자는 투자를 할 때마다 홈런을 치려고 하지 않고 원금을 보호하면서 지속적으로 이익을 내는 것을 더 선호한다. 최적의 포지션 사이징을 정하는 수많은 방법이 있으며 이들은 각각 장단점을 지닌다. 현실적인 방법은 투자 대상의 배경을 활용하는 것이다. 자신이 원하는 것을 정확히 알게 되면 포지션 사이징은 유용한 도구가 될 것이다. 투자의 목적이 금전적으로 자유로워지는 것이므로 손실 기회는 최소화하면서 적어도 10%의 수익을 목표하는 것이 가장 바람직하다. 이런 마음가짐을 갖는다면 주식투자를 위한 안전한 포지션 사이징 방법은 다음과 같다.

1. 새로운 포지션이나 투자에 대해 현금 보유액의 1% 이상을 걸지 않는다. 이렇게 하면 큰 돈은 벌지못하지만 게임을 유지하기 위해 현금차용을 늘릴 일이 별로 없을 것이다.
2. 추적한도(trailing stop)가 원래 투자 가격을 초과할 정도로 보유중인 주식 가격이 오르면 구매를 늘린다. 첫 포지션이 이익을 내면 1%의 포지션을 원래 투자에 추가한다. 주식시장이 상승 모멘텀을 유지한다면 이를 4차례 시행한다.
3. 전체 자산 배분에 안전마진을 설정한다 – 주식투자와 현금 포지션, 뮤추얼 펀드 투자 등에 돈을 어떻게 배정할 것인지 정한다. 전체 시장상황에 대한 정보를 자산 배분에 반영한다.

6 Comments

  1. juhn yong jin

    제가 가장 궁금했던 부분인데 이렇게 상세하게 알려주셔 너무 감사합니다.

    Reply
    1. smallake (Post author)

      안녕하세요….제가 쓴 설명이 뜬 구름 잡은 수준이라 도움이 될지 의문입니다.
      그래도 도움이 되었다고 하니까 좋네요.(^^)

      즐거운 한가위 명절 되세요.

      Reply
  2. Minjae Lee

    좋은 글 감사합니다! 혹시 평소에 매매전략 관련해서 보시는 블로그나 사이트 공유가 가능하신가요? 주로 어디서 소스를 얻으시는지 궁금하네요~

    Reply
    1. smallake (Post author)

      안녕하세요.

      블로그나 사이트가 무척 많습니다만 제가 올린 글의 제목을 가지고 구글링을 해보시면 특정한 사이트가 나옵니다. 그냥 사이트를 알려드릴 수 있지만 원하는 것을 찾는 과정이 중요하고 – 특정한 사이트가 모두를 보여주지 않아서 – 직접 찾아보셨으면 합니다. 더불어 RSS로 등록해서 관리하시면 좋을 듯 합니다.

      저는 설치한 RSS서버를 사용합니다. tiny-rss라고 하는 오픈소스입니다. 등록한 사이트도 무척 많습니다. 나만의 조사, 관리, 분석방법을 만드시면 더욱 좋을 듯 합니다.

      즐거문 한가위 되세요.

      Reply
      1. Minjae Lee

        네, 이미 친절하게 본 글이나 이전 글에 링크를 많이 해주셔서 많은 도움이 되고 있습니다. rss도 한 번 이용해보아야겠네요. 항상 좋은 글과 강의까지 구성해주셔서 감사합니다. 명절 잘 보내세요~

        Reply
        1. smallake (Post author)

          제가 말씀드린 사이트는 트레이딩 논문등을 매일매일 제공하는 사이트입니다. 몇 곳이 있습니다. 이것을 찾아보시라는 뜻입니다. 일종의 포탈이랄 수 있는 곳들입니다.

          명절 잘 보내세요.

          Reply

Minjae Lee에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.