시스템트레이딩

알고리즘 트레이딩(Algorithmic Trading)의 기초

Coinus 2022. 6. 4. 11:11

알고리즘 트레이딩이란 컴퓨터를 사용하여 인간이 예상하지 못한 시점과 주기를 통해 수익을 내도록 하는 일련의 명령들을 수행하는 프로그램으로 동작됩니다. 정의된 규칙들은 타이밍, 가격, 수량 혹은 다른 수학적 모델에 기초를 두고 있습니다.

알고리즘-트레이딩은 트레이더에게 수익을 낼 기회를 줄 뿐 아니라, 시장을 좀 더 유동적으로 만들고 트레이딩 활동에서 인간의 감정적인 영향을 없애 좀 더 체계적으로 거래를 할 수 있죠.

 

주식 가격(이동평균선 포함)을 자동으로 모니터링하고 매수 및 매도 주문을 넣는 컴퓨터 프로그램을 작성하는 것은 그리 어렵지 않습니다. 트레이더는 실시간으로 가격과 그래프를 계속 보면서 직접 주문을 할 필요가 없습니다. 알고리즘 트레이딩 시스템은 자동으로 거래 기회를 포착하고 주문을 넣어주니깐요.

 

알고리즘 트레이딩의 장점

알고리즘 트레이딩은 다음과 같은 장점을 제공합니다:

  • 최적의 가격에 최적의 타이밍을 계산이 가능하다
  • 즉시, 정확하게 거래 주문을 한다 
  • 거래 비용(Transaction Cost)을 줄여준다 
  • 여러 시장 조건에 대한 즉각적인 자동 확인한다(만족 조건을 소수점 단위까지 계산이 가능)
  • 수동 주문에 존재하는 오류의 위험을 감소시킨다
  • 이용 가능한 역사적, 실시간 데이터에 대하여 알고리즘을 백테스트(Backtest) 할 수 있다
  • 인간(트레이더)이 저지를 수 있는 감정적인 부분은 배제시킬수 있고 심리적인 실수를 줄일 수 있다

알고리즘 트레이딩의 가장 큰 부분은 초단타 매매(High Frequency Trading. HFT)입니다. 이는 미리 프로그램된 명령들에 기초하여 다양한 시장과 결정 변수에 의존하여 매우 빠른 속도로 많은 양의 주문을 합니다. 하지만 수수료를 포함한 슬리피지와  괴리를 포함한 트레이딩은 수익에 악영향을 주기 때문에 초단타매매 기법보다는 중장기적인 전략으로 수익을 보는 방법을 선호하게 됩니다.

 

알고리즘 트레이딩은 트레이딩과 투자 활동의 많은 형태로 사용됩니다:

  • 중-장기 투자자가 거대 규모의 주식을 구입하지만 주식 가격에 영향을 미치고 싶지 않아 할 때
  • 단기 트레이더와 Sell Side 참여자들(마켓 메이커, 투기자, 재정 거래자)이 자동화된 주문으로 이득을 얻으려고 할 때. 덧붙이자면, 알고-트레이딩은 마켓의 판매자들이 충분한 유동성을 만들도록 돕는다.
  • 시스템 트레이더들이 거래 규칙을 프로그래밍하는 것이 효과적이라고 판단하고 프로그램이 자동으로 주문을 넣게 할 때

알고리즘 트레이딩은 인간(트레이더)의 본능과 직관에 의존하는 방법보다 좀 더 체계적인 접근법을 제공합니다.

 

알고리즘 트레이딩 전략

알고리즘 트레이딩의 모든 전략은 (수익 향상 혹은 비용 절감의 측면에서) 수익성이 있다고 판단되는 기회에 대한 포착을 필요로 합니다. 지금부터 알고리즘 트레이딩에서 기본적으로 사용되는 전략들을 소개드리겠습니다.

 

  • 추세 추종형 전략 (Trend Following Strategies)

기술적 지표와 관련된 추세를 따르는 가장 보편적인 알고리즘 트레이딩 전략입니다. 추세 추종형 전략의 기원은 가격은 상승과 하락은 추세가 존재하고 이 추세를 이용하여 추세를 따라가면서 이익을 극대화한다는 전략입니다. 이 전략들은 어떤 예측이나 가격에 대한 예상을 하지 않으므로 구현하기에 매우 쉽고 간단합니다.  

 

  • 차익 기회 (Arbitrage Opportunities)

