본문 바로가기
AI

# 혼자 만드는 한국 주식 퀀트봇 - 프로젝트 구조 (260727 업데이트)

by 라베덕 2026. 7. 6.

혼자 만드는 한국 주식 퀀트봇 - 프로젝트 구조 (업데이트)

집에 있는 데스크탑 한 대로 돌아가는 개인 퀀트 트레이딩 시스템입니다. 서버는 따로 없고, CPU(Ryzen 7 7700)와 GPU 두 장(RTX 4070 Ti SUPER 16GB, 층별로 나눠 씀)으로 전부 처리합니다.

처음 이 글을 쓴 뒤로 많이 바뀌어서, 전체 그림만 짧게 다시 정리했습니다. 각 부분의 자세한 이야기는 링크해둔 별도 글로 옮겨뒀습니다.

세 개의 축

이 프로젝트는 성격이 다른 세 부분으로 나뉘어 있습니다.

  1. 트레이딩봇 — 실계좌에 연결된, 실제로 돈이 오가는 부분. 목표 비중 대비 가격이 일정 밴드 이상 벗어나면 텔레그램으로 매매를 제안하고, 승인하면 그대로 주문을 넣습니다.
  2. 완전자동 검증 트랙 — 트레이딩봇과는 별개로, 사람 승인 없이 AI 판단만으로 계속 매매하는 트랙을 모의투자 계좌에서 검증하고 있습니다.
  3. AI 추천 파이프라인 — 여러 모델로 종목을 분석해서 참고용 리포트를 보내는 부분. 실제 자금으로는 자동매매를 시키지 않고, 추천이 맞았는지 계속 기록만 하고 있습니다.

실전 자금이 걸린 로직과, 자금 없이 완전자동을 검증하는 로직과, 아직 참고용인 실험적 로직을 같은 신뢰도로 취급하고 싶지 않아서 나눠뒀습니다.

구조도

사용자 (텔레그램)
│
├─ 트레이딩봇 (실계좌, 승인 기반 자동투자)
│   ├─ 증권사 Open API 연동
│   ├─ 가격밴드 감시 + AI 신호강도 기반 자동투자
│   ├─ 오래 안 체결된 주문 자동취소 안전장치
│   └─ 공개 공시 기반 위험종목 감시 오버레이 (관찰 단계)
│
├─ 완전자동 검증 트랙 (모의계좌, 승인 없이 상시 자동매매)
│   └─ AI 추천 파이프라인의 판단을 가짜 돈으로 계속 실행하며 검증
│
└─ AI 추천 파이프라인 (참고용, 자동매매 X)
    │
    ├─ 랭킹 엔진 (장중 2시간 주기 + 매일 밤 딥리서치)
    │   ├─ 계량 담당(LightGBM)      — 가격·거래량 등 정형 데이터의 통계적 패턴
    │   ├─ 흐름 담당(Transformer)   — 시간에 따른 추세·국면 전환
    │   ├─ 리서치 담당(TradingAgents) — 멀티에이전트 LLM, 뉴스·공시·펀더멘털을 사람처럼 읽고 리포트 작성
    │   └─ 위 세 "담당"의 순위를 합의로 묶는 결합 엔진 (아래 설명 참고)
    │
    ├─ 실시간 감시 (5분 주기)
    │   └─ 급등락/공시 긴급 알림 + 전체 종목 대상 이상 급변동 스캔
    │
    └─ 리포트 생성
        ├─ 정기 모델 리포트 (내부용/공유용 분리 + 데이터 신선도 표시)
        └─ 성과 트래커 — 추천과 실제 수익률을 매칭해서 계속 기록

(핵심 프로세스들은 전부 OS 서비스로 등록돼 있어, 개발 환경을 끄거나 그게 죽어도 계속 돌아갑니다)

컴포넌트별 간단 설명

트레이딩봇

목표 포트폴리오 비중을 정해두고, 실제 비중이 일정 밴드 이상 벗어나면 텔레그램으로 알림이 옵니다. 승인하면 그대로 주문이 나갑니다.

최근 이 부분에 변화가 좀 있었습니다. 밴드를 상시로 확인하던 폴링은 너무 잦아서 껐고, 증권사를 옮기는 작업과 맞물려 예전 증권사 쪽 정기 리밸런싱은 지금 통째로 잠가뒀습니다. 대신 새 증권사 쪽 경로로, 정상 주문·거부 처리·애매하게 실패했을 때 되돌아오는 경로·부분체결·결제까지 실거래에서 꼭 짚어야 할 상황들을 하나씩 실제 돈으로 확인하는 점검을 마쳤습니다. 이 안전장치 설계는 따로 글로 정리(새 창)했습니다.

최근엔 안전장치를 하나 더 얹었습니다. 공시처럼 공개된 사실 정보를 기준으로 감사의견이나 관리종목 지정 같은 위험 신호가 있는 종목을 자동으로 감지해서 알림을 보내고 리포트에 표시해두는 감시 장치입니다. 아직은 관찰만 하는 단계라 자동으로 매매를 막지는 않고, 판단 근거를 충분히 쌓은 뒤에 실제로 걸러낼지를 정할 계획입니다.

