1.
트레이딩을 단순히 매매로만 이해합니다. 이를 좀더 깊이 들어가보면 하나의 프로세스가 아닙니다. 트레이딩 프로세스는 분석과 설계(Research And Desing, 백테스팅(Back Testing) 및 구현(Implementation) 그리고 운영 및 평가(Operation)으로 나눌 수 있습니다. 이중에서 가장 많은 비용과 시간이 들어가는 부분은 분석설계와 백테스팅입니다. 여기서 전략의 수익률이 결정됩니다. 어떤 트레이더는 이 부분의 지연을 가장 큰 비용이라고 판단합니다. 시장의 변화에 맞추어 전략을 운용하지 못함으로 발생하는 손실로 보기때문입니다. 이상 트레이딩을 설명했지만 사실 저는 트레이딩을 하지 않는 사람으로 분석과 설계 및 백테스팅을 해본 경험이 없습니다. 주변에서 트레이딩을 하라고 하지만 제 뜻을 꺾지 않고 있습니다. 후배가 전략 개발을 하면서 엑셀과 증권사 DDE기능을 이용하여 백테스팅하는 것은 가끔 본 것외에 분석설계 및 백테스팅을 하는 분도 많지 않더군요.
분석설계와 백테스팅이 중요하면 이 단계에서 생산성도 무척이나 중요해집니다. 매매시스템을 구현할 때처럼 C/C++로 개발하지 않을 듯 합니다만 어떤 방법을 사용할까요? 주변을 보면 Excel와 Matlab을 많이 사용했지만 최근 Python이나 R을 이용하는 분들이 늘어나는 듯 합니다. 어떤 데이타 과학자는 Matlab을 버린 이유를 아래와 같이 정리하더군요.
Licenses for Matlab are not free (as in free beer). The new ribbon GUI (since 2012a?) is actually really unpleasant imho. Matlab is a scripting language at best, not a proper (general purpose) programming language. For example, the way they implemented object oriented features is just plain nasty. There’s no proper way to manage packages apart from downloading scripts off the File Exchange and then adding them to the matlab path. Matlab sometimes breaks because of Java updates; older mex-files are often not compatible with 64-bit versions of Matlab. This is potentially a problem as they no longer support 32-bit versions of Matlab. Reading from and writing to text files (i.e. for logging experimental data) can be extremely tedious – this is a big problem.. The statistical toolbox doesn’t support any higher level stats. Data munging is not as straightforward as in other languages (i.e. R).
또 어떤 트레이딩 데스크는 R On Trading Desk에서 엑셀에서 R로 바꾼 이유를 다음과 같이 설명합니다.
오픈소스와 빅데이타의 시대라는 조건이 도구의 변화를 초래하고 있네요. 아마도 이 때문에 금융수학과정을 진행하시는 김도형박사님도 R을 통한 금융통계교육을 기획하셨나 봅니다. 혹시 Matlab을 사용하는 분들이 R로 바꿀 때 아래를 참조해보세요.
2.
위와 같은 흐름과 맞물려 ZeroAOS에서 Python이나 R을 지원하는 방안을 검토한 적이 있습니다. 처음 고민을 할 때는 전략을 개발하는 언어로써 고민을 하였습니다. 이런 저런 조사를 하면 Cython이면 충분하다는 판단을 했습니다. 이후 고민을 더하면서 분석설계와 백테스팅과 관련한 기능을 지원하는 차원에서도 고민해보고 있습니다. 마침 이와 비슷한 시도를 한 경우가 있더군요.
InfoReach Outlines Results of TMS Integration with R Analytics Language
아직 어떤 방향으로 추진할지 결정은 하지 못했습니다. 시간과 자원이 제한적이라 쉽게 결정을 내릴 수 없습니다. 그렇지만 금융수학교육을 받는 분들과 ZeroAOS 기능 추가를 위해 R과 관련한 자료를 정리합니다.
먼저 Trading With R이라는 자료입니다. 발표자인 Chinmay는 트레이딩 언어로써의 R을 아래와 같이 평가합니다.
R is certainly one my most favorite tool and I use it mainly for analysis of backtesting data generated from other backtesting softwares. R does have quantstrat package for backtesting systematic trading strategies. However, it is under heavy development, and as a business decision, we decided to use other softwares specifically developed for backtesting. Having said that, I see great potential in quantstrat and certainly see it as best free open source backtesting tool out there.
위의 자료를 보면 Quantstrat이 나옵니다. Quantstrat는 Quantitative Strategy Model Framework – Specify, build, and back-test quantitative financial trading and portfolio strategies을 위한 패키지입니다. Quantstrat를 설명한 자료입니다.
Quantstrat의 설치와 기본개념을 이해하고자 하시면 아래를 읽어보시는 것도 좋습니다.
Installing quantstrat from R-forge and source
Introduction to quantstrat
위에서 소개한 ‘Using quantstrat’을 보시면 분석설계 및 백테스팅환경을 구축할 때 사용할 수 있는 R패키지를 잘 정리한 표가 있습니다.
이보다 좀 더 깊은 자료가 필요한 R/Finance: Applied Finance with R를 참고하시면 좋을 듯 합니다.
R/Finance 2009 R/Finance 2010 R/Finance 2011 R/Finance 2012 R/Finance 2013
3.
이상은 트레이딩과 관련한 자료입니다. 여기서 한발만 더 나아가도록 하겠습니다. Forecasting과 관련한 주제입니다. 호주 Monash University의 통계학과 교수인 Rob J Hyndman의 자료들입니다. 자신의 논문을 기반으로 한 Forecast Package를 제공합니다.
forecast package for R demography: Forecasting mortality, fertility, migration and population data Automatic time series forecasting: the forecast package for R Forecasting time series using R Forecasting time series with complex seasonal patterns using exponential smoothing
물론 패키지 뿐 아니라 자신이 쓴 책 또한 오픈소스로 공개하고 있습니다.
Forecasting: principles and practice
Otexts가 제공하는 다른 책도 여럿이 있습니다.
Statistical foundations of machine learning
Electric load forecasting: fundamentals and best practices
Forecasting: principles and practice
Otexts를 이용하지 않았지만 서민구씨가 공개한 책도 있습니다. 훌륭하십니다.
만약 R이란 세계에 입문하고자 하면 아래도 확인해보세요.
R-bloggers는 R과 관련한 거의 모든 것을 모아놓은 관문입니다.
이상에서 영어로 된 자료를 주로 소개하였습니다. R언어를 사용하는 분들이 많은 만큼 한글로 된 자료도 많습니다.
요즘 R언어가 각광을 받는 듯 합니다. 혹 R을 트레이딩에 이용해보싶으신가요? '금융통계 및 시계열분석' 교육은 금융수학을 R을 이용하여 가르치는 과정입니다. 현재 2기와 3기 모집중입니다. http://t.co/1PhEhPHT4w
— smith Kim (@smallake) November 8, 2013