
마르코프 체인을 활용해 모든 거래에서 승리하는 방법 (퀀트 프레임워크)
AI features
- Views
- 3.3M
- Likes
- 1.6K
- Reposts
- 242
- Comments
- 49
- Bookmarks
- 5.5K
TL;DR
이 종합 가이드는 트레이딩을 위한 마르코프 체인 모델 구축 방법을 설명하며, 전이 행렬, 다단계 확률, 그리고 숨겨진 시장 상태를 탐지하기 위한 은닉 마르코프 모델(HMM)을 다룹니다.
Reading the 한국어 translation
마르코프 체인을 활용한 헤지펀드의 고확률 트레이딩 전략 완벽 분석
헤지펀드가 마르코프 체인을 사용해 어떻게 지속적으로 높은 확률의 승리 트레이드를 찾아내는지, 그리고 오늘부터 바로 구축할 수 있는 정확한 프레임워크를 공개하겠습니다.
바로 본론으로 들어가겠습니다.
북마크 추천 - 저는 Roan입니다. 시스템 설계, HFT 스타일 실행, 그리고 퀀트 트레이딩 시스템을 개발하는 백엔드 개발자입니다. 제 작업은 예측 시장이 부하 상황에서 실제로 어떻게 작동하는지에 초점을 맞추고 있습니다. 제안, 의미 있는 협업, 파트너십에 대한 DM은 항상 열려 있습니다.
대부분의 트레이더는 차트를 보고 가격을 봅니다.
퀀트는 같은 차트를 보고 완전히 다른 것을 봅니다. 그들은 일련의 상태를 봅니다. 상승. 하락. 횡보. 각 상태는 지속되거나 다음 상태로 전환될 고유한 확률을 가지고 있습니다. 각 전환은 대출 연체부터 DNA 서열, Google 의 원래 PageRank 알고리즘에 이르기까지 모든 것을 모델링하는 데 사용된 수학에 의해 지배됩니다.
이 프레임워크를 마르코프 체인이라고 합니다. 그리고 이는 시스템적 트레이딩에서 가장 다재다능하면서도 활용도가 낮은 도구 중 하나입니다.
대부분의 개인 트레이더가 지지선을 그리고 RSI 를 관찰하는 동안, Citadel 이나 Two Sigma 와 같은 기업의 퀀트 리서치 팀은 시장이 어디에 있는지뿐만 아니라 과거 위치를 기반으로 다음에 어디로 갈 가능성이 가장 높은지 이해하는 레짐 전환 모델을 구축하고 있습니다. 그 모델의 기반이 되는 수학은 바로 여기서 시작됩니다.
저는 이미 머신러닝 트레이딩 신호 구축을 위한 완전한 신경망 구현 프레임워크를 작성했습니다. 해당 글은 이 글의 완벽한 동반자라고 할 수 있습니다.
이 글을读完으면 여러분은 마르코프 체인이 정확히 무엇이고 왜 단일 지표보다 시장 행동을 더 잘 매핑하는지, 실제 시장 데이터로 완전한 상태 전환 모델을 구축하는 방법, 행렬 곱셈만으로 미래 시장 상태의 확률을 계산하는 방법, 원시 가격 데이터에서 실시간 트레이딩 신호까지의 완전한 구현 파이프라인, 그리고 실제 시장에서 대부분의 마르코프 체인 모델을 실패하게 만드는 정확한 실수들을 이해하게 될 것입니다.
참고: 이 글은 의도적으로 깁니다. 모든 부분이 이전 부분 위에 구축됩니다. 트레이딩에 진정한 퀀트 우위를 추가하는 데 진지하다면 모든 단어를 읽으십시오. 지름길을 찾고 있다면 이 글은 적합하지 않습니다.
파트 1: 독립성의 실패와 마르코프 체인의 시작
마르코프 체인으로 무엇이든 구축하기 전에, 그것이 해결하도록 설계된 근본적인 문제를 이해해야 합니다.
대부분의 기본 확률 모델은 독립성을 가정합니다. 각 사건은 이전 사건과 아무런 연결이 없는 것처럼 취급됩니다. 주사위를 굴리는 것과 같습니다. 100 번째 굴림의 결과는 99 번째 굴림과 아무 관련이 없습니다. 각 굴림은 완전히 독립적입니다.
시장은 이렇게 작동하지 않습니다.
대출 포트폴리오를 모델링한다고 상상해보세요. 각 대출은 특정 시점에 네 가지 상태 중 하나에 있을 수 있습니다: 정상, 30~59 일 연체, 60~89 일 연체, 90 일 이상 연체. 시간이 지남에 따라 이 포트폴리오가 어떻게 진화하는지 모델링하려고 합니다. 그래서 가장 간단한 접근 방식을 시도합니다. 각 월을 독립적으로 모델링합니다. 각 상태의 과거 분포에서 데이터를 추출합니다.
한 달 후, 모델은 지난달에 정상이었던 일부 대출이 현재 90 일 이상 연체되었다고 말합니다.
이는 수학적으로 불가능합니다. 대출이 단일 30 일 기간에 정상에서 90 일 이상 연체로 점프할 수 없습니다. 순진한 독립성 가정은 현실을 위반하는 모델을 생성했습니다.
이것이 바로 마르코프 체인이 해결하는 문제입니다. 각 단계가 이전의 모든 것과 독립적이라고 가정하는 대신, 마르코프 체인은 국소적 조건부 의존성을 도입합니다. 다음 상태는 현재 상태에 의존합니다. 10 단계 전에 일어난 모든 것에 의존하지 않습니다. 바로 지금 당신이 있는 위치에만 의존합니다.
공식적으로, 확률 변수 X₀, X₁, X₂, ... 의 시퀀스는 마르코프 속성을 만족할 때 마르코프 체인입니다:
P(Xₙ₊₁ = s | X₀, X₁, ..., Xₙ) = P(Xₙ₊₁ = s | Xₙ)
다음 상태의 확률은 전체 이력이 아닌 현재 상태에만 의존합니다. 이 단일 속성이 마르코프 체인을 동시에 다루기 쉽고 강력하게 만듭니다. 전체 이력을 추적할 필요 없이 프로세스의 필수 의존성 구조를 포착합니다.
금융 시장의 경우, 이는 직접적으로 적용됩니다. 다음 달에 시장이 강세 레짐에 있을 확률은 이번 달에 강세, 약세 또는 횡보 레짐 중 어디에 있는지에 달려 있습니다. 2 년 전에 무슨 일이 일어났는지에는 의존하지 않습니다. 현재 상태는 다음 상태를 예측하는 데 필요한 모든 관련 정보를 담고 있습니다.

