IB API로 만든 다양한 사례와 소스

1.
매매를 위한 API는 다양합니다. 증권사가 매매를 위하여 제공하는 API도 있고 특정한 회사의 매매프로그램이 제공하는 API도 있습니다. 제가 서비스하고 있는 ZeroAOS도 두가지 API를 제공합니다. 아마 API를 제공하는 증권사들이 벤치마킹을 한다고 하면 Interactive Brokers입니다. 자주 소개하였던 증권사입니다.

트레이딩 API와 생태계

Python을 기반으로 하여 Paper Trading 및 Live Trading을 제공하는 Quantopian도 IB API를 기반으로 합니다. 글을 읽어보면 IB API를 이용한 다양한 사례가 나옵니다. 그 중 재미있는 사례를 소개하려고 합니다.

먼저 이름도 거창한 고빈도매매 전략입니다.

A high-frequency trading model using Interactive Brokers API with pairs and mean-reversion in Python

현재까지 구현한 기능이라고 합니다.

Cash-neutral strategy with long-short position
Bootstrap the model with historical data to derive usable strategy parameters
Bootstrapping takes some time, we need to bridge historical data with recent tick data
Transforming inhomogenous to homogeneous time series of 1 second intervals
Selection of highly-correlated stock pairs
Using volatility ratio to detect trending, mean-reversion or Brownian motion
Fair valuation by using beta of average 5 minute look-back price window
Fair valuation of stock A against more than 1 security (stock B, C…) is possible
Trade decisions based on mean-reversion, volatility ratio and deviation from fair prices

그리고 전략을 만들 때 참고로 한 논문입니다. 어떤 글을 보니까 매매를 할 때 꼭 두가지 준비를 하라고 하더군요.

첫째 읽어라(Read)
둘째 가상거래를 해라(Paper Trading)

  • MIT – Developing high-frequency equities trading model @ http://dspace.mit.edu/handle/1721.1/59122
  • SMU – Profiting from mean-reverting yield-curve trading strategies @ http://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=3488&context=lkcsb_research
  • github에 공개했지만 전략소스를 소개합니다. Python으로 개발한 무척 긴 소스입니다.

    2.
    또다른 소스입니다. IB API와 FIX를 연결하고자 하는 시도입니다.

    Connecting to IB through FIX Using Python to Execute your Algorithms

    FIX Engine은 QuickFIX를 사용하였습니다. QuickFIX Server에 접속하기 위하여 사용한 Python Client는 QuickFix python client입니다.

    마지막은 IB API를 이용하여 시세데이타를 저장하고 재생하는 프로그램입니다. 앞서 프로그램은 Python으로 개발했지만 이것은 R로 개발되었습니다.

    Market Data Recording and Playback with IBrokers and R

    증권사가 제공하는 API를 이용하여 다양한 상상력을 발휘해보시길 바랍니다.

    Leave a Comment

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

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