본문 바로가기
주식프로그램/프로그램 개발

자동매매 개발일지|8월 19~28일 실매매 점검과 주문 안정성 개선

by 팡규 2026. 8. 30.
반응형
자동매매 개발일지 · 2026.08.19~08.28
자동매매 프로그램 실전 운영과 안정성 개선 기록

지난 8월 18일까지의 롤백과 실매매 점검 이후에는 새로운 조건을 계속 추가하기보다 실제 장중 데이터를 쌓으면서 매수·매도 로직과 주문 경로가 의도대로 작동하는지를 확인하는 데 집중했습니다.

이번 기록에는 8월 19일부터 28일까지 확인한 실제 거래 흐름, 보호매도 동작, 8월 24일 주문 API 안정성 문제 점검, 수정 후 주문 검증 과정과 앞으로 개선할 부분을 정리했습니다.

기록 기간 8월 19~28일
핵심 점검 주문 안정성
운영 방향 데이터 검증
이번 개발일지의 핵심
새로운 매매법을 추가한 기록이라기보다, 실제 자동매매 프로그램을 운영하면서 데이터를 쌓고 → 문제를 찾고 → 수정하고 → 다시 실전에서 검증한 과정에 가깝습니다.

8월 18일 이후 운영 방향은 크게 바꾸지 않았습니다

이전 작업에서 과도한 전략 변경을 되돌린 뒤에는 매수 조건을 계속 추가하기보다 현재 전략이 실제 장중에서 어떻게 움직이는지를 충분히 관찰하는 방향을 유지했습니다.

조건검색 종목 필터 진입 보유 추가매수 매도

어느 한 단계만 따로 보는 것이 아니라 이 전체 과정에서 실제 수익을 놓치는 구간이 어디인지 확인하는 것이 목적입니다.

실제 거래 데이터
장중 매수·매도 체결과 주문 로그를 계속 축적해 실제 프로그램의 동작을 확인합니다.
가상매매·Shadow 분석
실주문과 분리된 분석 경로를 통해 기존 필터 때문에 놓친 종목도 함께 비교합니다.
MFE·MAE 확인
진입 이후 최대 상승폭과 최대 하락폭을 확인해 진입과 청산 위치를 함께 분석합니다.
여러 거래일 반복 검증
특정 하루나 몇 종목만 좋았던 전략이 아니라 반복해서 사용할 수 있는 구조인지 확인합니다.

현재 매도는 수익 극대화보다 보호에 더 가깝습니다

이 기간 프로그램의 매도 구조는 목표수익을 실현하는 조건과 상승 이후 되돌림을 방어하는 보호조건으로 구성되어 있었습니다.

주요 보호매도 조건
  • 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일 실매매 관찰

2026년 8월 19일

고점 형성 후 되돌림 종목이 많았던 날

조건식 진입 3,599 · 신규매수 6
한화손해보험
TP1_2P 조건으로 +2.06% 구간에서 목표수익을 실현했습니다. 남은 물량은 장중 고점 +2.07% 이후 약화 신호 3개가 겹치며 본전 보호 조건으로 정리됐습니다.
삼성공조, JW신약, 한라캐스트, 팬오션, 테크윙, 엠엑스로보틱스 등은 대체로 +0.05~+0.81% 구간에서 보호매도가 발생했습니다.

고점은 만들어졌지만 이후 수급 약화나 당일고가 이탈이 이어지는 종목이 많아 수익을 길게 끌고 가기보다는 보전하는 쪽으로 매도가 동작했습니다.

2026년 8월 20일

작은 수익 보호와 +2% 목표수익이 함께 발생

조건식 진입 3,058 · 신규매수 5
HPSP, GS건설, 한화솔루션, 실리콘투 등은 약 +0.22~+0.32% 구간에서 조기 보호매도로 정리됐습니다.
엠엑스로보틱스는 약화 신호 없이 상승을 이어가 +2.21% 구간에서 TP1_2P 목표수익 매도가 실행됐습니다.

일부 종목은 전일 매수 후 다음 거래일까지 보유한 뒤 청산되기도 했습니다.

2026년 8월 21일

수익 확대보다 되돌림 방어가 우선

