트레이딩 솔루션
실시간 거래 데이터를 분석해 자동 매매를 수행하는 AI 기반 트레이딩 시스템

사례 요약
고객사
DWK Partners (자사 솔루션)
분야
퀀트 리서치, 시장 데이터 파이프라인
기간
개발 진행 중
고민
전략 검증보다 데이터를 갖추고 최신 상태로 유지하는 데 시간이 더 들었습니다
활용 기능
자동 수집, 형식 정규화, 데이터 신선도 점검, 선언형 전략 검증, 리포트 생성
성과
수집과 검증을 하나의 체계로 통합, 데이터 준비 시간을 줄여 전략 검증에 집중할 환경 확보
1. 서비스 소개
AI 트레이딩 솔루션은 당사가 개발 중인 퀀트 리서치 시스템입니다.
- 구성: 시장 데이터 수집 계층 + 전략 백테스트 계층
- 전략 기술 방식: 코드가 아닌 선언 파일로 조건을 기술
- 현재 단계: 개발 진행 중이며 수집 대상과 검증 방식을 확장하는 중
2. 도입 배경
퀀트 전략을 만들 때 시간이 가장 많이 드는 일은 전략을 떠올리는 것이 아니라 데이터를 갖추는 것입니다. 공시와 시세, 뉴스, 거시지표를 각각 다른 곳에서 받아와야 하고, 출처마다 형식과 갱신 주기가 다릅니다. 결측치를 메우고 종목 코드를 맞추다 보면 정작 전략을 검증할 시간이 줄어듭니다.
모으는 것보다 유지하는 것이 어렵다
더 어려운 부분은 데이터를 한 번 모으는 것이 아니라 계속 최신 상태로 유지하는 것입니다. 수집 스크립트를 사람이 직접 돌리는 방식으로는 며칠만 지나도 데이터가 어긋납니다. 더 나쁜 경우는 수집이 조용히 실패해서, 오래된 데이터로 검증하고 그 결과를 믿는 상황입니다.
전략 검증에도 같은 문제가 있습니다. 전략을 코드로 직접 구현하면 조건 하나를 바꿀 때마다 코드를 고쳐야 하고, 어떤 버전이 어떤 결과를 냈는지 추적하기 어려워집니다.
수집과 검증을 나누기
당사 자체 솔루션인 AI 트레이딩 솔루션은 이 문제를 데이터 수집과 전략 검증으로 나눠 접근합니다. 현재 개발이 진행 중이며, 구성과 검증 방식은 계속 조정하고 있습니다.
한 줄 요약 가장 위험한 것은 틀린 데이터가 아니라 틀린 줄 모르는 데이터입니다.
3. 활용 기능
시스템은 수집 계층과 백테스트 계층으로 나뉩니다. 두 계층은 같은 저장소 안에 있지만 실행 환경을 분리했습니다. 수집은 여러 외부 API를 다루고 백테스트는 수치 연산 라이브러리에 의존하기 때문에, 의존성이 섞이면 양쪽 모두 불안정해집니다.
수집 계층은 시장 데이터를 정해진 주기로 가져와 정규화합니다. 수집 단위를 등록해 두고 이름으로 호출하는 구조라, 새 데이터 출처가 추가돼도 실행 방식은 바뀌지 않습니다.
백테스트 계층은 전략을 선언 구조로 받아 실행합니다. 진입과 청산 조건을 파일에 기술하면 엔진이 해석해 검증하고 결과를 리포트로 만듭니다. 전략 파일 자체가 버전 관리 대상이므로, 어떤 조건에서 어떤 결과가 나왔는지 파일 단위로 추적됩니다.
주요 기능
자동 수집
수집은 사람이 시작하지 않고 예약된 일정에 따라 실행됩니다. 데이터 종류별로 주기를 다르게 두어, 매일 갱신되는 데이터와 분기마다 나오는 데이터를 같은 빈도로 돌리지 않습니다.
형식 정규화
출처마다 다른 형식을 수집 단계에서 통일합니다. 이후 분석 계층은 어느 출처에서 온 데이터인지와 무관하게 같은 방식으로 다룹니다.
데이터 신선도 점검
특정 데이터가 갱신되지 않고 멈춰 있는 상태를 확인하는 절차를 따로 두었습니다. 수집 자동화에서 가장 위험한 실패는 에러가 아니라 조용한 중단입니다.
선언형 전략 검증
전략을 코드가 아니라 선언 구조로 기술합니다. 같은 전략에서 조건만 바꿔 반복 검증하기 쉽고, 검증 이력이 파일로 남습니다.
리포트 생성
검증 결과는 숫자 목록이 아니라 리포트 형태로 제공합니다. 수익 곡선과 구간별 성과를 함께 보여 주어 전략의 성격을 판단할 수 있습니다.
4. 성과
데이터 수집과 전략 검증을 하나의 체계 안에서 다루는 구조를 갖췄습니다. 데이터 준비에 들던 시간을 줄여 전략 검증에 집중할 수 있는 환경을 만드는 것이 목표입니다.
전략을 선언형으로 기술하고 실행은 별도 계층이 담당하는 구조라, 전략의 가독성과 검증 속도를 함께 확보했습니다. 조건을 바꿔 가며 반복 검증하는 작업이 빨라지면 검토할 수 있는 전략의 수 자체가 늘어납니다.
수집 계층과 백테스트 계층을 분리한 덕분에 각각을 독립적으로 개선할 수 있습니다. 새 데이터 출처는 수집 단위 추가로, 새 전략은 선언 파일 추가로 처리됩니다.
현재 개발이 진행 중이며, 수집 대상과 검증 방식을 계속 넓히고 있습니다.
5. 기술 구성
Language / Runtime — 파이썬을 기본 언어로 사용합니다. 계산 집약 구간은 Rust로 구현해 파이썬에서 호출하는 방식으로, 선언은 읽기 쉽게 유지하면서 실행 속도를 확보했습니다.
구조 분리 — 수집 계층과 백테스트 계층의 실행 환경을 나눴습니다. 한쪽의 라이브러리 버전 변경이 다른 쪽을 깨뜨리지 않도록 하기 위해서입니다.
기술 선택의 기준 — 이 시스템에서 가장 위험한 것은 틀린 데이터가 아니라 틀린 줄 모르는 데이터입니다. 구조를 정할 때 기준도 "문제가 드러나는가"였습니다. 수집 진입점을 하나로 모으고 신선도 점검을 별도로 둔 것, 전략을 선언 파일로 분리해 결과와 일대일로 대응시킨 것 모두 여기서 나온 결정입니다.
6. 프로젝트 정보
| 항목 | 내용 |
|---|---|
| 사업명 | AI 트레이딩 솔루션 개발 |
| 담당 범위 | 데이터 파이프라인, 백테스트 엔진 개발 |
| 적용 기술 | Python, Rust, 선언형 전략 정의, 자동화 스케줄 |
비슷한 프로젝트를 준비 중이신가요?
요구사항과 일정만 알려주시면 적합한 구성과 예상 범위를 정리해 드립니다.
댓글 0
첫 번째 댓글을 남겨보세요.