AI 자동매매 실험
1,000만 원 수준 실계좌 기반 AI 협업 자동매매 운영 실험
이 프로젝트는 투자 권유나 수익 보장을 목적으로 하지 않습니다. AI와 함께 자동매매 시스템을 설계하고 운영하면서 얻은 개발·검증·리스크 관리 기록을 정리한 실험입니다. 모든 투자 판단과 책임은 각 개인에게 있습니다.
이 페이지를 읽으면 알 수 있는 것
- 코딩 없이 AI와 협업해 규칙 기반 자동매매 시스템을 처음부터 만드는 전 과정
- 실제 주문이 나가는 코드가 어떻게 설계되고, 어디서 무너졌는지
- 전략 결정마다 어떤 판단 기준이 작동했는지 — 왜 그 결정을 했는가
- 시스템이 잘못 작동했을 때 어떻게 디버그했는지
현재 상태
2026년 5월 28일 기준, 자동매매 프로그램은 운영 중이며 2주 실거래 관찰 단계로 전환했다. 백테스트 구조의 룩어헤드 편향과 유니버스 편향을 확인했고, RS 기준과 MA20 이격 상한 후보를 비교했다. 이번 결론은 즉시 파라미터를 바꾸는 것이 아니라, 현행 조건을 유지한 채 판단 가능한 로그를 쌓는 것이다.
완료한 것 (2026-05-28)
- 백테스트 하네스 구축 — 라이브 코드와 분리된 구조에서 과거 데이터 수집, CSV 캐싱, rule_engine 순수함수 재사용이 가능하도록 정리
- 룩어헤드 편향 제거 — 실제 매매 시점에는 알 수 없는 미래 정보를 쓰는 문제를 확인하고, T일 종가 체결 기준을 T+1 시가 기준으로 수정
- 유니버스 편향 확인 — 현재 40종목을 과거 5년에 그대로 적용할 때 생기는 편향을 확인. 절대 수익률 예측보다 조건 간 상대 비교에 초점을 맞추기로 정리
- RS 기준과 MA20 이격 상한 비교 — old-15(엄격한 RS 기준), loosen-30(완화한 RS 기준), 이격 8%·12%·15%를 비교. 즉시 전환하지 않고 관찰 후보로 보류
- 실거래 로그 보강 — 매수 신호마다 RS 값, 초과 RS 값, MA20 이격률, 신호 시각, 매수 가격을 남기도록 정리
- shadow_report 구조 준비 — 실제 주문은 바꾸지 않고 후보 조건이 적용됐을 때의 결과를 나란히 비교하는 관찰용 기록 구조를 준비
현재 판단
- RS 기준: loosen-30 유지
- MA20 이격 상한: 8% 유지
- 손절, 트레일링, RSI, 종목 제외 조건, 주문 실행 구조: 변경 없음
- old-15와 이격 12%: shadow_report로 관찰
다음 작업
- 2주간 실거래 로그와 shadow_report 축적
- pnl_net 기준 손익 누적 추적
- 반복 손실 종목의 별도 필터 필요성 검토
- 유니버스 중복 정의를 향후 config.py 또는 universe.py로 단일화 검토
해결하려는 문제
AI와 협업해서 실제로 작동하는 자동매매 시스템을 만들 수 있는가.
코딩을 모르는 사람이 판단을 담당하고, AI가 실행을 담당하는 협업 구조가, 실제 자본을 움직이는 시스템에서도 유효한가. 이 질문에 500만 원 실계좌로 답하는 것이 이 프로젝트의 핵심이다.
목적은 수익이 아니다. "AI가 실제 자본을 운용하는 시스템을 내 손으로 만드는 경험"이 목적이다.
구조 및 작동 방식
세 주체가 역할을 나눈다. 운영자(철부지)가 전략 방향과 최종 판단을 담당하고, GPT(메타철부지)가 전략 설계와 리서치를 맡는다. Claude Code가 코드 분석과 수정 실행을 담당한다. KIS API(한국투자증권)가 실계좌에 주문을 낸다.
매수 판단은 규칙 엔진이 실행한다. RSI 모멘텀, MA20 이격도, 시장 레짐(5조건 점수제), RS 필터, 섹터 중복 제한을 통과한 종목을 강도 순으로 정렬해 하루 3회(10:00 / 13:00 / 14:00) 스캔한다. 현재 손절 기준은 -2.5%, 목표 수익 기준은 +5.0%, 트레일링 스탑은 +4% 활성화를 기준으로 운용한다.
지금까지의 핵심 성과
- MVP 완성 → 실계좌 전환까지 20일 (2026-04-07 ~ 2026-04-20)
- 모의투자 1주일 테스트 결과 +₩45,060 (+0.58%) — 실계좌 전환 검토 근거
- 실계좌 첫 주문 체결 2026-04-14 카카오 20주 @ ₩48,350
- 현재 운영 구조 1,000만 원 수준 시드 기준 총자산 비율 기반 자금 배분
- 전략 엔진 1차 개선 손절 -2.5%, 목표 수익 +5.0%, 현금 20% 유보, 섹터 중복 제한, 손익분석 로그 위치 정리
- 전략 전환 "슬롯 채우기" → "강한 종목만 선택적으로 보유" (RS 필터 도입)
최근 업데이트
- 2026-05-28 · 백테스트 검증과 관찰 모드 백테스트의 룩어헤드 편향과 유니버스 편향을 확인하고 T+1 시가 체결 기준으로 수정. old-15와 loosen-30, MA20 이격 8%·12%·15%를 비교했지만 즉시 파라미터를 바꾸지 않고 현행 조건을 유지. 실거래 로그를 보강하고 shadow_report 관찰 구조를 준비. → 운영 Log Insight
- 2026-05-22 · RS 필터 검증 체계 운영 모드 정상 작동(스캔 4회, 주문 0건). BUY 신호 6건 중 RS 통과 0건. ETF 기준 왜곡 의심 → 유니버스 4가지 기준 비교 결과 기준 교체 보류. 레짐 판단 정리, MARKET_WEAK/technical_regime 분리. RS 탈락 종목 D+1·D+3·D+5 추적 코드 완성. → 운영 Log Insight
- 2026-05-11 · 레짐 감지 업그레이드 KOSPI 5일 수익률 기반 레짐 감지 도입. BULL 8% / NEUTRAL 5% / BEAR 3% MA20 이격 기준 전환. 유니버스 20→40종목, BULL 전용 11:00 사이클, 눌림목 필터, RSI 상한 65→70, 분할익절(+6% 50% 익절), 구간별 트레일링, 일일 한도 3건으로 확대.
- 2026-05-08 · 전략 엔진 1차 개선 실계좌 운영 데이터를 바탕으로 자본 구조, 손절 기준, 목표 수익, 현금 유보, 섹터 중복 제한, RSI 모멘텀 조건을 정리. 손익분석 로그를 후보 검토 초기에 출력하도록 옮겼고, DRY RUN 매수 0건은 MA20 이격 기준에 따른 정상 방어 작동으로 판단.
- 2026-05-04 · v2.0 주말 개선 작업 이후 첫 거래일 점검 — 1,000만 원 시드 확장에 맞춰 총자산 비율 기반 자금 배분을 적용. LG전자 트레일링 매도 +12,000원, 신규 매수 0건. RS와 MA20 조건은 완화하지 않았고, 조건 미충족 종목은 계속 차단.
- 2026-05-01 · v2.0 v2.0 업그레이드 방향 정리 완료 — 비율 기반 자금 배분, 고가주 예외 매수, 시장 강도 기반 진입 수 조절 등 7개 항목. 전문가 AI와 바이브코딩 협업 구조로 진행. 코드 반영 후 DRY RUN 검증 예정.
- 2026-04-29~30 · 1주차 실계좌 1주차 결산 — 트레일링 스탑 3건 연속 플러스(손절 0건), 포지션 회전 구조 실전 작동 확인. 주간 실현손익 +40,658원.
- 2026-04-29 · STEP 14 개편 후 첫 실매수 전 구간 정상 작동 확인 — 트레일링 자동 매도 2건(+₩31,004), 신규 매수 3건 체결, 버그 2건 수정
- 2026-04-27 · v1.5 RS 필터 추가, 강제 슬롯 채움 제거, BUY_DRY_RUN 플래그 신설 — 검증 진행 중
- 2026-04-24 · v1.4 버그 5건 수정 (예수금 필드 오참조·KT 중복 매도 예약), 레짐 판단 5조건 점수제 전환
대표 Log — 프로젝트를 이해하는 5개
- 자동매매 프로그램을 바로 고치지 않았다. 백테스트보다 먼저 계측판을 달았다 백테스트 편향을 확인하고, 조건 변경 대신 실거래 로그와 shadow_report 관찰 구조를 먼저 붙인 기록.
- 주식 자동매매 프로그램 전략 엔진 1차 개선 기록 실계좌 운영 데이터를 바탕으로 자본 구조, 손절 기준, 목표 수익, 로그 위치를 정리한 최신 운영 기록.
- 국내주식 자동매매 프로그램 — 주말 개선 작업 이후 첫 거래일 운영 기록 1,000만 원 수준 시드 확장 이후 조건이 맞지 않으면 매수하지 않는 구조를 확인한 기록.
- 자동매매 1주일 모의 마감 — 실계좌 전환 결정 1주일 검증 결과와 실계좌 전환 결정 기준. 무엇을 확인하면 전환해도 되는가.
- 자동매매 실계좌 첫날 — 버그 2건 수정, 5종목 체결 실계좌 운영일 트러블슈팅. 모의에서 안 나온 버그가 실전에서 나왔다.
대표 Insight — 핵심 관찰
- 백테스트가 좋아 보여도 전략을 바로 바꾸면 안 되는 이유 좋아 보이는 백테스트 결과보다 먼저 확인해야 할 편향과 관찰 구조에 대한 기록.
- 자동매매에서 중요한 것은 매수 신호보다 탈락 이유다 매수 0건을 실패가 아니라 판단 가능한 방어 작동으로 해석하기 위한 운영 인사이트.
- 나는 코드를 짜는 대신, AI들과 자동매매 시스템을 설계하고 있다 바이브코딩에서 사람의 역할은 코드가 아니라 질문이다. v2.0 업그레이드 과정에서 확인한 것.
- AI 자동매매를 만들면서 몰랐던 것 시작 전에는 보이지 않던 것들. 시스템을 만들면서 처음 직면한 진짜 문제들.
- AI한테 코드를 고치게 한 게 아니라, 구조를 바꿨다 AI 협업의 본질은 코드 수정이 아니라 문제 재구조화다.
- 시스템이 스스로 팔았다 — 트레일링 스탑 첫 실전 규칙이 작동하는 순간의 감각. 내가 판단하지 않아도 시스템이 결정을 내렸다.
- 시스템이 '아니오'라고 말하는 날 아무것도 안 하는 것이 전략이다. 매수하지 않은 날의 기록.