조건식 진입 2,106 · 신규매수 3
삼성공조는 고점 +1.43% 이후 저항 돌파 실패와 프로그램·외국인 약화가 겹치며 +0.78%에서 청산됐습니다.
실리콘투는 저항 돌파 실패와 외국인 약화로 +0.12%에서 조기 청산됐습니다.
아난티는 고점 +1.48% 이후 약화 신호 4개가 겹쳐 +0.74%에서 보호매도가 발생했습니다.

이 구간에서는 손실 확대 방지는 정상적으로 동작했지만, 상승 이후 되돌림에서 청산되는 거래가 많다는 특징도 확인됐습니다.

8월 24일, 매매 전략이 아닌 주문 경로를 수정했습니다

8월 24일 프로그램 실행 중 오류가 확인된 뒤 단순히 화면만 보고 원인을 추측해서 매매 로직을 변경하지는 않았습니다.

로그와 호출 구조를 확인한 결과 키움 OpenAPI ActiveX가 UI/STA 스레드에서 생성되는 반면, 일부 주문·취소·조회 작업이 백그라운드 작업 경로에서 COM 객체를 직접 호출할 가능성을 점검할 필요가 있었습니다.

이번 수정의 목적은 매수전략을 바꾸는 것이 아니라 주문 API 호출과 프로그램 종료 과정의 안정성을 높이는 것 이었습니다.
1
SendOrder 호출 경로 단일화
주문과 주문취소의 실제 API 호출을 중앙 함수 한 곳으로 모았습니다.
2
UI/STA 스레드에서 주문 호출
OpenAPI ActiveX를 생성한 UI 스레드에서 주문 호출이 동기적으로 실행되도록 정리했습니다.
3
자동 재전송 금지
주문 전송 도중 예외가 발생하면 서버가 주문을 받았는지 확정하기 어렵기 때문에 임의로 재전송하지 않고 이후 자동주문을 차단하는 방식으로 변경했습니다.
4
종료 순서 보강
프로그램 종료가 시작된 뒤 신규 주문이나 조회가 들어가지 않도록 하고, 정리 작업 전에 ActiveX가 먼저 해제되지 않도록 종료 순서를 보완했습니다.
5
진단 로그 추가
주문 요청 건수와 실제 API 주문 호출 건수를 서로 비교할 수 있도록 진단 로그를 추가했습니다.

매수·매도 전략은 그대로 유지했습니다

주문 안정성 수정 과정에서 실거래 결과 자체가 달라지는 것을 막기 위해 아래 핵심 로직은 변경하지 않았습니다.

변경하지 않은 항목
  • 매수조건
  • 매도조건
  • 추가매수조건
  • 주문수량 계산
  • 종목 선정 전략
기존 처리 그대로 유지
  • 계좌 선택
  • 호가 정책
  • TradeReport
  • CSV 저장
  • 체결 이벤트 처리
수정 직후 검증
Debug 빌드는 오류 0건으로 완료됐고, 기존 경고 62건은 별도로 유지됐습니다. 정적 안전성 검증 12개 항목도 통과했습니다.

수정 후에는 주문 요청과 실제 호출 수를 비교했습니다

8월 24일 오후부터 28일까지는 프로그램이 주문을 요청한 횟수와 실제 OpenAPI의 SendOrder 호출 횟수를 계속 비교했습니다.

38건 주문 요청 합계
38건 실제 API 호출 합계
0건 확인된 호출 불일치
8월 24일 오후: 2 / 2
8월 25일: 8 / 8
8월 26일: 9 / 9
8월 27일: 8 / 8
8월 28일: 11 / 11
주문 요청 수와 실제 API 호출 수 일치
lifecycle 차단에 의한 주문 거절 0건
fail-closed 오류 latch 미발동
ORDER-AMBIGUOUS 및 REJECT 로그 0건
DisconnectedContext, RPC_E_SYS_CALL_FAILED 등 주요 COM 오류 문자열 미확인

적어도 이번 검증 구간에서는 주문 누락이나 중복 전송, COM 스레드 오류와 관련된 징후가 로그에서 확인되지 않았습니다.

수정 후 8월 25~28일 매매 기록