이는 편의를 위한 단순화가 아닙니다. 올바르게 적용될 때 순진한 독립성보다 훨씬 더 정확하면서도 계산적으로 다루기 쉬운 모델을 생성하는 수학적으로 원칙적인 가정입니다.
파트 2: 상태 공간과 전이 행렬 구축
마르코프 체인 트레이딩 모델 구축의 첫 번째 실용적 단계는 상태를 정의하는 것입니다. 이는 대부분의 실무자가 생각하는 것보다 더 중요합니다.
금융 시장의 경우, 일반적인 상태 정의는 다음과 같습니다:
변동성 레짐: 저변동성, 중간 변동성, 고변동성. 롤링 실현 변동성 임계값으로 정의됩니다.
추세 레짐: 상승, 하락, 횡보. 이동 평균 대비 가격 위치 또는 최근 수익률의 부호와 크기로 정의됩니다.
유동성 레짐: 고유동성, 저유동성. 매수-매도 스프레드 또는 호가창 깊이로 정의됩니다.
신용 레짐: 위험 선호, 위험 회피. 신용 스프레드 또는 교차 자산 상관관계로 정의됩니다.
구체적인 시작 구현을 위해, 3-상태 시장 레짐 모델이 잘 작동합니다. 다음과 같이 정의합니다:
상태 0 (강세): 20 일 수익률이 양의 임계값 이상입니다. 상태 1 (약세): 20 일 수익률이 음의 임계값 이하입니다. 상태 2 (횡보): 그 사이의 모든 경우입니다.
핵심 요구 사항은 상태가 상호 배타적이고 전체를 포괄해야 한다는 것입니다. 모든 관측치는 특정 시점에 정확히 하나의 상태에 속해야 합니다. 간격이나 중복이 없어야 합니다.
상태를 정의한 후에는 상태 간 전이 확률을 추정해야 합니다. 이것이 전이 행렬입니다. 각 항목 P(i,j)는 한 번의 시간 단계에서 상태 i 에서 상태 j 로 이동할 확률을 나타냅니다.
3-상태 모델의 전이 행렬은 다음과 같습니다:
P = | P(0,0) P(0,1) P(0,2) | | P(1,0) P(1,1) P(1,2) | | P(2,0) P(2,1) P(2,2) |
각 행은 정확히 1.0 으로 합산되어야 합니다. 주어진 상태에서 시스템은 다음 단계에서 동일한 상태에 머무는 것을 포함하여 어떤 상태로든 전이되어야 하기 때문입니다.
각 전이 확률에 대한 최대 우도 추정기는 매우 간단합니다. 시스템이 상태 i 에서 상태 j 로 전이된 횟수를 세십시오. 상태 i 에서 나간 총 전이 횟수로 나눕니다:
P̂(i,j) = Count(i → j) / Count(i → 모든 상태)
이것은 직관적으로 확률을 추정하는 방법과 정확히 같습니다. 또한 마르코프 체인 데이터에 대한 로그 우도 함수를 최대화할 때 최대 우도 추정기의 전체 유도가 생성하는 결과이기도 합니다. 직관적인 답변과 수학적으로 엄격한 답변이 동일합니다.
다음은 완전한 Python 구현입니다:
이 과정에서 생성하는 전이 행렬은 시장의 지도입니다. 각 항목은 두 특정 레짐 사이를 이동할 확률을 알려줍니다. 이는 이후 모든 것의 기초입니다.
파트 3: 다단계 전이 확률 계산
이것이 마르코프 체인이 트레이딩 도구로서 진정으로 강력해지는 지점입니다.
이제 1-단계 전이 행렬 P 를 가지고 있습니다. 하지만 트레이더로서 진정으로 알고 싶은 것은 다음 달에 무슨 일이 일어나는지뿐만이 아닙니다. 3 개월, 6 개월, 12 개월 후에 시장이 어떻게 보일지 알고 싶습니다. 오늘 강세 레짐에서 시작하여 12 번의 전이 후에 약세 레짐으로 끝날 확률을 알고 싶습니다.
이때 Chapman-Kolmogorov 방정식이 등장합니다. 이는 상태 i 에서 상태 j 로의 n-단계 전이 확률이 행렬 P 의 n 제곱의 (i,j) 항목임을 명시합니다:
P^(n)(i,j) = [Pⁿ]ᵢⱼ
그것이 전부입니다. n 단계에서 어떤 상태에서 다른 상태로 전이될 확률을 계산하려면 전이 행렬을 n 번 곱하고 해당 항목을 읽으면 됩니다.
이는 매우 우아한 결과입니다. 여러 단계에 걸쳐 상태 공간을 통한 경로를 계산하는 모든 수학적 복잡성이 단일 행렬 거듭제곱으로 축소됩니다.
이것이 트레이더에게 알려주는 것은 구체적이고 실행 가능합니다. 현재 강세 레짐에 있다면, 12 개월 후에도 여전히 강세 레짐에 있을 확률과 약세 또는 횡보로 전환되었을 확률을 정량화할 수 있습니다. 이 확률은 포지션 크기, 헤징 결정 및 전략 할당에 정보를 제공합니다.
이 프레임워크의 또 다른 중요한 출력은 정상 분포입니다. n 이 매우 커짐에 따라, 상태 간 분포는 시작 상태와 관계없이 고정 벡터 π 로 수렴합니다:
π = π × P
정상 분포는 시장이 각 레짐에서 보내는 장기적인 시간 비율을 알려줍니다. 실제로는 다음을 사용하여 π 를 해결합니다:
정상 분포는 장기 기준선입니다. 정상 분포가 드물다고 알려주는 레짐에 크게 베팅하는 모든 전략은 상당한 꼬리 위험을 감수하는 것입니다. 장기 레짐 비율을 아는 것은 전략 설계에 필수적입니다.