A 시장에서 낮은 가격에 주식을 매수하여 B 시장에서 비싼 가격에 동시에 매도하는 것은 무위험 수익 혹은 차익(Arbitrage)이라는 가격 차이로 이득을 볼 수 있습니다. 주식의 선물 시장 또한 시간에 따라 가격이 변화하므로 같은 원리가 적용될 수 있죠. 이와 같은 가격 차이를 확인하고 주문을 넣는 것은 효과적인 방법으로 수익 기회를 만들어 줍니다.

 

  • 역추세 추종 거래 (평균 회귀. Mean Reversion)

역추세 추종 거래(Mean Reversion) 전략은 자산의 높고 낮은 가격이 일시적인 현상이며 곧 그들의 평균 가격으로 돌아올 것이라는 가정에 기초하고 있습니다. 즉 가격이 큰 폭으로 상승 혹은 하락을 하였을 때 이 가격의 변동은 곧 평균 회귀되어질 것이고 이 평균 회귀되는 차익을 수익 기회로 만드는 전략으로, 이러한 가정에 기초하여 알고리즘을 구현하는 것은 가격이 정의된 범위에 들어오거나 벗어날 때 혹은 가격의 큰 폭의 변화가 멈추는 시점에  주문을 자동으로 집행하도록 합니다.

 

  • 임플리멘테이션 숏폴 (Implementation Shortfall)

Implementation Shortfall 전략은 실시간 시장에서 (주문) 실행 비용을 최소화하는 목표를 두고 있습니다. 따라서 지연된 실행의 기회비용을 통해 주문 비용을 절약하고 이득을 얻죠. 이 전략은 주식의 가격이 유리하게 흐르면 목표 참여 비율을 증가시키고 가격이 안 좋게 흐르면 비율을 감소시킵니다.

 

  • 변동성 돌파 전략 (Volatility Breakout)

래리 윌리엄스(Larry Wiliams)에 의해 고안된 전략으로 상승하는 트렌드를 변동성을 계산해 해당하는 지점이 넘으면 하루가 끝날 때까지 가지고 있다가 시초가에 매도하는 전략으로 추세 추종형 전략으로 볼 수 있다. 변동성 돌파 전략은 알고리즘 트레이딩에서 가장 유명한 전략으로 추세를 따라가면 수익을 극대화할 수 있다는 사례로 볼 수 있다.

 

 

알고리즘 트레이딩을 위한 기술적 요구사항

알고리즘을 컴퓨터 프로그램을 이용하여 구현하는 것이 바로 최종 관문입니다. 백테스팅과 함께 말이죠. 문제는 확인된 전략을 통합한 계산 과정으로 변환시키는 것이고 다음의 항목이 필요합니다:

  • 요구되는 트레이딩 전략을 프로그래밍하기 위한 컴퓨터 프로그래밍 지식, 고용된 프로그래머 또는 미리 구현된 트레이딩 소프트웨어
  • 네트워크 연결과 주문을 넣기 위한 트레이딩 플랫폼 접근
  • 알고리즘에 의해 모니터링되고 주문 기회를 포착할 시장 데이터 피드에 대한 접근.
  • 실제 시장에 진입하기 전에 필요한 백테스팅 시스템에 대한 능력
  • 구현하는 알고리즘의 복잡도에 따라 백테스팅에 필요한 가격 역사 데이터

하지만 실제 알고리즘 트레이딩은 유지하고 실행하기에 그렇게 간단하진 않습니다. 만약 여러분이 알고리즘에 의해 생성되는 트레이딩을 할 수 있다면, 다른 시장 참여자들도 그렇게 할 수 있다는 것을 기억하세요. 결국, 가격은 밀리 혹은 마이크로 초로 변동할 것입니다. 위의 예에서 매수 주문을 실행했지만 동시에 매도 주문을 하지 못할 경우를 생각해보세요. 아마 오픈 포지션(Open Position)이 되어 차익 전략이 쓸모 없어지겠죠.

더 많은 위험과 과제도 있습니다. 예를 들어 시스템 위험, 네트워크 연결 에러, 트레이딩 주문과 실행에 대한 괴리와 같은 것들이 있고, 가장 중요하게는 불완전한 알고리즘이 있겠죠. 알고리즘이 더 복잡할수록, 실제로 실행되기 전에 더 엄격한 백테스팅이 필요합니다.

요약

알고리즘 트레이딩은 최대한 많은 데이터를 통해 백테스트를 진행하는 것이 매우 중요한 역할을 합니다. 컴퓨터의 도움을 받아 자동화를 시켜 별 노력 없이 돈을 버는 것은 정말 이상적입니다. 하지만 시스템이 심도 있게 테스트되어야 하며 투자에 100%는 없기 때문에 수익이 발생할 수 있는 시스템을 만들어야 하며, 확실하게 올바른 전략을 구현할 수 있는 자신감을 가져야 합니다. 알고리즘 트레이딩은 수익의 기회를 만들어 낼 수 있습니다.