나 대신 주식 매매하는 AI 군단(Alpha Squad) 만들기

2026. 1. 1. 00:58일상

 

DAY 1

주식 매매하는 AI 군단(Alpha Squad)


프롤로그: 왜 우리는 모니터 앞에서 늙어야 하는가

 

2026년이 찾아왔습니다.

그래서 올해는 다를꺼야!! 라며 시작한게 있습니다. 그 내용을 공유할까 합니다.

 

직장인 투자자에게 '단타(Day Trading)'는 금단의 영역입니다.

상사는 업무를 지시하고, 회의는 끊이지 않는데, 주식 시장은 나를 기다려주지 않습니다.

특히 밤새 열리는 미국 시장(Nasdaq)을 보려면 잠을 포기해야 합니다.

 

미국장 하는 아저씨
미국장 하는 아저씨
 
"내가 일할 때 나 대신 차트를 보고, 내가 잘 때 나 대신 매매하는

'지능형 에이전트'가 있다면?"

나름 개발자인 나인데 말이야..

 

그런데, 단순한 매수 봇을 만들고 싶지는 않았습니다.

뉴스를 읽고(News Reader), 차트를 분석하며(Analyst), 리스크를 계산하고(Risk Manager), 서로 토론하여 의사결정을 내리는(Leader) 그런 팀을 만들고 싶었습니다.

 

아무래도 저의 업무가 개발영역이다보니 AI 를 접할 일이 많았고 -나도 모르는 사이- 이미 저의 삶에 깊게 관여하고 있었습니다.

 

그래서 시작했습니다.

코드명 Azrael Project입니다.

Azreal 은 제가 게임에서 주로 사용하는 케릭터명이기도 합니다. ^^

 

 

 

 


프로젝트 준비 (Setup & Configuration)

 

 

이 프로젝트는 Python 기반이며,

LLM(Google Gemini)의 추론 능력과 한국투자증권(KIS)의 Open API 로 설계를 했습니다.

 


디렉토리 구조는 깔끔한 monorepo 형태로 구성하고자 했습니다.

사실 실제는 아래보다 더 많은 구성이 되어 있지만 아래가 핵심입니다.

Azrael/
├── config/                 # 설정 파일 (API Key, 페르소나 정의)
│   ├── config.yaml         # KIS API 및 Gemini Key
│   └── personas.yaml       # 전담분야별 전문가들의 성격 및 역할 정의
├── common/                 # 공통 유틸리티 (로거, Gemini 클라이언트)
├── trading_system/         # 핵심 트레이딩 엔진
│   ├── agents/             # 투자팀 고유 영역별 판단 시스템 (Leader, Screener, Sniper...)
│   ├── broker_api/         # 증권사 연동 Agent (KIS Agent)
│   └── core/               # 가상 장부(PaperTrader), 리포터
├── main.py                 # 실행 진입점 (CLI)
└── requirements.txt        # 의존성 패키지
 

핵심 설정 파일은 보안이 생명이므로 ..!!

kis_api:
  app_key: "YOUR_KIS_APP_KEY"
  base_url: "https://openapi.koreainvestment.com:9443" # 실전투자용, 모의투자는 주소 다름
  is_simulation: false  # 실전/모의 투자 선택

google_api_key: "YOUR_GEMINI_API_KEY"

common:
  timezone: "Asia/Seoul"
 

 

가상 환경은 python 을 이용하여 venv 로 했고 아래와 같은 lib 들을 사용했습니다

pandas
numpy
pyyaml
yfinance
requests
google-generativeai
matplotlib
mplfinance
 

 


시스템 아키텍처: "The Alpha Squad"

그래서 최종 시스템 아키텍처는 대략 아래와 같습니다.

 

 

 

처음에는 단일 LLM 으로 구성해서 테스트 코드를 돌려봤습니다.

동일한 종목으로 시도했고, 결과는 매번 새로웠(?) 습니다..

 

AI 의 할루시네이션
AI 의 할루시네이션

.

.

.

 

넌 대체 왜그러니? 너 똑똑하다며! 이래서 믿고 투자를 맡기겠어!?

이제는 공공연하게도 아시는 것 처럼 모든 AI는 환각(Hallucination)이 발생합니다.

fator 수치가 AI 마다 있어서 질문할때마다 여러 후보군 중 하나를 선택하는 알고리즘과

이를 조절하는 하이퍼파라미터라 하는 설정값 때문입니다.

즉, 한놈에게 시키면 계속 변덕을 부리거나 두루뭉술한 답변만 내놓습니다.

그래서 대안을 마련해야 했고, 저는 단일 LLM이 아닌 팀으로 하면 되겠네? 였습니다.

마치 어벤져스 어셈블 처럼요!!

 

AI 투자팀 어셈블~!!
AI 투자팀 어셈블~!!

짜짠~!!!

 

Azrael 프로젝트는 그렇게 역할을 쪼개어 **9명의 전문가 팀(Alpha Squad)**을 구성했고,

추가로 나중에 한명이 더 추가됐습니다. ^_^

 

 

알파스쿼드의 주요 페르소나를 몇 소개해 드릴께요.

 

이들은 `config/personas.yaml`에 정의되어 있으며,

각자 다른 AI Temperature(창의성 지수)를 가집니다.

 