한 번 시도했다가 접은 것도 있습니다. 배분 방식을 확장하는 아이디어를 페이퍼(모의) 장부로 테스트해봤는데, 이 계좌 규모로는 판단 자체가 안 된다는 결론이 나서 시작한 날 바로 접었습니다.

완전자동 검증 트랙

트레이딩봇과는 별개로, 사람 승인 없이 AI 판단만으로 계속 매매하는 트랙도 모의투자 계좌에서 돌리고 있습니다. 실제 손실 위험 없이, 이 판단을 언젠가 진짜 돈에도 완전히 맡길 수 있는지 확인하는 게 목표입니다.

이 트랙을 돌리다가, 현금 상당 비중이 계속 매수되지 않고 남아있는 문제를 발견했습니다. 한도를 살짝 넘는 매수 제안이 있으면 통째로 포기해버리던 계산 방식이 원인이었는데, 한도 자체는 그대로 두고 "넘으면 거부" 대신 "한도만큼만 사자"로 바꿔서 해결했습니다.

자세한 이야기는 따로 글로 정리(새 창)했습니다.

AI 앙상블 — 합의를 만드는 이야기

이 파이프라인의 핵심은 개별 모델이 아니라, 서로 다른 시각을 가진 세 담당(계량/흐름/리서치)의 판단을 순위표로 모아 합의를 만드는 방식에 있습니다. 점수가 아니라 순위로만 합치는 이유, 그리고 이 방식을 일부러 단순하게 유지하는 철학까지, 이야기하듯 따로 글로 정리(새 창)했습니다.

안정적으로 돌아가게 만들기

하나의 스크립트가 다 하던 구조를 프로세스별로 나누고 운영체제 서비스로 등록한 이야기, 리포트를 내부용/공유용으로 나눈 이야기, 추천 성과와 체결 손실을 따로 재는 이야기는 따로 글로 정리(새 창)했습니다.

곁가지: 데이터 아카이브

과거 종목 뉴스를 따로 모아두는 아카이빙에서 시작한 사이드 프로젝트가, 지금은 종목 토론 게시판 심리·장중 분 단위 가격·투자자별 매매 동향·호가창 데이터까지 함께 모으는 우산 프로젝트로 늘었습니다.

최근엔 시장에 영향을 줄 수 있는 인물의 공개 발언을 모으는 스트림도 하나 추가했습니다. 다만 이건 매매 신호로 쓰려는 게 아니라, "이 발언이 실제로 가격 움직임보다 먼저 왔는가"를 나중에 검증하기 위한 순수 관찰·기록용입니다.

전부 "지금 안 모으면 나중엔 아예 구할 수 없는" 소멸성 데이터라는 공통점 때문입니다. 아직은 대부분 수집만 해두는 단계이고, 자세한 이야기는 별도 글(새 창)로 다뤘습니다.

곁가지: 네트워크 감시병

예전에 집 와이파이가 반나절 넘게 반쪽짜리 상태로 방치된 사고가 있었습니다. 이걸 계기로 네트워크 이상을 사람 대신 알아채고 스스로 복구까지 시도하는 감시 프로그램을 만들었는데, 본체와는 코드도 실행 환경도 완전히 분리해뒀습니다.

지금은 관측을 넘어 자동 복구까지 무장을 마쳤지만, 다행히 그 정도로 심각한 장애가 다시 나지는 않아서 아직 실전에서 발동한 적은 없습니다. 자세한 이야기는 별도 글(새 창)로 다뤘습니다.

곁가지: 백업

핵심 로직과는 별개로, 기반 시설에서 위험한 구멍을 하나 발견했습니다. 그동안 쌓아온 코드와 데이터가 전부 백업 없이 디스크 한 곳에만 있었던 겁니다. 데이터 자체가 사라지면 그 위에 쌓은 모든 판단도 같이 무의미해지는 문제라 손을 봤습니다.

지금은 코드와 설정은 버전관리로 남기고, 다시 구할 수 없는 데이터는 매일 자동으로 별도 디스크에 백업해두고 있습니다. "백업이 실패했다"뿐 아니라 "백업이 아예 조용히 멈췄다"까지 알아채는 감시도 따로 붙였습니다. 같은 디스크가 통째로 못 쓰게 되는 최악의 상황에 대비해서, 암호화한 사본을 클라우드에도 하나 더 올려두고 있습니다.

자세한 이야기는 오늘 작업일지(새 창)를 참고해주세요.

마무리

지금은 트레이딩봇의 실거래 범위를 아주 작은 규모부터 조심스럽게 넓혀가고 있고, 같은 판단을 모의계좌에서 완전자동으로도 검증하는 중입니다. AI 추천 파이프라인 자체는 여전히 참고용입니다.

앞으로 업데이트가 있으면 가끔 이 블로그에 남길 예정입니다.