
지난 8월 18일까지의 롤백과 실매매 점검 이후에는 새로운 조건을 계속 추가하기보다 실제 장중 데이터를 쌓으면서 매수·매도 로직과 주문 경로가 의도대로 작동하는지를 확인하는 데 집중했습니다.
이번 기록에는 8월 19일부터 28일까지 확인한 실제 거래 흐름, 보호매도 동작, 8월 24일 주문 API 안정성 문제 점검, 수정 후 주문 검증 과정과 앞으로 개선할 부분을 정리했습니다.
새로운 매매법을 추가한 기록이라기보다, 실제 자동매매 프로그램을 운영하면서 데이터를 쌓고 → 문제를 찾고 → 수정하고 → 다시 실전에서 검증한 과정에 가깝습니다.
8월 18일 이후 운영 방향은 크게 바꾸지 않았습니다
이전 작업에서 과도한 전략 변경을 되돌린 뒤에는 매수 조건을 계속 추가하기보다 현재 전략이 실제 장중에서 어떻게 움직이는지를 충분히 관찰하는 방향을 유지했습니다.
어느 한 단계만 따로 보는 것이 아니라 이 전체 과정에서 실제 수익을 놓치는 구간이 어디인지 확인하는 것이 목적입니다.
현재 매도는 수익 극대화보다 보호에 더 가깝습니다
이 기간 프로그램의 매도 구조는 목표수익을 실현하는 조건과 상승 이후 되돌림을 방어하는 보호조건으로 구성되어 있었습니다.
- TP1_2P 수익률 약 +2% 도달 시 1차 목표수익 실현
- EARLY_FADE_0P6_TO_1P +0.6~1% 구간에서 약화 신호가 누적될 때 이익 보호
- EARLY_FADE_1P_TO_2P +1~2% 구간에서 고점 대비 밀림과 수급 약화 감지
- EARLY_FADE_RESIST_0P4 저항 돌파 실패와 약화 신호가 겹칠 때 빠르게 대응
- BE_PROTECT_0P 고점 형성 후 수익이 사라지는 구간에서 본전 부근 방어
약화 신호에는 저항 돌파 실패, 5분 EMA20 이탈, 프로그램·외국인 수급 약화, 단주 매도, 당일 고가 이탈, 일봉 지지 이탈 등이 함께 사용됩니다.
8월 19~21일 실매매 관찰
고점 형성 후 되돌림 종목이 많았던 날
TP1_2P 조건으로 +2.06% 구간에서 목표수익을 실현했습니다. 남은 물량은 장중 고점 +2.07% 이후 약화 신호 3개가 겹치며 본전 보호 조건으로 정리됐습니다.
고점은 만들어졌지만 이후 수급 약화나 당일고가 이탈이 이어지는 종목이 많아 수익을 길게 끌고 가기보다는 보전하는 쪽으로 매도가 동작했습니다.
작은 수익 보호와 +2% 목표수익이 함께 발생
일부 종목은 전일 매수 후 다음 거래일까지 보유한 뒤 청산되기도 했습니다.
수익 확대보다 되돌림 방어가 우선
이 구간에서는 손실 확대 방지는 정상적으로 동작했지만, 상승 이후 되돌림에서 청산되는 거래가 많다는 특징도 확인됐습니다.
8월 24일, 매매 전략이 아닌 주문 경로를 수정했습니다
8월 24일 프로그램 실행 중 오류가 확인된 뒤 단순히 화면만 보고 원인을 추측해서 매매 로직을 변경하지는 않았습니다.
로그와 호출 구조를 확인한 결과 키움 OpenAPI ActiveX가 UI/STA 스레드에서 생성되는 반면, 일부 주문·취소·조회 작업이 백그라운드 작업 경로에서 COM 객체를 직접 호출할 가능성을 점검할 필요가 있었습니다.
매수·매도 전략은 그대로 유지했습니다
주문 안정성 수정 과정에서 실거래 결과 자체가 달라지는 것을 막기 위해 아래 핵심 로직은 변경하지 않았습니다.
- 매수조건
- 매도조건
- 추가매수조건
- 주문수량 계산
- 종목 선정 전략
- 계좌 선택
- 호가 정책
- TradeReport
- CSV 저장
- 체결 이벤트 처리
Debug 빌드는 오류 0건으로 완료됐고, 기존 경고 62건은 별도로 유지됐습니다. 정적 안전성 검증 12개 항목도 통과했습니다.
수정 후에는 주문 요청과 실제 호출 수를 비교했습니다
8월 24일 오후부터 28일까지는 프로그램이 주문을 요청한 횟수와 실제 OpenAPI의 SendOrder 호출 횟수를 계속 비교했습니다.
8월 25일: 8 / 8
8월 26일: 9 / 9
8월 27일: 8 / 8
8월 28일: 11 / 11
적어도 이번 검증 구간에서는 주문 누락이나 중복 전송, COM 스레드 오류와 관련된 징후가 로그에서 확인되지 않았습니다.
수정 후 8월 25~28일 매매 기록
보호매도와 목표수익 매도 혼재
되돌림 방어가 계속 우선 적용
일부 종목은 다음 거래일까지 보유
주문 안정성과 매도 동작을 함께 확인
5,840원 매수 → 5,860원 매도.
고점 +1.18% 이후 5분 EMA20 이탈과 프로그램 약화로 로그 판단 시점 기준 +0.15%에서 청산됐습니다.
22,250원 매수 → 22,300원 매도.
진입 약 16초 뒤 저항 돌파 실패, 외국인 약화, 당일고가 이탈이 겹치며 +0.03%에서 조기 보호매도가 발생했습니다.
5,740원 매수 → 5,860원 매도.
약 +2.09% 도달로 TP1_2P 목표수익이 실행됐습니다.
5,050원 매수 → 5,070원 매도.
고점 +0.81% 이후 저항 돌파 실패, 일봉 지지 이탈, 당일고가 이탈로 +0.22%에서 청산됐습니다.
5,230원 매수 → 5,250원 매도.
저항 돌파 실패와 프로그램·외국인 약화로 +0.19%에서 청산됐습니다.
전일 16,200원 매수분을 16,360원에 매도했습니다. 고점 +1.41% 이후 약화 신호 3개가 겹치며 +0.79%에서 청산됐습니다.
추가매수가 실행되지 않은 이유도 확인했습니다
8월 28일 기준 5분봉 거래량 돌파와 저항 돌파 구조는 18회 감지됐지만 실제 추가매수 주문은 발생하지 않았습니다.
기능 오류 때문이라기보다 추가매수 전에 적용되는 여러 보수적인 필터에서 조건이 충족되지 않았기 때문입니다.
한편 같은 제외 사유가 반복 출력되면서 하루 로그가 4만5천 줄 이상 생성되는 문제도 확인했습니다.
실제 거래와 가상 분석은 계속 분리해서 봅니다
실매매 프로그램에 새로운 조건을 바로 넣는 대신 실제 주문을 발생시키지 않는 가상매매와 Shadow 분석을 이용해 기존 필터가 좋은 종목을 지나치게 차단하고 있는지도 계속 확인하고 있습니다.
- 어떤 종목에서 원래 매수 신호가 발생했는가
- 필터에 막힌 종목은 이후 얼마나 상승했는가
- 매수했다면 MFE와 MAE가 어느 정도였는가
- 매도 이후 추가 상승이 얼마나 있었는가
- 수익 종목과 손실 종목 사이에 반복되는 차이가 있는가
조건검색식 5종도 다시 비교할 예정입니다
현재는 키움 조건검색에서 사용하는 여러 조건식 결과도 별도로 확보해 실제 매매 관점에서 비교할 준비를 하고 있습니다.
비교 대상은 단순히 어느 조건식이 종목을 많이 포착하느냐가 아닙니다.
- 조건식별 포착 종목 수
- 조건식 간 중복 종목
- 여러 조건식 동시 포착 여부
- 포착 이후 최대 상승률
- 포착 이후 최대 하락률
- 급등 종목 포함 비율
- 실제 장중 진입 가능한 시점이었는지
- 기존 매수필터 통과 여부
- 실제 매수 종목과의 관계
- 수익·손실 종목의 조건식 차이
특히 여러 조건식에서 동시에 포착되는 종목이 한 조건식에서만 포착된 종목보다 실제 성과가 좋은지도 확인해볼 예정입니다.
이 기간에 확인한 가장 중요한 부분
앞으로는 세 가지를 중점적으로 볼 예정입니다
이번 개발일지를 정리하면
이번 기간에는 새로운 전략을 추가하는 것보다 실제 운영 중 발생할 수 있는 주문 안정성 문제를 먼저 점검하고, 수정 후 실전 로그를 통해 다시 검증하는 작업에 더 많은 비중을 두었습니다.
동시에 실제 매매에서는 목표수익 +2%에 도달한 거래도 있었지만, 상당수 종목은 상승 이후 되돌림 과정에서 보호매도로 정리됐습니다.
그렇기 때문에 현재 단계에서 단순 승률이나 거래 횟수만 보고 전략이 완성됐다고 판단하기보다는, 좋은 진입을 놓치고 있는지, 매도가 너무 빠른지, 후보 종목을 만드는 조건검색 단계부터 개선할 부분은 없는지 를 계속 데이터로 확인하는 것이 더 중요하다고 보고 있습니다.
이 글은 개인적으로 개발 중인 자동매매 프로그램의 개발·운영 과정을 기록한 자료입니다. 특정 종목이나 투자전략의 매수·매도를 권유하기 위한 내용이 아닙니다.
본문에 표시된 거래별 수익률은 프로그램 로그에 기록된 판단 시점의 값이며, 실제 증권사 기준 최종 실현손익과 다를 수 있습니다. 실제 실현손익은 체결가격, 수수료, 제세금 등을 반영해 별도로 확인해야 합니다.
또한 과거 거래 결과나 특정 조건의 성과가 향후 동일하게 반복된다는 보장은 없습니다. 주식투자에는 원금손실 가능성이 있으며 투자 판단과 책임은 투자자 본인에게 있습니다.
'주식프로그램 > 프로그램 개발' 카테고리의 다른 글
| 자동매매 프로그램 롤백 후 실매매 결과|71승 0패의 착시와 미청산 손실 (0) | 2026.08.18 |
|---|---|
| 2026년 7월 10일 키움 자동매매 개발일지 – 거래가 없던 하루, 판단 기록부터 바로잡다 (0) | 2026.07.10 |
| 2026년 7월 4일 자동매매 프로그램 개발일지 – 매수보다 검증에 집중한 자동매매 시스템 구축 과정 (0) | 2026.07.04 |
| 2026년 6월 19일 자동매매 프로그램 개발일지 – 거래 데이터 정합성과 거래 추적 기능을 보완한 하루 (0) | 2026.06.19 |
| 2026년 6월 17일 자동매매 개발일지 – 수익보다 먼저 위험한 매수를 줄이는 구조 만들기 (0) | 2026.06.17 |