2026년 8월 25일

보호매도와 목표수익 매도 혼재

조건식 진입 3,360 · 신규매수 3
더즌은 고점 +0.53% 이후 약화 신호 4개가 발생해 +0.18%에서 보호매도됐습니다.
HPSP는 전일 보유분을 포함해 2주 청산, 로그 기준 +1.27% 구간에서 정리됐습니다.
GS건설은 +0.38%, 마이크로컨텍솔은 +0.40%에서 보호매도가 발생했습니다.
키다리스튜디오는 약화 신호 없이 상승하며 +2.10%에서 목표수익 매도가 실행됐습니다.
2026년 8월 26일

되돌림 방어가 계속 우선 적용

조건식 진입 3,815 · 신규매수 4
SK아이이테크놀로지는 저항 돌파 실패와 프로그램 약화, 당일고가 이탈이 감지되며 +0.05%에서 보호매도됐습니다.
한국전력은 고점 +1.11% 이후 일봉 지지 이탈과 프로그램 약화로 +0.39%에서 청산됐습니다.
태웅은 고점 +0.88% 이후 약화 신호 4개로 +0.42%, 씨에스윈드는 +0.21%에서 보호매도가 발생했습니다.
2026년 8월 27일

일부 종목은 다음 거래일까지 보유

조건식 진입 4,268 · 신규매수 4
SV인베스트먼트는 고점 +0.79% 이후 저항 돌파 실패와 고가 이탈로 +0.39%에서 청산됐습니다.
후성은 고점 +0.73% 이후 저항 돌파 실패와 프로그램 약화로 +0.27%에서 정리됐습니다.
미래에셋벤처투자는 16,200원에 매수된 뒤 당일 청산하지 않고 다음 거래일까지 보유했습니다.
2026년 8월 28일

주문 안정성과 매도 동작을 함께 확인

조건식 진입 3,231 · 신규매수 5
KBI메탈
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%에서 청산됐습니다.
이날 신규 매수 5건과 매도 체결 6건이 정상적으로 처리됐고, 추가매수 체결은 없었습니다.

추가매수가 실행되지 않은 이유도 확인했습니다

8월 28일 기준 5분봉 거래량 돌파와 저항 돌파 구조는 18회 감지됐지만 실제 추가매수 주문은 발생하지 않았습니다.

기능 오류 때문이라기보다 추가매수 전에 적용되는 여러 보수적인 필터에서 조건이 충족되지 않았기 때문입니다.

일봉 MA20 아래
로그 기록 기준 21,677회
일봉 회복추세 미충족
로그 기록 기준 13,149회
단주 SIG 미충족
로그 기록 기준 10,781회
장초반 구조 확인 대기
로그 기록 기준 54회

한편 같은 제외 사유가 반복 출력되면서 하루 로그가 4만5천 줄 이상 생성되는 문제도 확인했습니다.

따라서 다음 개선에서는 매수·매도 조건 자체를 바꾸기보다 동일한 추가매수 제외 사유의 로그 출력 주기를 줄이는 작업을 먼저 검토할 수 있습니다.

실제 거래와 가상 분석은 계속 분리해서 봅니다

실매매 프로그램에 새로운 조건을 바로 넣는 대신 실제 주문을 발생시키지 않는 가상매매와 Shadow 분석을 이용해 기존 필터가 좋은 종목을 지나치게 차단하고 있는지도 계속 확인하고 있습니다.

  • 어떤 종목에서 원래 매수 신호가 발생했는가
  • 필터에 막힌 종목은 이후 얼마나 상승했는가
  • 매수했다면 MFE와 MAE가 어느 정도였는가
  • 매도 이후 추가 상승이 얼마나 있었는가
  • 수익 종목과 손실 종목 사이에 반복되는 차이가 있는가

조건검색식 5종도 다시 비교할 예정입니다

현재는 키움 조건검색에서 사용하는 여러 조건식 결과도 별도로 확보해 실제 매매 관점에서 비교할 준비를 하고 있습니다.

비교 대상은 단순히 어느 조건식이 종목을 많이 포착하느냐가 아닙니다.

