support vector machine과 매매시스템

1.
@비공개님이 알고리즘트레이딩을 위한 데이터사이언스 과정에 올리신 댓글을 읽으면서 든 생각을 적은 글입니다.

비록 매매를 하지 않지만 제가 매매를 하는 회사를 하면 가장 강조하고 싶은 일이 조사,연구 및 분석입니다. 매일 트레이딩과 관련한 논문을 살펴보고 아이디어를 얻습니다. 저는 흐름을 이해하기 위한 노력이지만 트레이딩을 하면 생존을 위한 지속적인 활동일 듯 합니다.

이번에 개설한 데이터사이언스과정중 기계학습과 관련한 부분이 있습니다. 기계학습과 관련한 알고리즘중 SVM(support vector machine)이 있습니다. 구글링으로 검색을 해보면 SVM 알고리즘을 이용하여 매매시스템을 구현하는 방안을 다룬 논문이 많습니다. 그 중 몇 논문을 소개합니다. 내일 주가는 상승할까, 하락할까?- SVM(Support Vector Machine)을 활용한 KOSPI 예측SVM을 이용한 시스템트레이딩전략의 선택모형입니다.

Download (PDF, 673KB)

Download (PDF, 682KB)

국내만 하더라도 수 많은 논문들이 SVM을 다루고 있지만 실제 매매시스템에 적용한 경우를 들은 적은 없습니다. 무언가 이유가 있으리라 생각합니다. 아마도 손익때문이 아닐까 합니다. 한글이 아닌 영어로 된 논문은 더 많습니다. 국내의 논문과 달리 조금 더 나아간 것들이 많습니다. Python이나 R을 이용하여 구현을 하고 백테스팅한 결과도 많이 보입니다. 그 중 R을 이용하여 백테스팅 결과를 올려놓은 분도 있습니다.

Trading with SVMs: Performance

Tradestation보다는 덜 친숙하지만 MQL을 사용하는 Metatrader를 이용한 SVM을 이용한 전략은 무척이나 구체적입니다. MQL 소스코드까지를 제공하고 있습니다.

Machine Learning: How Support Vector Machines can be used in Trading

단순히 SVM과 기술적 지표들을 결합한 논문만이 아닌 재미있는 제목의 논문도 있습니다. 시장 미시경제론을 말할 때 자주 등장하는 Limit Orderbook과 SVM을 결합한 논문입니다. 이 논문은 5th Annual Modelling High Frequency Conference에서도 소개한 논문이네요.

Modeling high-frequency limit order book dynamics with support vector machines

Download (PDF, 891KB)

위의 논문을 요즘 각광을 받고 있는 Apache Spark을 이용하여 구현을 한 Eugene Zhulenev도 있습니다. Collective라는 회사에 재직중인 개발자입니다. Github에 Scala로 구현한 소스코드도 공개하였습니다.

Stock Price Prediction With Big Data and Machine Learning

SVM과 통계적 차익거래전략을 결합한 경우도 있습니다.

Statistical Arbitrage Using Pairs Trading With Support Vector Machine Learning

2.
논문을 살펴보면 SVM을 간단히 다루고 있습니다. 그런데 데이터사이언즈에서 중요한 부분을 차지하는 SVM을 적용할 때 그리 단순하지 않다고 합니다. SVM을 소개하는 글중 SVM을 사용할 때 어려움을 두가지로 소개합니다.

Data Science 101: Support Vector Machines은 알고리즘에 대한 이해입니다. 아래 글에서는 ‘Fully’로 강조합니다.

Support Vector Machines (SVM) is an important and widely used machine learning algorithm. In order to fully understand SVMs, you need to have a fundamental understanding of how the statistical learning method functions.

Support Vector Machines in Data Science은 통계적인 훈련의 어려움을 강조합니다. 아마도 Fitting과 Overfitting을 말하는 듯 합니다. KAIST 지식서비스공학과가 주최하는 제 2회 지식서비스 워크샵의 주제는 “기업을 위한 데이터 사이언스”였습니다. 이중 두번째 강의가 예측 모델링과 분류 기법였습니다. 여기서 Fitting과 Overfitting을 간단히 소개합니다.

Support Vector Machines (SVMs) may not be as popular as Neural Networks within data science, but they act as powerful, useful algorithms. One of the difficulties of SVMs has been the computational effort required to train them.

ovefitting fitting

저같이 내공없는 사람이 Github에 있는 소스를 가져와서 SVM 매매시스템을 개발합니다. 백테스팅도 하고 실거래도 합니다. 여러가지 결과가 나올 수 있지만 나쁜 결과가 나오면 SVM을 탓합니다. 좋은 목수는 연장을 탓하지 않지만 좋지않은 목수는 연장을 탓합니다. 비유가 부적절할 수 있지만 능력 있는 트레이더는 같은 연장으로 더 좋은 결과를 만들어냅니다. 아니면 하고자 하는 일에 적합한 연장을 찾아서 좋은 결과를 만들어냅니다.

지금까지 교육을 하면서 ‘수익을 낼 수 있다’는 말을 하지 않았습니다. 그저 능력있는 트레이더, 트레이딩회사가 되지 위해 필요한 다양한 연장을 제공하고 잘 사용할 수 있는 방법을 제공하려고 했습니다. 마지막 열매의 몫은 온전히 ‘트레이더’의 역할입니다.

能書不擇筆
不能名書不擇適筆

명필은 붓을 가리지 않지만 글을 잘 쓰려면 붓을 가려야 합니다. 알고리즘트레이딩을 위한 데이터사이언스 과정은 시장에 적합한 붓을 찾을 수 있도록 도움을 주는 과정입니다.

Leave a Comment

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

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