Dynamic Time Warping(DTW) 기반 가격 예측 모델 개발기(2)
Dynamic Time Warping(DTW) 기반 가격 예측 모델 개발기(2)

Dynamic Time Warping(DTW) 기반 가격 예측 모델 개발기(2)

안녕하세요, COSIGN 기술 블로그입니다.

오늘 준비한 글은 Dynamic Time Wapring(DTW) 기반 가격 예측 모델 개발기 2편으로, 1개 차원의 데이터에 대해 유사도를 계산하는 기존의 DTW 알고리즘을 다차원으로 확장한 DTW Independent 방식과 DTW Dependent 방식을 사용해서 선물 가격 예측 모델을 개발하고 백테스트한 결과를 살펴보겠습니다.

DTW 기반 가격 예측 모델 개발기 1편은 아래 링크에서 확인하실 수 있습니다.

Dynamic Time Warping(DTW) 기반 가격 예측 모델 개발기 – COSIGN Tech

1. Multidimensional Dynamic Time Warping 개요

들어가기에 앞서, 먼저 DTW 알고리즘에 대해서 다시 살펴보겠습니다. DTW 알고리즘은 시간 축 상에서 두 개의 시계열 데이터 간의 유사도를 측정하기 위한 알고리즘입니다. 이 알고리즘은 시계열 데이터 간의 크기나 속도 차이 등의 변화를 고려해 유사도를 측정합니다.

그림 1. 유클리드 거리를 사용한 유사도 계산(위), DTW를 사용한 유사도 계산(아래)
그림 2. 유사 패턴 탐색 결과. 현재 패턴(빨간색), 과거 패턴(파란색)

DTW를 다차원으로 확장하는 것은 각 차원의 시계열 데이터 간의 유사도를 측정하는 것입니다. 일반적으로, 시계열 데이터는 하나의 차원으로 표현됩니다. 그러나, 데이터가 다차원으로 표현될 경우에는 각 차원 간의 상호작용을 고려하여 유사도를 측정해야 합니다. DTW Independent 방식과 DTW Dependent 방식은, 각 차원의 시계열 데이터 간의 유사도를 계산한 결과를 합산하는 방식에서 차이가 있습니다.

2.DTW Independent

DTW Independent 방식은 각 차원을 독립적으로 처리하기 때문에, 1개 차원에 대한 DTW 알고리즘을 각 차원에 대해 독립적으로 적용한 후에 그 결과를 단순히 합하여 최종 유사도를 계산합니다. 이 방식은 각 차원 간의 맵핑 결과가 달라질 수 있으며, 각 차원이 서로 독립적인 경우에 적용됩니다.

DTW Independent 방식에서의 유사도 계산 과정을 수식으로 표현하면 다음과 같습니다.

1. 두 개의 시계열 데이터 X와 Y에서 i번째 차원 간의 거리 계산

d(i, j) = 거리 측정 함수 (X(i, j), Y(i, j))

2. 맵핑 경로 계산

DTW(i, j) = d(i, j) + min(DTW(i-1, j), DTW(i, j-1), DTW(i-1, j-1))

3. 각 차원에서의 맵핑 경로 합산

DTW(X, Y) = ∑[DTW(i, n)], i=1~m

여기서, m은 시계열 데이터의 차원 수이고, n은 각 차원에서의 데이터 포인트 수입니다. DTW(i, j)는 (i, j)까지의 맵핑 경로에서의 최소 거리를 나타내는 변수이며, DTW(X, Y)는 X와 Y 간의 DTW 거리 또는 유사도를 나타냅니다. DTW Independent 방식에서는 각 차원에서의 맵핑 경로를 합산하여 최종 맵핑 경로를 계산하고, 이를 통해 두 개의 다차원 시계열 데이터 간의 유사도를 측정합니다.

3.DTW Dependent

반면에, DTW Dependent 방식은 각 차원이 서로 연관되어 처리되는 방식입니다. 한 차원에서의 유사도가 다른 차원에서의 유사도에 영향을 미치는 경우에 사용됩니다. 이 경우에는 각 차원 간의 맵핑 경로를 함께 고려하여 유사도를 측정하여, 차원 간의 맵핑 경로가 일치합니다.

DTW Dependent 방식에서의 유사도 계산 과정을 수식으로 표현하면 다음과 같습니다.

1. 두 개의 시계열 데이터 X와 Y에서 i번째 차원 간의 거리 계산

d(i, j) = 거리 측정 함수 (X(i, j), Y(i, j))

2. 맵핑 경로 계산

DTW(i, j) = d(i, j) + min(DTW(i-1, j), DTW(i, j-1), DTW(i-1, j-1))

3. 최종 유사도 계산

DTW(X, Y) = DTW(m, n)

여기서, m은 시계열 데이터의 차원 수이고, n은 각 차원에서의 데이터 포인트 수입니다. DTW(i, j)는 (i, j)까지의 맵핑 경로에서의 최소 거리를 나타내는 변수이며, DTW(X, Y)는 X와 Y 간의 DTW 거리 또는 유사도를 나타냅니다.

4. DTW Independent와 Dependent 방식 비교

다차원 시계열 데이터에서 DTW를 적용하는 경우에는 데이터의 특성에 따라 적절한 방식을 선택하여 유사도를 계산해야 합니다. 위에서 언급한 두 방식은 서로 다른 유사도 계산 결과를 생성하게 되며, 두 방식 중 어느 것이 우월하다고 할 수는 없습니다.

실제 캔들 데이터에 대하여 두 가지 방식을 각각 테스트한 결과를 살펴보겠습니다. 데이터는 캔들 종가와 거래량으로 이루어진 2차원 시계열 데이터를 사용하였습니다.

테스트는 2개의 쿼리 시계열에 대하여 각 방식을 사용하여 가장 유사한 데이터를 탐색한 결과를 비교하였습니다. DTW Independent 방식과 Dependent 방식을 각각 적용한 결과, 2개의 쿼리 시계열 중 1개의 시계열에서 가장 유사한 패턴이 서로 일치하였습니다.

유사도 계산 결과를 살펴보면, DTW Dependent 방식은 캔들과 거래량 데이터의 맵핑 결과가 서로 일치하는 것을 어렴풋이 알 수 있으며, DTW Independent 방식은 맵핑 결과가 불일치한 것을 알 수 있습니다.

5. 백테스트

가격 예측을 위해 Multidimensional DTW 알고리즘을 사용하는 경우, 각 차원이 서로 독립적이지 않다고 가정하는 것이 적절하므로, DTW Dependent 방식을 사용하여 유사도를 계산하고, 가격 예측은 Dynamic Time Warping(DTW) 기반 가격 예측 모델 개발기 1편과 동일한 방법을 사용하여 수행 및 평가하였습니다.

대상 코인: 바이낸스 선물 코인 73종

기간: 2019년 9월 8일 ~ 2022년 12월 31일 (비트코인 기준)

수수료: 바이낸스 선물 매매 기준(시장가) 0.04%

 Buy&Hold누적수익률(수수료포함)누적수익률(수수료미포함)적중률(수수료 포함)적중률(수수료미포함)
평균93.10%595.12%704.23%57.81%58.43%
적중률: 수익 횟수 / 매매 횟수
그림 3. BTCUSDT 백테스트 결과. 가격 데이터(파랑), 누적 수익률(주황), 수수료 제외 누적 수익률(초록)
그림 4. DOGEUSDT 백테스트 결과. 가격 데이터(파랑), 누적 수익률(주황), 수수료 제외 누적수익률(초록)

출처

그림 1. XantaCross, CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons

답글 남기기

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