파트 4: 레짐 모델에서 트레이딩 신호로
레짐 모델을 가지고 있다고 해서 트레이딩 전략이 되는 것은 아닙니다. 이를 전략으로 전환하려면 레짐 확률을 특정 포지션 결정에 연결해야 합니다.
핵심 통찰력은 이것입니다: 마르코프 체인은 각 시점에서 미래 상태에 대한 확률 분포를 제공합니다. 트레이딩 신호는 해당 분포의 함수입니다.
가장 간단한 접근 방식은 직접적인 레짐 기반 할당입니다. 모델이 강세 레짐에 있다고 말하면 롱 포지션을 취합니다. 약세면 숏 또는 플랫. 횡보면 포지션 크기를 줄입니다.
더 정교한 접근 방식은 전체 확률 벡터를 포지션 크기 조정에 입력으로 사용합니다. 현재 상태 분포 벡터 π_t 는 시간 t 에서 레짐 간 확률 할당을 나타냅니다. 각 레짐에 대한 신뢰도에 비례하는 포지션을 구성할 수 있습니다:
위 백테스트의 워크포워드 구조는 매우 중요합니다. 각 단계에서 해당 시점에 사용 가능한 과거 데이터만 사용하여 전이 행렬을 재추정합니다. 과거 확률을 추정하기 위해 미래 정보를 절대 사용하지 않습니다. 이것이 현실적인 백테스트와 실제 트레이딩에서 실패가 보장된 백테스트의 차이입니다.

