2026년 7월 10일 키움 자동매매 개발일지 – 거래가 없던 하루, 판단 기록부터 바로잡다
오늘 개발을 진행한 배경
오늘은 자동매매 프로그램을 평소보다 늦은 오전 10시경 실행했다.
조건검색을 통한 후보 종목 포착은 정상적으로 진행됐지만, 장 마감까지 실제 신규 매수는 발생하지 않았다.
처음에는 매수 조건이 지나치게 까다로운 것은 아닌지 의심했지만, 단순히 조건을 완화하기보다 다음 내용을 먼저 확인했다.
- 후보 종목이 정상적으로 수집됐는지
- 장중 매수 신호가 있었는지
- 신호가 차단됐다면 그 이유는 무엇인지
- 주문 시도 단계까지 도달했는지
- 장 마감 보고서가 장중 판단을 정확히 보존하는지
분석 결과, 후보 포착 자체는 정상적으로 이뤄지고 있었다. 다만 기존 보고서만으로는 장중의 실제 판단 과정을 완전하게 재현하기 어려운 부분이 발견됐다.
장 마감 보고서의 판단 기록 문제 확인
기존 방식은 장 마감 시점의 최신 데이터를 이용해 후보 종목을 다시 평가하는 구조가 일부 포함돼 있었다.
이 경우 장중에는 매수 가능성이 있었던 종목도 장 마감 후에는 다른 사유로 차단된 것처럼 표시될 수 있다. 특히 시간의 영향을 받는 판단은 최종 보고서에서 실제 장중 상황과 다르게 보일 가능성이 있었다.
이 상태에서는 다음과 같은 구분이 어려워진다.
- 처음부터 매수 조건을 충족하지 못한 종목
- 장중 잠시 조건을 충족했던 종목
- 주문 직전 다른 안전장치로 차단된 종목
- 주문은 시도했지만 체결되지 않은 종목
자동매매 전략을 개선하려면 수익률만큼이나 “왜 매수하지 않았는지”를 정확히 기록하는 것이 중요하다고 판단했다.
장중 판단 시점 저장 기능 보강
오늘은 후보 종목을 평가한 순간의 상태를 별도로 보존하도록 기록 기능을 보강했다.
이제 다음과 같은 흐름을 구분해서 확인할 수 있도록 구성했다.
- 후보가 처음 포착된 시점
- 전략 평가가 실행된 시점
- 매수 가능 또는 차단 판단
- 주요 차단 사유
- 주문 시도 여부
- 실제 매수 여부
- 장중 최초 통과 시점과 마지막 통과 시점
장 마감 시점에 다시 계산한 결과만 남기는 것이 아니라, 실제 판단이 발생했을 당시의 상태를 저장하는 방향이다.
이를 통해 장중에는 조건을 충족했지만 이후 데이터 변화로 흔적이 사라지는 문제를 줄일 수 있게 됐다.
프로그램 재실행 이후 기록 연속성 개선
자동매매 프로그램은 장중 오류나 설정 변경으로 재실행해야 하는 상황이 발생할 수 있다.
프로그램을 다시 실행하더라도 당일의 평가 및 주문 관련 상태가 끊기지 않도록 기존 저장 자료를 기준으로 복구하는 기능도 보강했다.
종료 직전 저장되지 않은 판단 기록도 최대한 반영하도록 처리해 다음 실행이나 장 마감 분석에서 누락될 가능성을 줄였다.
관찰 전략과 실주문 경로 분리
현재는 여러 후보 전략을 동시에 검증하고 있지만, 모든 전략이 바로 실주문으로 이어지도록 하지는 않고 있다.
관찰용 전략과 실제 주문이 가능한 시험 전략을 분리하고, 실주문은 제한된 범위에서만 동작하도록 안전장치를 유지했다.
또한 기존 보유종목 관리와 신규 전략 검증을 분리해 오래된 보유종목의 상태가 신규 진입전략 평가에 혼선을 주지 않도록 했다.
추가매수 제한과 중복 주문 방지 등 기존 위험관리 정책도 그대로 유지했다.
진입 이후 관리 기준 정리
신규 시험 전략은 매수 조건만 추가한 것이 아니라 진입 이후의 대응 흐름도 함께 정리했다.
구체적인 수치와 조건은 공개하지 않지만, 다음 상황을 구분해 관리하도록 구성했다.
- 목표 수익 도달
- 손실 제한
- 수익 발생 후 되돌림 방어
- 일정 시간 동안 흐름이 나오지 않는 경우
- 장 마감 전 정리 필요 여부
신규 진입전략을 검증하려면 매수 시점뿐 아니라 매도 결과까지 하나의 전략으로 평가해야 하기 때문이다.
분석 보고서 개선
오늘 작업을 통해 후보 포착부터 실제 체결까지의 과정을 단계별로 비교할 수 있는 기반을 마련했다.
앞으로는 단순히 “오늘 매수가 없었다”라고 끝나는 것이 아니라 다음과 같이 원인을 나눠볼 수 있다.
- 후보 부족
- 상승 흐름 부족
- 유동성 부족
- 과도한 되돌림
- 위험 조건 감지
- 주문 전 안전장치 차단
- 주문 시도 후 미체결
이 기록이 누적되면 매수가 적었던 원인을 정확히 찾고, 필요할 때만 조건을 조정할 수 있다.
오늘 검증 결과
최종 수정본은 전체 빌드 검증을 통과했다.
- 빌드 성공
- 신규 컴파일 오류 없음
- 기존 프로젝트 경고 외 추가 문제 없음
- 분석자료 생성 과정에서 실주문 실행 없음
- 실행 중인 자동매매 프로그램과 실거래 데이터 변경 없음
다만 장 마감 후 적용한 최종 보완사항은 아직 실제 장중 데이터로 검증되지 않았다.
따라서 오늘 작업은 구현과 빌드 검증까지 완료된 상태이며, 실제 작동 여부는 다음 거래일에 확인할 예정이다.
현재까지의 개발 진행상황
현재 자동매매 프로그램은 다음 단계까지 진행됐다.
- 실시간 조건검색 후보 수집
- 후보 종목의 장중 흐름 추적
- 매수 전 추가 검증
- 관찰 전략과 실주문 전략 분리
- 주문 및 체결 결과 기록
- 보유종목 위험상태 분석
- 전략별 결과 보고서 생성
- 후보 포착부터 체결까지 판단 과정 추적
- 프로그램 재실행 이후 당일 상태 복구
- 장 마감 분석자료 자동 생성
아직 최종 전략이 완성된 것은 아니다.
현재 단계의 핵심은 매수 횟수를 늘리는 것이 아니라, 각 후보가 어떤 이유로 매수되거나 제외됐는지를 정확히 기록하는 것이다.
다음 거래일 확인할 내용
다음 거래일에는 다음 항목을 집중적으로 확인할 예정이다.
- 실제 평가 시점의 판단이 정상적으로 저장되는지
- 장중 통과 기록이 장 마감 후에도 유지되는지
- 후보 포착부터 주문·체결까지의 수치가 서로 일치하는지
- 프로그램 재실행 후에도 당일 기록이 이어지는지
- 시험 전략의 진입과 청산 흐름이 의도대로 동작하는지
충분한 거래 자료가 누적되기 전까지는 매수 조건을 무리하게 완화하지 않고, 제한된 범위에서 결과를 관찰할 계획이다.
마무리
오늘은 실제 매수가 발생하지 않았지만, 그 과정에서 분석 시스템의 중요한 약점을 발견하고 보완할 수 있었다.
자동매매 프로그램에서 거래가 없다는 사실보다 중요한 것은 거래가 없었던 이유를 정확히 설명할 수 있는가이다.
앞으로도 단순히 매수 기회를 늘리는 방향보다는 기록의 정확성과 위험관리부터 확인하면서 전략을 단계적으로 개선해 나갈 예정이다.