
주식 차트를 보다 보면 급등한 종목보다 ‘한 번 움직인 뒤 조용히 쉬는 종목’이 더 궁금해질 때가 있다. 문제는 수십 개의 차트를 직접 넘겨보면 기준이 조금씩 달라진다는 점이었다. 그래서 매수 신호를 대신 내주는 프로그램이 아니라, 내가 정한 눌림목 조건을 같은 기준으로 확인해 주는 검색기를 직접 만들었다.
내가 코드에 넣은 눌림목 기준
현재 버전은 과거 일봉 데이터를 불러온 뒤 두 단계를 나눠 본다. 먼저 평소보다 거래량이 크게 늘고 주가가 강하게 움직인 기준봉을 찾는다. 그다음 최근 거래량이 기준봉보다 충분히 줄었는지, 현재 가격이 20일 이동평균선에서 너무 멀리 떨어져 있지 않은지 확인한다.
기준봉 거래량은 이전 평균 대비 3배, 상승률은 8% 이상으로 잡았다. 눌림 구간은 기준봉 대비 거래량 40% 이하, 20일 이동평균선과의 거리 5% 이내를 기준으로 삼았다. 이 수치는 정답이라기보다 내가 차트를 볼 때 사용하던 기준을 코드로 옮긴 것이다.
한국투자증권 Open API를 선택한 이유
시세 데이터는 한국투자증권 Open API의 국내주식 기간별 시세 조회 기능을 사용했다. 공식 개발자센터에서 REST 방식과 Python 샘플을 제공해 개인 프로젝트에서 구조를 확인하기 편했다. 인증 토큰을 발급받고 종목별 일봉 데이터를 분석 함수에 넘기는 흐름으로 구성했다.
처음에는 요청할 때마다 새 연결을 만들었더니 속도가 느리고 호출 관리도 번거로웠다. 이후 세션을 재사용하고 한 번 가져온 종목 정보와 시가총액은 캐시에 보관하도록 바꿨다.
점수보다 이유를 같이 보여주기
검색 결과에 점수만 표시하면 왜 해당 종목이 올라왔는지 다시 차트를 열어봐야 했다. 그래서 기준봉 대비 거래량이 얼마나 줄었는지, 20일선과의 거리가 어느 정도인지 이유와 함께 표시했다. 눌림목과 RSI 과매도 분석도 분리해 조건을 한꺼번에 섞지 않았다.
실제로 만들며 발견한 함정
가장 조심한 부분은 미래 데이터를 실수로 섞는 일이었다. 오늘의 조건을 계산할 때 이후 날짜 정보가 들어가면 화면은 그럴듯해도 실전에서는 쓸 수 없다. 지표 계산 구간과 기준 날짜를 분리하고 데이터가 부족한 종목은 결과에서 제외했다.
아직 자동매매 도구는 아니다
이 프로그램은 주문을 자동으로 실행하지 않는다. 시세를 모으고 내가 정한 조건에 가까운 종목을 정리해 주는 개인용 분석 도구다. 다음 단계에서는 검색 결과와 실제 판단 이유를 매매기록부에 연결해 어떤 조건이 도움이 됐는지 복기할 생각이다.
참고: 한국투자증권 Open API 개발자센터
https://apiportal.koreainvestment.com/docs
※ 이 글은 개인 개발 기록이며 특정 종목의 매수·매도를 권유하지 않습니다.