파트 5: 완전한 구현 파이프라인과 중요한 한계
이 섹션은 모든 것을 프로덕션 준비가 된 마르코프 체인 트레이딩 시스템으로 조립하고, 모델이 실제 시장과의 접촉에서 살아남을지 여부를 결정할 가정들을 다룹니다.
완전한 시스템 구현:
배포 전에 반드시 이해해야 할 세 가지 가정:
첫 번째는 마르코프 속성 자체입니다. 모델은 다음 상태가 더 긴 이력이 아닌 현재 상태에만 의존한다고 가정합니다. 실제로 시장은 때때로 더 긴 범위의 의존성을 나타냅니다. 6 개월 동안 지속된 추세는 방금 시작된 추세와 다른 전이 확률을 가질 수 있습니다. 지속 시간 정보를 포함하도록 상태 공간을 확장하여 이를 부분적으로 해결할 수 있지만, 복잡성이 크게 증가합니다.
두 번째는 시간 동질성입니다. 모델은 전이 확률이 시간이 지남에 따라 일정하다고 가정합니다. 하지만 그렇지 않습니다. 강세 레짐이 약세로 전환될 확률은 2008 년과 2021 년에 매우 달랐습니다. 표준 완화 방법은 롤링 윈도우 재추정이며, 이는 위의 워크포워드 백테스트에서 이미 보았습니다. 더 짧은 윈도우는 더 빠르게 적응하지만 더 시끄러운 추정치를 생성합니다. 더 긴 윈도우는 더 안정적인 추정치를 생성하지만 레짐 변화에 뒤처집니다.
세 번째는 신뢰할 수 있는 추정을 위한 충분한 데이터입니다. 최대 우도 추정기는 더 많은 전이를 관찰함에 따라 실제 전이 확률로 수렴합니다. 관찰이 적을 경우, 특히 드문 전이의 경우 추정치가 시끄럽고 신뢰할 수 없습니다. 항상 전이 행렬의 모든 셀이 최소 20~30 개의 관찰된 전이에서 추정되었는지 확인하십시오. 그렇지 않은 경우 상태를 병합하거나 데이터 기록을 확장하는 것을 고려하십시오.
파트 6: 은닉 마르코프 모델 - 프레임워크 확장
지금까지 모델의 모든 가정에는 한 가지 공통점이 있습니다. 레짐을 볼 수 있다고 가정했습니다.
롤링 수익률을 사용하여 각 날짜를 강세, 약세 또는 횡보로 레이블링했습니다. 하지만 레짐은 직접 관찰 가능하지 않았습니다. 가격에서 역설계한 것입니다. 이는 같은 것이 아닙니다. 기관 포지셔닝이 표면 아래에서 조용히 이동하고 있기 때문에 아직 가격에 나타나지 않은 약세 레짐은 상태 레이블에 완전히 보이지 않습니다.
이것이 관찰 가능한 마르코프 체인의 핵심 한계입니다. 은닉 마르코프 모델이 이를 해결합니다.