포착 품질
  • 조건식별 포착 종목 수
  • 조건식 간 중복 종목
  • 여러 조건식 동시 포착 여부
실제 주가 반응
  • 포착 이후 최대 상승률
  • 포착 이후 최대 하락률
  • 급등 종목 포함 비율
진입 가능성
  • 실제 장중 진입 가능한 시점이었는지
  • 기존 매수필터 통과 여부
실매매 연관성
  • 실제 매수 종목과의 관계
  • 수익·손실 종목의 조건식 차이

특히 여러 조건식에서 동시에 포착되는 종목이 한 조건식에서만 포착된 종목보다 실제 성과가 좋은지도 확인해볼 예정입니다.

이 기간에 확인한 가장 중요한 부분

1
주문 경로 안정성
수정 후 확인 구간에서는 주문 요청과 실제 API 호출 수가 일치했습니다.
2
보호매도는 정상 작동
대다수 거래에서 급격한 손실 확대보다 수익 보전과 되돌림 방어를 우선했습니다.
3
+2% 목표수익 사례 존재
여러 거래에서 TP1_2P 조건이 실제로 작동하는 것도 확인했습니다.
4
진입과 조기청산의 충돌 가능성
일부 종목은 매수 직후 바로 약화 신호가 발생했습니다. 특히 헥토파이낸셜처럼 진입 약 16초 뒤 보호매도가 발생한 사례는 진입 조건과 조기 보호매도 조건이 서로 충돌하고 있는지 추가 분석할 필요가 있습니다.

앞으로는 세 가지를 중점적으로 볼 예정입니다

1
좋은 종목을 필터가 막고 있는가
수익 가능성이 있었던 종목이 기존 매수필터에서 과도하게 제외되고 있는지 확인합니다.
2
매도 때문에 수익을 반납하고 있는가
매수 이후 실제 상승은 있었지만 조기 청산이나 되돌림으로 수익을 충분히 가져가지 못하는 구조인지 분석합니다.
3
조건검색 후보군을 개선할 수 있는가
현재 조건검색식보다 실제 급등 가능 종목을 더 효율적으로 포착하는 방법이 있는지 비교합니다.

이번 개발일지를 정리하면

이번 기간에는 새로운 전략을 추가하는 것보다 실제 운영 중 발생할 수 있는 주문 안정성 문제를 먼저 점검하고, 수정 후 실전 로그를 통해 다시 검증하는 작업에 더 많은 비중을 두었습니다.

동시에 실제 매매에서는 목표수익 +2%에 도달한 거래도 있었지만, 상당수 종목은 상승 이후 되돌림 과정에서 보호매도로 정리됐습니다.

그렇기 때문에 현재 단계에서 단순 승률이나 거래 횟수만 보고 전략이 완성됐다고 판단하기보다는, 좋은 진입을 놓치고 있는지, 매도가 너무 빠른지, 후보 종목을 만드는 조건검색 단계부터 개선할 부분은 없는지 를 계속 데이터로 확인하는 것이 더 중요하다고 보고 있습니다.

자동매매 프로그램을 만드는 과정은 한 번 조건을 만들어 끝내는 작업이 아니라 실제 데이터를 통해 문제를 발견하고 다시 검증하는 과정의 반복에 가깝습니다. 다음 기록에서는 조건검색식 비교와 실제 거래 데이터를 더 축적한 뒤 진입과 청산 구조를 다시 분석해볼 예정입니다.
투자 관련 안내

이 글은 개인적으로 개발 중인 자동매매 프로그램의 개발·운영 과정을 기록한 자료입니다. 특정 종목이나 투자전략의 매수·매도를 권유하기 위한 내용이 아닙니다.

본문에 표시된 거래별 수익률은 프로그램 로그에 기록된 판단 시점의 값이며, 실제 증권사 기준 최종 실현손익과 다를 수 있습니다. 실제 실현손익은 체결가격, 수수료, 제세금 등을 반영해 별도로 확인해야 합니다.

또한 과거 거래 결과나 특정 조건의 성과가 향후 동일하게 반복된다는 보장은 없습니다. 주식투자에는 원금손실 가능성이 있으며 투자 판단과 책임은 투자자 본인에게 있습니다.
반응형