자동매매가 매수하지 않은 날 — 매수 0건의 이유를 추적했다

자동매매RS필터실계좌stock-auto-trade

자동매매 프로그램은 운영 모드에서 정상 작동했다. 10시, 11시, 13시, 14시 네 차례 매수 스캔이 돌았고, 장후 요약과 텔레그램 알림, 웹 export까지 완료됐다.

결과만 보면 주문은 0건이었다.

항목결과
BUY 신호6건
실제 주문0건
보유 종목0개
손익+0원

처음엔 매수 기회를 놓친 날처럼 보였다. 그런데 로그를 따라가 보니 시스템은 멈춘 게 아니었다. 6건의 BUY 신호가 있었지만 RS 필터를 통과한 종목이 0개여서 현금을 유지한 것이다. 최종 판단은 “강한 후보 없음 — 빈슬롯 현금 유지”였다.

RS 필터가 너무 강한 게 아닌가

RS 필터가 너무 강한 게 아닌가 의심했다. KOSPI200 ETF의 20일 RS가 27%까지 올라가 있어서, 개별 종목이 양호해도 ETF 대비 초과 RS가 낮게 계산됐다.

그래서 비교 기준을 바꿔 계산해 봤다.

기준RS
ETF 기준 RS+27.34%
유니버스 단순평균 RS+9.14%
유니버스 시총가중 RS+36.57%
후보군 가중 RS+2.84%

예상과 달랐다. 유니버스 시총가중 RS가 ETF보다 더 높았다. 유니버스 안에서도 특정 초대형 종목 비중이 너무 컸기 때문이다. ETF만의 문제가 아니라, 유니버스 안에도 같은 쏠림이 있었다.

로직을 바로 바꾸지 않기로 한 이유

단순평균은 기준이 낮아져 통과 종목이 과하게 늘고, 시총가중은 대형주 쏠림으로 오히려 더 엄격해지고, 후보군 가중은 필터 역할 자체가 약해진다. 세 대안 모두 새로운 왜곡을 들여올 뿐이었다.

그래서 매수 로직을 바로 바꾸지 않기로 했다. 대신 RS에서 탈락한 종목이 이후에 어떻게 움직이는지 추적하는 코드를 먼저 만들었다. D+1, D+3, D+5 성과를 거래일 기준으로 기록하는 구조다. 2026년 KRX 휴장일 처리도 반영했다. 데이터는 아직 없다. 이제부터 쌓는다.

매수 0건이 실패는 아니다

매수 0건이 실패는 아니다. 중요한 건 왜 사지 않았는지 설명할 수 있느냐다. 오늘은 그 설명이 한 단계 또렷해진 날이다.

다음 단계: RS 탈락 종목 첫 1거래일치 데이터를 실제로 기록해, 추적 코드가 의도대로 동작하는지 확인한다.

RS 필터 문제는 계산식이 아니라 비교 기준의 쏠림이었다
자동매매 프로젝트 전체 기록


※ 본 콘텐츠는 개인의 실험 기록이며 투자 권유가 아닙니다.
투자의 판단과 책임은 본인에게 있습니다.