HMM 에서 실제 레짐은 관찰할 수 없는 은닉 상태입니다. 관찰할 수 있는 것은 수익률 시퀀스입니다. 각 은닉 상태는 자체 분포에서 수익률을 생성합니다. 강세 레짐은 양의 평균과 낮은 분산을 가진 수익률을 생성합니다. 약세 레짐은 음의 평균과 높은 분산을 가진 수익률을 생성합니다. 모델은 레짐 전이와 수익률 분포를 동시에 학습하며, 단일 날짜도 수동으로 레이블링할 필요 없이 가격 데이터만으로 학습합니다.
이를 가능하게 하는 두 가지 알고리즘이 있습니다.
첫 번째는 Baum-Welch 입니다. 이는 관찰 가능한 수익률 시퀀스에서 모든 모델 매개변수를 추정하는 알고리즘입니다. 수익률을 입력하면 레이블링된 데이터 없이 전이 행렬, 각 레짐의 수익률 분포 및 시작 확률을 학습합니다. 시퀀스를 통해 순방향으로 확률을 계산한 다음 역방향으로 정제하여 수렴할 때까지 반복합니다.
두 번째는 Viterbi 입니다. 적합된 모델이 있으면 Viterbi 는 관찰된 수익률을 생성한 가장 가능성 있는 은닉 레짐 시퀀스를 디코딩합니다. 소프트 확률이 아닌 은닉 상태 공간을 통한 단일 최상의 경로를 제공합니다.
신호 생성은 파트 4와 동일합니다. 각 단계에서 현재 각 레짐에 있을 확률을 계산합니다. 해당 벡터에 전이 행렬을 곱하여 한 단계 앞선 예측을 얻습니다. 강세 확률에서 약세 확률을 빼면 포지션이 결정됩니다.
이를 배포하기 전에 염두에 두어야 할 두 가지 사항이 있습니다.
Baum-Welch 는 전역 최대값이 아닌 지역 최대값을 찾습니다. 항상 여러 무작위 시작점에서 실행하고 가장 높은 로그 우도를 가진 모델을 유지하십시오. 기본 단일 초기화는 종종 최적이 아닌 레짐 할당을 생성합니다.
선택하는 방출 변수는 다른 어떤 설계 결정보다 중요합니다. 수익률만으로는 실제 경제 레짐에 대한 제한된 정보만 전달합니다. 수익률에 실현 변동성, 신용 스프레드 및 VIX 기간 구조를 결합하면 모델에 훨씬 더 풍부한 신호를 제공합니다. 관찰로 무엇을 입력할지 선택하는 것이 도메인 지식이 수학을 증폭시키는 곳입니다.
관찰 가능한 마르코프 체인은 레짐 지도를 제공했습니다. 은닉 마르코프 모델은 단일 수동 레이블링 데이터 포인트 없이 노이즈가 있는 신호로부터 실시간으로 그 지도를 구축합니다. 이것이 기관 레짐 전환 모델이 이동해 온 방향입니다. 이제 여러분은 하나를 구축할 수 있는 완전한 프레임워크를 갖게 되었습니다.
요약
마르코프 체인은 미래를 예측하지 않습니다. 그들이 하는 일은 더 유용합니다. 현재 상태가 주어졌을 때 가능한 모든 미래 상태의 확률을 정량화합니다. 시장 레짐과 그 사이의 전환 가능성에 대한 수학적 지도를 제공합니다.
이 프레임워크는 주말 안에 완전히 구현 가능합니다. 전이 행렬은 몇 줄의 Python 으로 과거 데이터에서 추정됩니다. Chapman-Kolmogorov 방정식은 단일 행렬 거듭제곱을 통해 n-단계 예측을 제공합니다. 정상 분포는 장기 기준선을 알려줍니다. 그리고 워크포워드 백테스트는 모델이 진정한 예측력을 가지고 있는지 아니면 노이즈에 피팅되고 있는지 알려줍니다.
가정은 현실적이며 중요합니다. 시간 동질성은 위반됩니다. 마르코프 속성은 근사치입니다. 추정 오류는 항상 존재합니다. 하지만 첫 번째 패스 모델이자 더 정교한 은닉 마르코프 모델 확장을 위한 구성 요소로서, 이 프레임워크는 실제 기업에서 프로덕션에 배포되었으며 실제 우위를 창출했습니다.
이제 완전한 구현을 갖게 되었습니다. 코드는 이 글에 있습니다. 수학은 첫 번째 원리부터 설명됩니다. 중요한 한계는 문서화되어 있어 모델이 정확히 어디에서 실패할 수 있고 이러한 실패를 완화하는 방법을 알 수 있습니다.
여러분이 생각해볼 질문이 있습니다.
마르코프 체인 모델은 관찰 가능한 가격 행동을 기반으로 레짐을 정의합니다. 하지만 기관 트레이더가 실제로 트레이딩하는 가장 중요한 시장 레짐은 종종 신용 조건, 통화 정책 기조, 위험 선호도와 같은 가격 데이터만으로는 직접 볼 수 없는 잠재 요인에 의해 주도됩니다. 시장을 위한 은닉 마르코프 모델을 설계한다면, 방출 변수로 어떤 관찰 가능한 신호를 사용하시겠습니까? 그리고 그 이유는 무엇입니까?
답변을 댓글로 남겨주세요.
틀린 답변은 없지만, 매우 의미 있는 답변은 있습니다.


