거래 알고리즘에 대한 개략적인 이야기

 | 2019년 01월 12일 12:04

선요약
- 알고리즘 개발전 시장을 이해해보자
- 판단 알고리즘이 많이 쓰이는 데, 개발을 하려면 시장을 진단할 줄 알아야한다.
- 연역법이 효율적일 수 있다.

예전부터 있었고 들어는 보았지만 조금 생소할 수도 익숙할 수도 있는 알고리즘 매매에 대하여 이야기하는 기회를 가져보려 합니다.

□알고리즘 매매?
우선 알고리즘 매매라는 것이 일정 논리구조(알고리즘)를 통해 상품거래가 자동으로 이루어지는 거래 방식입니다. 여기서 중요한 것은 ‘논리구조’와 ‘자동’이라는 단어인데, ‘자동’이 갖는 것은 운용(operating)의 영역이고 글에서는 ‘논리구조’에 조금 더 집중해서 이야기하려 합니다.
알고리즘 매매는 쉽게 매매(trading) + 수학적 공식화(mathematical formulation)로 구성되어 있다 말할 수 있습니다. 간단한 구성이나 수학적 공식화는 운용의 영역이고 결국 매매와 논리구조에 대하여 먼저 이야기를 해야 알고리즘의 종류를 이야기 할 수 있습니다.

앱 다운받기
수백만 명이 사용하는 앱에 합류해 글로벌시장의 최신 소식을 받아보세요.
지금 다운로드합니다

□매매와 알고리즘
매매의 3요소를 간단히 이야기를 하면 마켓 타이밍(market timing), 포지션 사이징(position sizing), 리스크 관리(risk management)가 있습니다. 그리고 매매 전 자산의 분배를 통한 투자 설계가 있습니다. 알고리즘 매매 이야기 중 왜 매매의 구성요소를 말했는가 하지만 이를 알아야 알고리즘의 종류를 구분하고 이해하기가 쉽습니다. 알고리즘은 대부분 ‘자동거래’에 집중을 하지만 가장 효율적으로 쓰이는 곳은 ‘시장의 진단’과 ‘상황의 판단’입니다. 즉, 운전으로 치면 운전대를 잡는 것 보다 어떤 길로 가야 하는지 판단하는 것에서 더 큰 도움을 준다 보면 됩니다.

알고리즘의 종류는 위 자산분배에서 매매의 구성요소를 바탕으로 크게 ‘추격 알고리즘’, ‘판단 알고리즘’, ‘리스크 관리 알고리즘’과 같은 세 개의 카테고리로 구분할 수 있습니다.

추격 알고리즘의 경우 유동성 공급자들이 시장 내부, 시장 사이 스프레드를 조정할 때, 펀드들이 추세 추격하여 차익을 얻으려 할 때, ETF나 ETN이 가격 조정을 할 때 등의 상황에서 사용됩니다.
PS. 개인 분들은 마켓 타이밍에 굉장히 집착하여 설계를 하려거나 거래를 하십니다. 그러나 더 중요한 것은 판단이고 펀드들과 경쟁했을 때, 백 테스트 할 수 있는 데이터의 수준이나 양에서 차이를 못 좁힌다고 미리 말할 수 있습니다.

가장 시장에서 많이 쓰이는 것은 판단 알고리즘으로 유동성의 공급유무를 판단할 때, 전략에 따라 자산을 배치할 때, 시장모델을 평가할 때 등의 상황에서 사용됩니다. 결국 자산배치에 따라 매매가 이루어지는데, 결국 포토폴리오 설계[주식 및 선물시장에서 종목선택]가 먼저고 이에 따른 마켓 타이밍은 조금만 조절하면 되는 요소일 뿐입니다.
PS. 매매 속도는 마이크로 초(sec)단위로 움직일 수 있는 기계를 절대 이길 수 없습니다. 그러나 판단할 상황은 어느정도 시간을 가져야 하기에 판단에서 승부를 보아야 합니다.

리스크 관리 알고리즘, 배팅의 비율(position sizing), 레버리지 카테고리, 금융 리스크과 비금융 리스크, 리스크 균형 조정등에 쓰이는 알고리즘입니다. 실제로 투자은행의 주 업무는 크게 시장 조성(market making)과 리스크 관리입니다. 리스크 관리가 개인 분들이 관리하기 절대적으로 어려운 영역이나 돈의 규모와 상관없는 리스크 관리가 가능한 곳이 투자은행이라 보시면됩니다.

□귀납적? 연역적? [induction - deduction]
조금 뜬금없게 수학시간?에 보았을 법한 용어가 나타났습니다. 알고리즘을 만들 때에도 이 두 방법을 병행해서 사용합니다.

귀납법은 개개의 사실이나 명제에서 일반적 결론을 이끌어내는 추론하는 방법입니다.
연역법은 보편 명제에서 특수 명제를 이끌어내는 추론하는 방법입니다.

시장에 적용하면 귀납적 방법은 데이터를 기반으로 모델을 만드는 것이며 연역적 방법은 모델을 만들고 데이터를 백테스트하며 모델을 수정하는 방법입니다. 그럼 대부분 질문이 “이걸 알아서 어떻게 할 것인데?”인데, 방법론엔 정답이 없다는 것이 제 의견이고 더 효율적인 방법으로 시장에 참여하는 것이 중요합니다.

  • 개인적 의견으로는 연역적 방법이 개인분들에게 적합하다고 봅니다. 그렇게 생각하는 이유로는 귀납적 방법으로 접근했을 때, 1) 데이터량과 데이터 해석에 있어서 투자은행 및 대형 펀드와 정보의 소화 능력 차이가 심하게 납니다. 2) 기관 및 펀드가 귀납적 방법으로 시장에 접근한다 하지만 (수십년 노하우로 수정된 연역적) 시장모델을 가지고 귀납적인 방법으로 대응하는 것과 개인이 시장모델 없이 귀납적 모델을 만드는 것은 극복하기 힘듭니다. 3) 데이터를 해석해도 도전을 하지만 모델의 리스크를 스스로 판단할 수 없는 점이 있습니다.