1. 개요
Algorithmic Trading: 줄여서 Algo Trade특정 매매기법(시스템)을 컴퓨터 프로그램을 이용하여 완전히 자동으로 주식을 사고파는 거래 방식을 뜻한다. 사람의 심리와 주문의 실수와 같은 문제가 관여할 여지가 없는 것이 큰 장점이다. 다만 한맥투자증권 주문사고와 같이 알고리즘의 오류 또는 프로그램의 문제로 인해 큰 손실이 발생할 수도 있다는 단점이 있다.
프로그램 매매의 거래 방식과 다를 바가 없다.[1] 그러나 프로그램 매매는 기관이나 외국인 투자자들이 한국예탁결제원의 승인을 받아 프로그램을 예탁결제원에 설치한 상태로 할 수 있는 반면, 알고리즘 트레이딩은 딱히 규제를 하고 있지 않다. 프로그램 매매는 동시에 5억 원 이상의 매수/매도 주문을 내는 것인데 알고리즘 트레이딩은 동시에 5억원이 안 되는 거래를 하기때문에 한국거래소에서 딱히 잡고 있지 않다.
전세계적으로 프로그램을 이용하여 자동으로 매매하는 주식 거래가 점점 늘어 나는 추세이다. 해외는 많은 비중을 차지 하고 있으며 국내에도 사용 할수 있는 프로그램도 있다.
한국금융투자협회에서도 주기적으로 강좌를 개설하는 등 신경을 많이 쓰고 있다.
2. 프로그램
알고리즘 트레이딩을 시작하기 위해서는 ToolBox를 이용하거나, 직접 개발하는 방법이 있다.툴박스를 이용한 방법은 이미 개발되어 있는 프로그램을 이용해 프로그램에서 자체적으로 제공하는 언어(스크립트)를 이용하여 프로그래밍을 하는 방식이다. 대표적으로 예스스탁에서 제공하는 예스트레이더가 있으며 직접 개발에 비해 시간과 수고가 덜 들고, 백테스팅을 위한 과거 데이터를 구하지 않아도 된다는 장점이 있으나, 직접 개발하는 방법에 비하면 자유도가 낮다는 단점이 있다.
블룸버그 터미널도 비슷한 기능을 제공한다. 하지만 블룸버그 터미널은 비싸기 때문에 대체로 일반인들은 다른 프로그램들을 활용한다.
직접 개발하는 방법은, 프로그램을 개인이 개발하는 것이다. 툴박스 사용에 비해서는 자유도가 비교할 수 없을 정도로 높으나, 처음 시작하면 어디서 시작해야할지 막막한 경우가 있다. 또한 백테스팅을 위한 과거 데이터도 직접 구해야 하는 단점이 있다.
프로그램을 개발하기 위한
프로그래밍 언어로는 원래
R이나
C언어를 사용하는 게 원칙이다. 왜냐하면
금융시장의 단위속도를 다른 언어로 따라가기가 어렵기 때문이다.
미국의 금융업계나 학계에서는
R로 하는 퀀트 트레이딩이라고 가르친다. 반면
한국에서는 개인 투자자들 사이에서
Python과 증권사 Open API를 활용하여 프로그램을 짜는 경우가 많다.
해당 책이
2017년 한국에 나온 이후 주식투자자들 사이에서 빠르게 보급되었다. 기본 Python으로 되는건 당연히
Ruby로도 된다.
Ruby로 하는 알고리즘 트레이딩 개발
일본에서는 루비로 많이 만든다. 대한민국에서 일부 가능해진 모바일 서드파티 트레이딩의 경우 애초에 신속성을 목표로 하지 않으므로 해당 플랫폼의 네이티브 언어(Swift/Objective-C, Kotlin/Java[2])로 개발한다.
MS 엑셀- MS 액세스를 연계하고 VBA를 이용하는 경우도 있다. Python보다도 속도가 느린데다가 오피스 특성 상 파일이 무거운 단점이 있다. 예시
3. OpenAPI
사용자가 직접 프로그램을 만들수 있도록 증권사들이 API를 제공한다. 각 증권사들이 OpenAPI를 공개 함으로써 점점 늘어나는 추세이다. 2019년에는 거의 대부분의 증권사 HTS들이 알고리즘 트레이딩을 할 수 있는 OpenAPI를 제공중이다. 기사- 한국투자증권: REST API 방식으로 API를 제공한다. 다양한 환경(언어, OS, 32Bit)에서 사용이 가능하다.
-
삼성증권: 기관투자자한테만 API를 제공한다. 유료다.
라고는 하나 100억 이상의 자산을 보유하고 있는 VVIP 고객들에게도 암암리에 제공한다는 정보가 있다. 애초에 증권사 입장에서는 돈만 된다면 딱히 기관투자자에게만 국한시킬 필요가 없다. 일례로 신한금융투자의 경우에도 월 거래금액이 20억이 넘는 개인 고객을 대상으로 각종 파생상품 수수료 협상이 가능하다. - 대신증권: 국내 최초로 OpenAPI를 제공했다.
- 키움증권: C/C++, C#
- 이베스트투자증권: XingAPI로 부르며, COM, DLL, REST API 방식 모두 제공한다. 모바일(iOS: Swift/Obj-C, Android: Kotlin/Java) 라이브러리를 제공한다. REST API는 COM, DLL 버전 대비 지원하지 않는 명령들이 있다.
- 신한금융투자: 신한i Indi의 형태로 제공하며 C#, VB, VBA, MFC, Python 등을 제공한다. 도움말