1. 🕵️ News Scout (뉴스 정찰병)

* 임무: 장 시작 전 Google Search를 통해 시장 분위기(Sentiment)를 파악합니다.

* Instruction: "Fed 금리 결정, 전쟁 이슈 등 거시적 악재를 찾아라."

 

2. 🛡️ Gatekeeper (문지기 / Ticker Screener)

* 성격: 냉소적, 보수적 (Temp: 0.0)

* 임무: 거래량 부족, 동전주, 관리종목 등 '위험한 놈'들을 입구컷합니다.

* 대사: "이 종목은 거래량이 너무 적어. 탈락."

 

3. 🎯 Sniper (저격수 / Trade Planner)

* 성격: 침착함, 정밀함 (Temp: 0.1)

* 임무: 살아남은 종목의 차트를 현미경처럼 분석하여 '진입가', '손절가', '목표가'를 1원 단위로 제시합니다.

* 대사: "187.50불에 지정가 매수. 추격 매수는 금지한다."

 

4. 👑 Leader (CIO)

* 임무: 이들의 보고를 취합하여 자금을 배분하고, 최종 매수 버튼을 누릅니다.

 

 


Workflow: Azreal 의 하루

AI 투자팀 어셈블~!!
AI 투자팀 어셈블~!!

Azrael은 다음과 같은 흐름으로 하루를 보냅니다.

1.  **09:00 (Start Day):**
    *   Leader 기상.
    *   News Scout가 "오늘 기술주 분위기 안 좋음" 보고.
    *   Kis Agent가 관심 종목(NVDA, MSFT 등) 데이터 수집.
2.  **09:05 (Analysis):**
    *   Gatekeeper가 거래량 부족 종목 필터링.
    *   Sniper가 남은 종목의 매수 타점 계산.
    *   Leader가 가상 장부(Paper Ledger)에 매수 기록.
3.  **09:10 ~ 15:20 (Monitoring):**
    *   **Watcher Mode** 진입. 1분마다 시세 확인.
    *   목표가 도달 시 익절, 손절가 이탈 시 손절.
4.  **15:20 (EOD Judgement):**
    *   장 종료 10분 전, 아직 안 팔린 종목에 대해 **"종가 심판"** 진행.
    *   Leader가 Gemini에게 묻습니다. **"지금 수익률 0%인데 뉴스도 없어. 가져갈까(HOLD) 팔까(SELL)?"**
    *   AI 판단에 따라 오버나잇(Swing) 하거나 전량 매도(Day Trading) 처리.
 

물론, 오버나잇 전략이나 매도 전략은 미리 개별 페르소나들의 구현에 정의되어 있습니다.

초기 전략이라 구멍이 많을 수 밖에 없을 거라고 생각합니다.

그래서, 매일 기록을 쌓아가면서 수정계획을 갖고 있습니다.

 

 

 


시뮬레이션 결과 (Simulation Log)

 

개발하면서 시뮬레이션 결과는 엣지 케이스가 생각보다 많아서 멀구나..였습니다.

아래는 구현된 프로젝트에서 남긴 log 의 일부이고

시험 대상은 2025년 12월 31일 프리마켓이였습니다.

 

[Gatekeeper Report]

NVDA: 거래량이 평소보다 적지만(193만 주), 시총을 고려할 때 통과(Pass). MSFT: 거래량 극히 저조. 탈락(Fail).

출처 입력

[Sniper Report]

NVDA 분석: 상승 추세이나 볼린저 밴드 상단 터치. 눌림목 매수 유효. 진입가: $187.26 목표가: $193.98 손절가: $181.30

출처 입력

[Execution]

[PaperTrade] Signal Detected: Buy NVDA @ 187.26 [PaperTrade] BOUGHT NVDA : 5 shares @ 187.26 (TP: 193.98, SL: 181.3)

 

[PaperTrade] BOUGHT NVDA : 5 shares @ 187.26 (TP: 193.98, SL: 181.3)
 

보시는 것 처럼, 장초반에 당연히 적을 수 밖에 없는 거래량을 생각하지 못했습니다.

Gatekeeper 는 정확한 판단으로 탈락시켰지만 이러면 살 종목이 ....

그래서 최근 거래일의 거래량 정보를 반영하도록 수정도 하고

..

또 다른 문제가 계속 생겼습니다. 하지만!! 시작이 반이라 했죠.

이제 시작일 뿐입니다.

 

 

존버는 승리한다. (응??) 계속 지켜보고 고치다 보면 잘 되겠죠? 훗

- 내 마음 中

 

단순하게 실행은 dry-run 과 live 모드로 구분을 했습니다.

당분간은 paper 모드로 시도해보면서 결과를 축적할 생각입니다.

 

 


마치며

 

처음엔 "파이썬으로 주식이나 사볼까?"로 시작했지만, 결과물은 나만의 투자 철학을 대변하는 AI 팀이 되었습니다.

 

이 시스템의 가장 큰 장점(사람의 가장 큰 단점이죠.)은 **"뇌동매매를 하지 않는다"**는 것입니다. 

AI는 감정에 휘둘리지 않고, 정해진 원칙(Persona)대로만 움직입니다.

 

2026년, Azrael 과 함께 시장을 이겨보겠습니다.

 

다들 2026년 새해 복 많이 받으세요!!

 

반응형
LIST