brunch

You can make anything
by writing

C.S.Lewis

by 김형식 Dec 09. 2019

AI 자산운용 플랫폼(2)

AI 자산운용 플랫폼의 데이터 시스템 구축

이전글: 딥러닝 기반 자산운용 플랫폼의 설계 및 구현


금융데이터 서비스는 백테스팅 목적으로 바로 쓰기에는 오류가 상당히 많고, 이는 S&P Global이나 Refinitive 같은 글로벌 벤더들의 데이터도 예외는 아니다. 글로벌 벤더들의 데이터 역시 그동안 많은 M&A를 통해 데이터를 지속적으로 합쳐왔고, 실제 운용 용도보다는 데이터 서비스가 주목적이기 때문에, 뜯어보면 개별 데이터 값 자체는 정확하더라도 데이터 간의 연계 정보나 변화이력관리가 미비하여 전처리 없이 바로 사용하기에는 부적합한 경우가 대부분이다.


이러한 데이터를 아무 처리없이 사용하게 되면, 보통 백테스팅 결과가 좋아지는 것 처럼 보이는 편향이 발생한다.  그러나 대부분의 경우, 이러한 오류를 모르고 지나치거나 알면서도 데이터 처리에 대한 부담때문에 부정확한 백테스팅에서 만족하고 있는 경우가 많다. (차라리 결과가 나빠진다면 처리를 해서 사용할텐데 좋아지는 쪽으로 편향이 발생하니 그냥 넘어가게 되는 심리적 동인도 있는 듯하다)


이러한 오류는 생각보다 결과에 굉장히 큰 영향을 주고, 특히 데이터를 학습함으로써 의사결정을 하는 AI 시스템에는 치명적이므로 데이터 시스템 단에서 반드시 해결해야 다음 단계로 넘어갈 수 있다. 정확한 백테스팅을 위해서는 최소한(!) 아래의 같은 사항을 반드시 고려하여 데이터 처리를 해주어야 한다.



1. Historical Masking


1) Exchange

국내회사가 코스닥에 상장되어 있다가 유가증권 시장으로 이전상장하는 경우가 있듯이, 미국의 주식도 마찬가지다. OTC에서 거래되어 가격데이터가 나오다가 NYSE로 옮겨가는 경우, 심지어 상장되어 있다가 상장폐지된 후 다시 상장되는 경우 등도 빈번히 발생한다. 이러한 정보를 과거 데이터에 마스킹해주어야, "NYSE 시가총액 상위 100종목에 대한 모멘텀 전략" 등을 정확하게 백테스팅 할 수 있다.


2) Corporate Action

M&A, 기업분할 등의 corporate action에 대한 처리는 항상 골치아픈 문제다. 리얼타임으로 벤더들의 데이터를 구독해보면, 합병시 ISIN 코드는 바뀌었는데 CUSIP 코드는 안바뀌는 경우 등 온갖 문제들이 발생한다. 크래프트의 데이터 시스템에서는 리얼타임 데이터 처리 서버를 별도로 두고 security table 의 메타정보와 타 소스(뉴스, EDGAR 등)을 비교검증하는 로직 등을 통해 이러한 문제를 실시간으로 수정하고 있고, 과거 데이터에 대해서는 자체적으로 완벽하게 corporate action 처리한 데이터베이스를 사용하고 있다. 이 부분은 금융시장이 복잡해지면서 과거에 없었던 창의적인 오류들이 계속 발생하기 때문에, 자동화 로직(룰베이스 + AI)을 계속 업데이트하고, 인간 전문가가 최종 관리를 해줘야 한다.


3) GICS

GICS (인더스트리 분류코드)에 대한 마스킹 처리도 섹터 투자 및 인더스트리 중립 투자전략 등을 정확하게 백테스팅하기 위해 반드시 필요하다.


4) Security Type, 기타 등등

주식 타입의 변화에 대한 마스킹, 기타 등등에 대한 처리도 중요하다.


2. 생존편향 (Survivorship Bias)


의외로 생존편향이 고려되지 않는 경우도 많다. 현재 상장되어 있는 종목으로만 "NYSE 상장종목에 대한 모멘텀 전략" 등의 시나리오를 백테스팅한다면 과거에 상장폐지된 종목들이 누락된다. 현재 상장되어 있는 종목들은 회사가 잘되어서 성장하였기 때문에 계속 상장되어 있는 것이고, 과거에 상장되어 있지만 중간에 상장폐지가 된 종목들은 당시 투자자들에게 큰 손해를 안겨준 종목들이다. 따라서, 이를 제외한다면 백테스팅 결과가 상당히 좋아보이게 나올 수 밖에 없다.


3. 미래참조 (Forward looking Bias)


1) Filing Date (Reporting Date)

파일링 데이트 오류도 처리하기 까다로운 문제  중 하나다. 3분기 GDP 데이터 같은 수치는 보통 3분기가 한참 넘어서 집계되서 발표되지만, 데이터 상으로는 해당 분기 데이터로 기록되어 있는 경우가 상당히 많다.(사실 대부분 그렇게 되어있다) 당연히, 이러한 데이터로 백테스팅을 하면 미리 데이터를 알게 되는 효과가 있어 결과가 매우 잘 나오지만 실전에서 이를 구현할 방법은 없다.  AI 로 학습을 하는 시스템을 구축한다면 더욱 치명적이다. 해당 데이터의 예측력이 좋아보이므로, 해당 데이터에 크게 의존하여 예측하는 식으로 신경망이 학습될 것이기 때문이다.


