안녕하세요.
지난 시간에 차트데이터를 보고
차트 패턴의 유형을 분류하고 분석할 수 있는 DTCR 논문에 대한 리뷰를 살펴보았습니다.
지난 post를 읽지 못하신 분들을 위해서 DTCR 모델에 대한 설명,
그리고 이 모델을 어떻게 트레이더들에게 활용될 수 있는지 간단히 설명드리고
제가 직접 시계열데이터를 수집, 학습하고 시계열데이터를 잘 분석하는지
어떤 서비스로 트레이더분들에게 제공될 수 있는지 공유드리려고 합니다.
DTCR
DTCR 논문은 Representation Learning + Clustering을 통한 구조를 가지고 있습니다.
Representation을 통해서 우리가 분석하고자 하는 데이터를 다른 차원으로 변환해보고
변환된 데이터를 원복하는 과정을 거치면서 데이터에 대해 중요한 특성들을 골라내는 작업을 수행합니다.
좋은 성과를 내는 트레이더들이 좋은 차트분석 시각을 가지는 것처럼
AI에게 차트에서 분석을 시키기 위한 첫 단계로
주어진 차트데이터에서 의미 있는 특성들을 뽑아내도록 훈련시키는 것입니다.
그리고 좋은 추출로 찾아낸 특성들을 특성공간 내에 흩뿌려보고
같은 군집을 이루는 차트 패턴들에 대해 같은 클래스로 구분될 수 있도록
비지도 Clustering 학습을 진행하도록 합니다.
지금 보고 있는 차트데이터가 어떤 군집에 속하는지 알게 된다면
다음 패턴이 통계적으로 어떤 패턴들이 나오는지,
그런 패턴들이 상승하고 하락할 확률은 어떻게 되는지 "대응" 가능하게 됩니다.
Data 구조 설정
여러 데이터들이 있겠지만
트레이딩에서 가장 중요한 것은 가격이라고 생각합니다.
그리고 차트에서 얻을 수 있는 거래량 데이터들도 활용해서 24개의 특성데이터를 만들고
24시간 데이터를 하나의 데이터로 만들었습니다.
그러면 (24 x 24) 형태의 데이터가 생기게 됩니다.
마치 한 장의 이미지를 보는 것 같습니다.
실제로 많은 시계열 데이터 처리 모델들도 이미지 처리에 특화되어 있는 CNN 모델을 이용해서
데이터 전역적인 특성들을 잘 캐치해 내도록 되어있습니다.
저도 시계열데이터를 한 판의 이미지를 떠 봤을 때 특징들을 잘 추출해 낼 수 있도록
Representation Learning을 위한 Autoencoder를 CNN 기반의 모델들로 구성했습니다.
위의 그림처럼 한 장의 이미지를 Conv 레이어들로 특징들을 잡아낼 수 있도록 데이터를 처리하고
Encoding으로 3차원 Vector를 만들어내도록 했습니다.
차원의 수는 모델을 설계하기 나름이지만
우리가 이해할 수 있는 3차원 상의 Vector로 만들어서
특성공간 내에 어떤 분포, 군집을 이룰 수 있는지 확인하도록 했습니다.
과연 인공지능이 차트데이터를 보고 판단해서
의미 있다고 생각한 특성들을 기반으로 클러스터링 모델을 학습했을 때,
그 군집들이 원본 차트에서도
인간이 판단했을 때 유사한 패턴의 모양을 띄는지 확인해 보면 됩니다.
Clsuter 분류 모델의 성과
아래는 4년간의 암호화폐 1시간 간격의 데이터들을 수집하고
가격, 거래량등 차트에서 쉽게 얻을 수 있는 특성들을 가공해서 학습시킨 모델에 차트데이터를 입력으로 넣어주고
각 클러스터별 샘플을 몇 개씩만 추출한 것을 나타낸 결과입니다.
같은 행이 같은 클러스터들의 집합을 표현하도록 출력했습니다.
아주 의미 없는 결과들이라고 생각이 들진 않습니다.
같은 클러스터들끼리 유사한 파동을 보이거나 비슷해 보이는 양상을 띠고 있습니다.
물론 아직 전혀 다른 패턴의 차트들이 존재하긴 하지만
이런 것들은 특성가공이나 모델 구조 개선등을 통해 개선의 여지가 있다고 생각이 듭니다.
활용
이제 우리는 해당 암호화폐가 띄는 차트 패턴에 종류를 학습했으니
현재 보이는 차트패턴을 보고 다음 차트패턴을 미리 예측해 볼 수 있습니다.
AI라는 게 말은 대단해 보이지만 작은 단위로 보면 결국엔 통계에 기반한 함수들입니다.
특히 확률론적으로 작용하는 트레이딩영역에서는 더욱 그렇습니다.
결국 확률적으로 조금이라도 높은 경우의 수를 선택할 수 있는 도구를 우리는 AI라고 부르고 있는 것입니다.
제가 트레이딩 데이터를 연구하면서 훈련시킨 AI들을 여러분들에게 공개하기 위한 무대
블로그와 유튜브로도 가능하지만 실시간으로 AI가 제공하는 데이터를 보여드리기 위해선
다른 서비스로서 제공이 필요합니다.
제가 구상한 방안은 Next.js + Tensorflow.js 조합으로
웹서비스를 출시하고 트레이딩에 활용할 수 있는 AI가 분석한 데이터들을 제공하고자 합니다.
Next.js는 React 기반의 오픈소스 웹 개발 프레임워크입니다.
Javascript와 Node.js 기반으로 하며, 웹사이트와 웹 애플리케이션을 구축하기 위한 풍부한 기능과 최적화된 개발 경험을 제공합니다.
Next.js는 Vercel이라는 회사에 의해 만들어졌으며,
서버사이드 렌더링(SSR), 정적 사이트 생성(SSG), 그리고 클라이언트 사이드 렌더링(CSR)을 포함한 다양한 렌더링 방식을 지원합니다.
Tensorflow.js는 구글이 개발한 오픈소스 머신러닝 라이브러리인
Tensorflow의 JavaScript 버전입니다.
웹 브라우저나 Node.js 환경에서 머신러닝 모델을 훈련하고 실행할 수 있게 해주는데
이를 통해 웹 개발자들은 복잡한 머신러닝 모델을 직접 웹 사이트나 애플리케이션에 통합할 수 있게 됩니다.
AI업계에서 Tensorflow vs Pytorch 라이브러리 경쟁이 있었고
학술지, 컨퍼런스 레벨에서 Pytorch를 거의 표준으로 삼는 시기에
제가 Tensorflow를 택한 이유는
AI를 상용환경의 서비스에 직접 응용시키거나 활용하기 위한 도구들을 더 다양하게 제공하기 때문입니다.
논문들이 대부분 Pytorch로 구현되어 있어서 변환하는게 조금 번거롭긴 합니다.
위 차트는 가격 데이터를 입력받고,
해당 가격 데이터들을 벡터로 변환하고 클러스터 모델을 통해 분류했을 때
확률이 높은 차트패턴이 어떤 것들이 있는지
실제 서비스 컴포넌트 차트는 아니지만 프로토타입으로 만들어본 차트입니다.
오늘은 간단한 비지도학습을 통한 시계열데이터 분석을 다루고 있지만
앞으로 많은 세월이 흐르는 동안 꾸준히 연구한 것들을 적용하고
서비스를 발전시키다 보면 많은 시장참여자들이 저의 AI가 분석한 데이터들을 보고
투자에 도움이 될 수 있기를 희망하고 있습니다.
가격을 예측하는 것은 신의 영역이지만
가격을 만드는 건 신이 아닌 시장참여자들입니다.
시장참여자들은 개인투자자던 기관이나 프로그램이건
결국 사람들이고
사람 개인, 군중의 심리로 만들어진 가격이란 데이터
그리고 그런것들에 직/간접적 영향을 줄 수 있는 거시적인 경제적 이벤트들을 이해하고 분석하다 보면
통계적으로 균형 있고 견고한 데이터 분석을 제공하는 AI를 만들 수 있을 것이고
예측보다는 대응을 위한
수단과 방법들을 만들어나가는데 좋은 도움이 될 것이라 생각합니다.
제가 만든 AI들을 여러분들에게 제공하기 위해 노력하고 있고
나는 이 시장에서 어떤 역할을 하고 어떤 가치를 줄 수 있는지 여러 고민을 하고 있습니다.
확실한 건 이렇게 시장에 참여하고 있을 때 저는 즐겁고 행복한 것 같습니다.
저와 기술적 교류나 소통을 원하시는 분들 비즈니스 메일로 연락 주시고
월간 수익, 그리고 다른 AI Paper, 알고리즘 전략들을 주제로 또 찾아뵙겠습니다.
감사합니다.
'Data & AI' 카테고리의 다른 글
[JeTech Lab] 1. 소개 (3) | 2024.02.16 |
---|---|
월간 알고리즘 투자전략 수익 공개 (2024년 1월) (1) | 2024.02.02 |
12월 자동 알고리즘 트레이딩 수익 공개 (8) | 2024.01.04 |
트레이더들을 위한 시계열데이터 처리, Learning Representations for Time Series Clustering (1) | 2023.12.18 |
11월 수익 공개, 시장 데이터 리뷰 (1) | 2023.12.01 |