R언어와 트레이딩

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).
  • Why I am abandoning Matlab in favour of Python and R중에서

    또 어떤 트레이딩 데스크는 R On Trading Desk에서 엑셀에서 R로 바꾼 이유를 다음과 같이 설명합니다.

    R-TradingDesk

    오픈소스와 빅데이타의 시대라는 조건이 도구의 변화를 초래하고 있네요. 아마도 이 때문에 금융수학과정을 진행하시는 김도형박사님도 R을 통한 금융통계교육을 기획하셨나 봅니다. 혹시 Matlab을 사용하는 분들이 R로 바꿀 때 아래를 참조해보세요.

    R for MATLAB users

    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-TradingDesk2

    이보다 좀 더 깊은 자료가 필요한 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이란 세계에 입문하고자 하면 아래도 확인해보세요.

    Quick-R

    R-bloggers는 R과 관련한 거의 모든 것을 모아놓은 관문입니다.

    R-bloggers

    이상에서 영어로 된 자료를 주로 소개하였습니다. R언어를 사용하는 분들이 많은 만큼 한글로 된 자료도 많습니다.

    Leave a Comment

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

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