선물거래와 Dynamic Time Warping

1.
해외 블로거인Systematic Investor의 글을 읽는데 Dynamic Time Warping을 소개하더군요. 참고 논문이라고 해서 연결한 논문이 아래입니다.

Trading Strategies based on Pattern Recognition in Stock Futures Market using Dynamic Time Warping Algorithm

그런데 유심히 보니까 저자들이 한국 사람입니다. 그래서 관련한 논문을 다시 검색했습니다. 한국데이터정보과학회가 발행하는 Journal of the Korean Data & Information Science Society 2011년 v.22 no.2에 실린 논문이었습니다. 공동저자인 오경주 연세대 정보산업공학과 교수가 쓴 논문도 많아서 검색을 해보니 대학원을 졸업하고 잠시 현대증권 리서치센터 금융공학팀에서 근무를 하셨더군요.

DTW는 처음 음성인식에서 나온 방법으로 패턴 인식에서 이용되는 방법입니다. 시퀀스를 시간의 길이를 고려하지 않고 인식할 수 있는 방법이고 말 그대로 Time을 Warping하기 때문에 특정한 동작을 느리게 하게 되면 시간을 느리게 변화시키는 방법이라고 합니다. 그림으로 표현하면 아래와 같습니다. 기본적인 설명은 Wikipedia를 보시길 바랍니다.

warp

DTW을 구현한 방법은 다양합니다. 최근 각광을 받고 있는 R과 Python의 경우 무척 많습니다. Dynamic Time Warping for Sequence Comparison은 Python으로 DTW를 찬찬히 설명하고 있습니다. Dynamic Time Warping using rpy and Python은 R과 Pyhon을 이용하고 있습니다. pyML을 보면 Coursera 강의중 Andrew Ng의 기계학습 알고리즘을 구현한 프로젝트입니다. 이중 DTW방법을 포함하고 있습니다. Time Series Analysis and Mining with R나 Python으로 설명한 Time Series Classification and Clustering을 보면 데이타분석을 통해 데이타의 유사성을 밝혀 예측을 할 때 DTW방법이 의미를 가진 듯 합니다.

R이나 Python 이외에 FastDTWlbimproved와 같이 Java와 C++로 구현한 라이브러리도 유명합니다. 그런데 C는 별로 없네요. Speech Processing에 포함된 소스를 참고로 올립니다.

2.
다시 처음으로 돌아갑니다. 위의 논문을 찾아보니 한국데이타정보과학회지에 실린 글이더군요. 그렇지만 색인에 나오지 않았습니다. 여러번 확인끝에 선물시장의 시스템트레이딩에서 동적시간와핑 알고리즘을 이용한 최적매매빈도의 탐색 및 거래전략의 개발에서 찾을 수 있었습니다.

Download (PDF, 1.48MB)

DTW가 더 궁금하시면 2차 미분 연산자를 이용한 효과적인 Dynamic Time Warping을 읽어보세요. 영어가 아니라 한글입니다.

Download (PDF, 1.17MB)

그러면 DTW방법을 이용한 선물거래시스템 구현은 다음편에서.

Leave a Comment

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

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