AI 자동매매 실험 — 전체 이력

2026년 4월 7일부터 시작된 AI 자동매매 실험의 전체 이력입니다. 4개 단계로 구분했습니다.

Phase 1

MVP 설계·구축

2026-04-07 ~ 2026-04-10

KIS API 연동부터 규칙 엔진, 텔레그램 알림, 스케줄러까지 전체 구조를 완성했다. 첫 자동 실행을 기다리는 상태에서 마감했다.

  • v1.0

    KIS API 연동·규칙 엔진·텔레그램·스케줄러 MVP 완성

    이 날이 기점이다. 실제 주문이 나갈 수 있는 최소 구조가 갖춰졌다. 손실 한도 안전장치, 텔레그램 알림, 1일 3회 스케줄러까지 포함.

    Log 보기 →
  • v1.1

    시장 레짐 2중 필터 / 거래대금 필터 / 당일 재매수 금지 / 로그 체계 정리

    매수하지 않아야 할 날에 매수하지 않도록 하는 세팅 완료. 조건이 없을 때 아무것도 안 하는 구조가 핵심이다.

    Log 보기 →
  • Python 모듈 캐시 이슈 확인·매수 사이클 복구

    스케줄러 재시작 시 매수 사이클이 누락되는 버그 발견·수정. SOP 최초 작성.

    Log 보기 →
  • 예수금 필드 교체 / API 재시도 / 중복 매수·기동 방지 / IS_PAPER 안전장치

    실전급 구조 정비. 예수금 API 필드 오류를 발견하고 교체. 실계좌 전환 전 안정화 작업.

    Log 보기 →
Phase 2

모의투자 검증

2026-04-11 ~ 2026-04-17

1주일 모의투자로 전략과 버그를 검증했다. 트레일링 스탑 첫 발동, 종목 유니버스 확대, 매수 스캔 최적화까지 완료하고 실계좌 전환을 결정했다.

  • 모의투자 1회차 결산 — 레짐 필터·5슬롯 관리 첫 검증

    처음으로 5개 슬롯이 채워진 주. 레짐 필터가 실제로 매수를 막는 날을 경험했다.

    Log 보기 →
  • 트레일링 스탑 첫 실전 발동 — 삼성전자 +3.57% 자동 매도

    규칙이 작동하는 순간. 내가 판단하지 않고 시스템이 매도를 결정했다. 실현손익 +₩15,000.

  • 매수 스캔 4→3회 최적화 / 종목 유니버스 5→20개 / 이격도 5%→7% / 최대 보유 3→5종목

    실전 운영 가능한 파라미터 확정. 유니버스를 넓히고 조건을 현실화했다.

  • v1.3

    1주일 모의 마감 — 버그 4건 수정, 실계좌 전환 결정

    주간 수익 +₩45,060 (+0.58%). 트레일링 스탑 검증 완료. 버그 4건 수정 후 월요일 실계좌 전환 결정.

    Log 보기 →
Phase 3

실계좌 전환·초기 운영

2026-04-14 ~ 2026-04-22

처음으로 실제 돈이 움직였다. 첫 주문, 첫 손절, 모의에서 안 나온 버그들이 실전에서 등장했다.

  • 첫 실주문 체결 — 카카오 20주 @ ₩48,350

    DRY_RUN을 끄고 실전으로 전환한 날. 트레일링 스탑 고도화, 예수금 폴백, 장후 텔레그램 명세 추가. 처음으로 실제 돈이 움직였다.

    Log 보기 →
  • 실계좌 첫 운영일 — 버그 2건, 5종목 첫 체결

    토큰 캐시 오염·MA60=None 버그 해결 후 10:33 첫 매수. 카카오·기아·KB금융·신한지주·NAVER, 투자금 ₩4,690,300. 장마감 -₩54,030 (-1.08%).

    Log 보기 →
  • MA60 API 교체 완료 — inquire-daily-price → inquire-daily-itemchartprice (65건)

    MA60 데이터 부족 버그의 근본 원인 해결. 고정 30건 → 65건으로 교체. 다음 날 실전 검증.

  • 실계좌 3일차 — 손절 2건, MA60 필터 검증

    KB금융·카카오 손절 합계 -₩61,800. MA60 필터가 하락추세 3종목 정상 차단 — 전날 API 교체 실전 검증 완료. 마감 잔고 ₩4,906,290.

    Log 보기 →
Phase 4

전략 최적화

2026-04-23 ~ 현재

실전 운영 데이터를 기반으로 전략을 재설계했다. 가장 큰 전환은 "슬롯을 채우는 시스템"에서 "강한 종목만 선택적으로 보유하는 시스템"으로의 철학 변경이고, 최근에는 백테스트보다 실거래 관찰 구조를 먼저 보강하는 단계로 이동했다.

  • 실계좌 버그 3건 당일 수정

    실거래 중 발생한 버그 3건을 같은 날 발견·수정·배포. 운영 안정성 향상.

    Log 보기 →
  • v1.4

    버그 5건 수정 · 전략 6건 개선

    예수금 필드 오참조(ord_psbl_cash_amt 교체)로 주문 정상화. KT 중복 매도 예약 18건 제거. 레짐 판단 5조건 점수제 전환 + 2일 연속 확인 안정화 + 총자산 연동 현금 비율. 마감 잔고 ₩4,890,000.

    Log 보기 →
  • v1.5 BUY_DRY_RUN 검증 중

    RS 필터 도입 — 종목 선정 철학 전환

    코스피 최고치 날 5종목 중 4종목 마이너스. 원인: MAX_HOLD=5를 채우는 구조. KOSPI200 대비 초과수익률 -3% 미만 종목 탈락, 강제 슬롯 채움 제거. 수정 파일: config.py / rule_engine.py / main.py.

    Log 보기 →
  • 트레일링 스탑 구간별 구조 개선 — 단일 트리거에서 3단계 구간으로

    활성화 기준 +4%→+3% 완화, 고정 익절 제거. 구간 A(+3~6%): 고점 -2.0% / 구간 B(+6~10%): 고점 -1.5% / 구간 C(+10%+): 고점 -1.5% 3단계로 전환. 로그에 진입가·최고가·매도가·수익률·적용 구간·매도 사유 추가. 수정 파일: rule_engine.py (line 485~533). 테스트 8/8 통과. LG화학 구간 A 실전 첫 발동 +2.88% 수익 확인.

    Log 보기 → Insight 보기 →
  • STEP 14

    개편 후 첫 실매수 — 전 구간 정상 작동 확인

    트레일링 스탑 자동 매도 2건(삼성전자 +0.84%, NAVER +2.31% / 실현손익 +₩31,004). RS 필터·섹터 제한 통과한 SK텔레콤·KB금융 신규 매수 3건 체결. 버그 2건 수정(RS 탈락 로그 혼선 → [추가매수-RS면제] 태그 추가, 웹 익스포트 result→regime 키 수정). 마감 총평가 ₩4,942,207 / 누적손익 -₩39,796.

    Log 보기 → Insight 보기 →
  • v2.0 계획

    v2.0 업그레이드 방향 정리 — 시드 확장형 구조 설계

    500만 원 구조에서 드러난 고가 우량주 매수 한계를 점검하고, 특정 종목 예외가 아니라 총자산 비율 기준으로 종목당 예산과 최대 매수 가능 금액을 재계산하는 방향을 정리했다. RS·MA20·손절·보유기간 조건은 완화하지 않는 것이 핵심이다.

    Log 보기 → Insight 보기 →
  • v2.0 점검

    주말 개선 작업 이후 첫 거래일 운영 결과 점검

    1,000만 원 수준 실계좌 구조에서 고가주도 포트폴리오 안에서 평가할 수 있게 되었지만, 조건이 맞지 않으면 매수하지 않는 흐름을 확인했다. LG전자 트레일링 매도 +₩12,000, 신규 매수 0건, SK하이닉스는 MA20 이격 조건으로 차단되었다.

    Log 보기 → Insight 보기 →
  • 전략 엔진 1차 개선

    전략 엔진 1차 개선 — 자본 구조·손절·목표 수익·섹터 중복·RSI 모멘텀 정리

    실계좌 운영 데이터 기반으로 자본 구조(1,000만 원·종목당 200만 원), 손절 -2.5%, 목표 수익 +5.0%, 현금 20% 유보, 섹터 중복 제한, RSI 모멘텀 조건 정리. 손익분석 로그를 종목 검토 초기로 이동. DRY RUN 매수 0건은 MA20 이격 기준에 따른 정상 방어 작동.

    Log 보기 → Insight 보기 →
  • 레짐 감지 업그레이드

    KOSPI 레짐 감지 기반 동적 매수 필터 도입 — BULL / NEUTRAL / BEAR 장세별 MA20 이격 기준 전환

    급등장 매수 0건 반복 원인(MA20 이격 상한 5% 고정)을 분석하고 KOSPI 5일 수익률 기반 레짐 감지로 전환. BULL 8% / NEUTRAL 5% / BEAR 3% 구조 적용. 유니버스 20→40종목 확대, 11:00 BULL 전용 매수 사이클, 눌림목 필터(OR 구조), RSI 상한 65→70(75 이상 차단 유지), 분할익절(+6% 50% 익절), 구간별 트레일링 완화, 일일 매수 한도 2→3건, 체결가 기반 pnl 보정, 동시 매도 통합 알림 추가.

    Log 보기 → Insight 보기 →
  • RS 필터 검증 체계

    RS 기준 왜곡 가능성 점검과 탈락 종목 사후 추적 구조 구축

    운영 모드에서 주문 0건이 발생한 이유를 추적. BUY 신호 6건 중 RS 통과가 없었고, ETF·유니버스 단순평균·시총가중·후보군 가중 기준을 비교했다. 기준 교체는 보류하고 RS 탈락 종목 D+1·D+3·D+5 추적 코드를 먼저 만들었다.

    Log 보기 → Insight 보기 →
  • 2주 관찰 모드

    백테스트 편향 확인, 현행 조건 유지, shadow_report 관찰 구조 준비

    백테스트의 룩어헤드 편향을 T+1 시가 체결 기준으로 수정하고, 현재 40종목 유니버스를 과거에 그대로 적용할 때 생기는 편향을 확인했다. old-15와 loosen-30, MA20 이격 8%·12%·15%를 비교했지만 즉시 변경하지 않고 실거래 로그와 shadow_report로 2주간 관찰하기로 했다.

    Log 보기 → Insight 보기 →