4. Faster Calculation


마스킹에 따른 계산량은 상당히 많다. 20000개 종목에 대해서 400일 동안 10필드에 대해서만 마스킹 계산을 수행한다 쳐도 8천만개(20000*400*10)의 엘레멘트가 생긴다. (실제로는 이보다 훨씬 많다) 따라서, 계산시간을 줄이기 위해 GPU 가속을 사용한 병렬처리 및 기타 알고리즘을 반드시 적용해야 한다.



좀더 감을 잡기 위해 아래의 예제를 보자.


예제: "NYSE에 상장된 대형주 유니버스에서 모멘텀 전략 백테스팅"


생존편향을 고려한 백테스팅 결과를 위해서는 아래의 작업들이 필요하다.


1) NYSE 티커(종목코드)에 대한 상장/상장폐지 이력 메타데이터 확보

2) 시가총액 데이터를 통한 대형주 유니버스 계산

3) 가격데이터를 통한 대형주 유니버스의  모멘텀 계산

4) 개별종목을 피킹하고, 이를 통해 포트폴리오 구성

5) 백테스팅 결과 도출


마스킹의 효과를 알아보기 위해, 마스킹 전후의 백테스팅 결과를 비교해보면 아래 그림과 같다.

대충봐도, 생존편향만을 제거했을 뿐인데도 백테스팅 결과의 상당한 차이가 있는 것을 확인할 수 있다. 마스킹을 통해 다른 오류들까지 제거하면 결과는 더 나빠진다.


S&P Global의 COMPUSTAT 데이터 기준으로 보면, 정확한 시뮬레이션을 위해서는

GVKEY_IID 코드를 사용해서 유니크한 종목 레벨 코드를 설정

스냅샷 메타데이터 / 펀더멘탈 데이터 / 파일링데이트 데이터 / Historical GICS 데이터를 통해 각 종목, 각 날짜에 대한 마스킹 연산

기타 많은 작업들...

이 필요하다.


크래프트 AI 자산운용 플랫폼의 데이터시스템은 이러한 데이터 처리에 신경쓰지 않고도 정확한 데이터 사용 및 백테스팅이 가능한 API를 갖추고 있다. Qraft Kirin API가 그것이다.


Qraft Kirin API 는 생존편향 등이 완벽히 제거된 데이터를 빠른 속도로 사용하도록 설계된 API로, 몇 줄의 파이썬 코딩를 통해서 매우 쉽게 특정 전략을 코딩하고 정확한 백테스팅 결과를 빠르게 얻을 수 있다.

 

Qraft Kirin API  투자유니버스 설정


Qraft Kirin API 동작화면 (빠르다)


아래 그림은  파마프렌치 모델을 Qraft Kirin API 로 재현한 결과이다. 파마프렌치 모델의 계산식은 모두 공개되어 있고 계산결과도 주기적으로 발표된다. 식과 데이터가 있다면 과거데이터에 대해서는 물론, 리얼타임으로도 계산결과가 발표되기 전에 파마프렌치 모델의 결과를 계산할 수 있다. 그러나, 과거 데이터의 정확도를 확보하지 못해서 과거데이터에 대해 공개된 결과를 정확히 재현할 수 있는 경우는 드물고, 발표되는 결과를 뒤늦게 사용하는 경우가 훨씬 많은 것이 업계의 현실이다.



Qraft Kirin API를 사용하여 몇 줄의 파이썬 코딩만을 통해 계산한 결과를 보면, Corr 기준으로 파마프렌치 SMB 모델은 99%, 파마프렌치 HML 모델은 97% 재현이 가능하다. 이 정도 정확도를 확보한 이후에야, 머신러닝이든 딥러닝이든 사용하여 모델을 개선하는 일이 의미가 생긴다.


아래 영상은 2019년 9월에 크래프트가 여의도에서 진행한 AI 자산운용세미나에서 발표된 Qraft Kirin API 관련 세미나 영상으로, Kirin API 설계에 대한 자세한 내용을 담고 있다.

https://www.youtube.com/watch?v=bsxUPNTSDjA&t=19s


ps. 크래프트테크놀로지스는 성수동 시대를 마감하고 내년 초 여의도 IFC로 이사예정입니다. 여의도 오피스에서는 라이브로 동작하는 AI 자산운용 플랫폼이 설치된 AI 자산운용 관제센터를 퍼블릭 오픈할 계획이오니, 많이 구경와주시면 감사하겠습니다.


새 오피스에는 AI가 예측하는 최적 자산배분,  팩터 및 기타 예측치 등을 보여주는 오픈 관제센터를  만들 예정입니다.


다음글: AI 자산운용 플랫폼의 AI 실험환경 및 관리

작가의 이전글 AI 자산운용 플랫폼(1)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari