실계좌 하루 — 버그 5건 수정하다 전략의 구멍을 발견했다

자동매매실계좌버그수정전략개선레짐판단AI협업

날짜: 2026-04-24

오늘 하루 동안 버그 5건을 수정하고 전략 6건을 개선했다.

버그 1 — 예수금 필드 오참조

오전 10:00 스캔에서 매수 신호가 떴는데 주문이 전부 실패했다. 로그에는 “주문가능금액을 초과했습니다.”

잔고 화면에는 62만원이 있었다. KIS는 0원이라고 판단하고 있었다.

원인은 D+2 결제 구조였다. 주식을 사면 금액이 이틀간 묶인다. 그 사이 KIS API의 ord_psbl_cash_amt가 0으로 반환된다. 시스템은 prvs_rcdl_excc_amt(전일정산금액)를 보고 있었다. AI에게 두 필드 차이를 물어보고 올바른 필드로 교체했다.

항목수정 전수정 후
참조 필드전일정산금액 (prvs_rcdl_excc_amt)주문가능금액 (ord_psbl_cash_amt)
결과D+2 묶인 금액 포함 → 초과 오류실제 가용 금액 반영

버그 2 — PENDING_SELL 중복 등록

KT 추세이탈 매도 예약이 장중 5분 간격으로 계속 등록되고 있었다. 하루에 18건이 쌓였다.

처음에 main.py를 수정했는데 문제가 사라지지 않았다. AI와 실제 실행 경로를 추적했더니 scheduler.py에 장중 5분마다 독립적으로 실행되는 함수가 따로 있었다. 쌓인 17건은 수동 삭제, 이후 중복 방지 로직 추가.

전략 개선 — 레짐 판단 전면 재설계

오후에는 구조적 문제를 건드렸다. 코스피는 오르는데 보유 종목이 계속 빠지는 패턴.

문제 1: MA20 이격 7% 상한선의 역효과

삼성전자, SK하이닉스 같은 대형주가 반등장에서 MA20 대비 13~14% 올라가는 건 정상이다. 그게 과열 필터에 묶여 있었다. 종목 특성별 이격 기준을 분리했다.

문제 2: 매수·매도 사이 버퍼 없음

MA20 바로 위에서 매수한 종목이 조금만 눌리면 즉시 추세이탈 매도 신호가 나왔다. KT가 그 케이스였다. 매도 조건에 버퍼 구간을 추가했다.

레짐 판단 재설계

항목이전변경
판단 기준전일 KOSPI 종가 1개5가지 조건 점수제
전환 조건즉시 전환2일 연속 같은 신호
현금 비율고정강세 20% / 중립 35% / 약세 60%

오늘 수치

  • 시드 500만 → 마감 평가 489만
  • 실현손익: -93,000원 (기아·KT 손절)
  • 버그 수정 5건 / 전략 개선 6건 / 주문 성공 4건

다음 주 월요일 확인할 것

  • 08:50 장전 사이클에서 BULL 신호 기록 여부
  • 10:00 스캔에서 삼성전자 조건 통과 여부 (이격 기준 변경 후 첫 검증)