4월 24일 매매 일지 -- 4승 무패 +29.4만원, 쿨다운 재진입 대덕전자 +7.82%와 구조 변경 첫날
금요일. BOTH_BULL 유지. 청산 4건 전원 수익(TRAILING_STOP), 승률 100%, 순손익 +294,100원(+5.55%)으로 이번 주 단일일 최대 수익을 기록했다. 대덕전자가 4/23 BE 청산 후 1일 쿨다운을 거쳐 재진입 → 당일 +7.82%(+114,800원)로 오늘의 MVP. HD현대일렉트릭은 09:09 진입 73분 만에 +6.11% D+0 청산, HPSP는 D+1 +5.27%, 현대로템은 D+2 +3.00%. 오늘은 매매 결과뿐 아니라 봇 구조가 크게 바뀐 첫날이기도 하다 — MAX_HOLDINGS 10→12, per-slot 예산 100만→150만이 장 시작부터 적용됐고, 자본 스윕 결과로 검토했던 섹터 쿼터는 기각됐다. 더하여 4/23 일지에 남긴 두 "미해결 숙제"가 실제로는 오진이었다는 사실도 정정한다.
시장 환경
| 지수 | 시가 → 마감 | 당일 흐름 |
|---|---|---|
| KOSPI (KODEX 200) | 98,355 → 98,120 (−0.24%) | 오전 혼조, 13:02 저점 97,010 후 반등 마감 |
| KOSDAQ (KODEX 코스닥150) | 19,715 → 20,295 (+2.94%) | 장 시작부터 지속 상승, 15:30 당일 최고가 마감 |
BOTH_BULL 유지 + KOSDAQ 단독 강세(+2.94%) 날. KOSPI는 13:02 −1.4% 조정 후 반등으로 거의 본전 마감이라 디커플링 흐름. 오늘 신규 진입 6건 중 반도체/중소형이 섞여 있어 KOSDAQ 강세를 직접적으로 수혜.
오늘의 시장 × 매매 타임라인
KOSPI 시각 매매 구간
98,355 09:01 (시가) BOTH_BULL 확인
98,560 09:09 HD현대일렉트릭 진입 1,194,000 초반 상승 타이밍
98,265 09:31 대덕전자 재진입 104,900 (쿨다운 복귀) 갭상승 직후
98,220 10:22 HD현대일렉트릭 TRAILING +6.11% (D+0) 상승 유지
98,220 10:28 대한전선 / HD한국조선해양 동시 진입 ← MH=12 효과 체감
98,100 11:27 HPSP TRAILING +5.27% (D+1) 횡보 진입
97,745 11:36 두산에너빌리티 재진입 126,900 소폭 조정 중
97,455 12:59 대덕전자 TRAILING +7.82% (D+0, 3h28m) 저점 근접
97,010 13:02 ── 당일 저점
97,625 13:29 현대로템 TRAILING +3.00% (D+2) 반등 초입
97,865 13:58 현대로템 재진입 247,000 반등 구간 (29분 만에)
98,120 15:30 (종가) V자 회복 마감
오늘 TRAILING 4건은 전부 KOSPI 상대적 조정 구간(10~13시)에 집중. 추세 모멘텀이 살아있는 포지션이 ATR×2% 트레일링 라인에 정상 터치되며 수익 확정 → 시장이 흔들릴 때 TRAILING이 수익 보호 장치로 설계대로 작동한 전형적 사례.
청산 내역 (4건) — 전원 TRAILING_STOP, 전원 흑자
| 시각 | 종목 | 진입가 | 청산가 | PnL | 사유 | 보유일 |
|---|---|---|---|---|---|---|
| 10:22 | HD현대일렉트릭 | 1,194,000 | 1,267,000 | +73,000 (+6.11%) | TRAILING_STOP | D+0 (73분) |
| 11:27 | HPSP | 51,200 | 53,900 | +78,300 (+5.27%) | TRAILING_STOP | D+1 |
| 12:59 | 대덕전자 | 104,900 | 113,100 | +114,800 (+7.82%) | TRAILING_STOP | D+0 (3h28m) |
| 13:29 | 현대로템 | 233,500 | 240,500 | +28,000 (+3.00%) | TRAILING_STOP | D+2 |
청산 손익 합계: +294,100원 (승/패 4/0, 승률 100%, 평균 +5.55%, PF ∞)
- 대덕전자 +7.82% (MVP, 쿨다운 재진입 사례): 4/21 99,160 진입 → 4/23 09:04 BE 99,300(+0.14%) 청산 → 1일 쿨다운 → 4/24 09:31 104,900 재진입 → 12:59 TRAILING 113,100. BE 청산가 대비 +5.65% 비싸게 재진입했음에도 추가 +7.82% 수익으로 마무리. "BE 청산은 리셋이고 손실이 아니다, 쿨다운 후 같은 종목 모멘텀이 살아 있으면 재진입이 정답"이라는 사례.
- HD현대일렉트릭 D+0 73분 +6.11%: 09:09 진입(K=0.565) 후 10:22 TRAILING. 73분이면 오늘 가장 빠른 회전 청산. 상승 강도가 ATR×2.5 TARGET까진 못 갔지만 트레일링 라인이 타이트하게 따라붙어 +6% 수익 확정.
- HPSP D+1 +5.27%: 4/23 12:07 51,200 진입(KOSPI 저점 근접의 위험한 타이밍으로 어제 일지에 경고했던 종목) → 오늘 11:27 53,900 청산. 어제 "가장 위험한 타이밍" 경고가 D+1에 바로 무너지며 수익 확정. 시장 타이밍은 위험했지만 개별 종목 모멘텀이 끌어올린 케이스.
- 현대로템 D+2 +3.00%: 4/22 233,500 진입 → 4/24 13:29 240,500 청산. 트레일링 라인 정상 체결. 29분 후 247,000에 즉시 재진입(후술).
매수 내역 (6건) — MH=12 반영 첫날, 신규 진입 다수
| 시각 | 종목 | 코드 | 진입가 | 수량 | 금액 | K | 비고 |
|---|---|---|---|---|---|---|---|
| 09:09 | HD현대일렉트릭 | 267260 | 1,194,000 | 1주 | 1,194,000 | 0.565 | 당일 +6.11% 익절 |
| 09:31 | 대덕전자 (재진입) | 353200 | 104,900 | 14주 | 1,468,600 | 0.644 | 쿨다운 1일 후 재진입 → +7.82% 익절 |
| 10:28 | 대한전선 | 001440 | 44,500 | 33주 | 1,468,500 | 0.451 | 전력/전선 섹터 신규 |
| 10:28 | HD한국조선해양 | 009540 | 473,000 | 3주 | 1,419,000 | 0.609 | MH=11→12 슬롯 사용 (구 MH=10이면 막혔을 진입) |
| 11:36 | 두산에너빌리티 (재진입) | 034020 | 126,900 | 11주 | 1,395,900 | 0.537 | 4/20 청산가 120,400 대비 +5.40%에 재진입 |
| 13:58 | 현대로템 (재진입) | 064350 | 247,000 | 6주 | 1,482,000 | 0.553 | 13:29 청산 240,500 → 29분 만에 재진입 |
총 매수 금액 약 843만원(6건 × 약 140만). 6건 중 3건이 재진입 케이스(대덕전자, 두산에너빌리티, 현대로템). 섹터 분포: 전력/중전기(HD현대일렉트릭·대한전선·두산에너빌리티) 3건, 반도체(대덕전자) 1건, 조선(HD한국조선해양) 1건, 방산(현대로템) 1건. 전력·중전기 비중이 눈에 띄게 높음 — 원전/전력망 테마의 장기 흐름과 연동된 것으로 해석.
🔁 재진입 3건 분석 — 쿨다운 복귀의 진가
- 대덕전자 (쿨다운 재진입, 완벽한 사례): 4/21 99,160 진입 → 4/23 BE +0.14% → 1일 쿨다운 → 4/24 104,900 재진입 → 같은 날 +7.82% TRAILING. 재진입가가 BE 청산가보다 +5.65% 비싸졌는데도 추가 +7.82% — "강한 종목은 쿨다운 후 다시 돌파한다"는 로직이 정확히 들어맞음. 이번 주 누적 이 종목만 +116,200원(+0.14% + 7.82%의 명목 합).
- 두산에너빌리티 (장기 쿨다운 재진입): 4/20 진입 114,100 → 4/23 TRAILING 120,400(+5.52%) → 즉시 쿨다운(TRAILING=0일)이지만 3일 공백 후 4/24 126,900 재진입. 2차전지→조선→반도체→전력의 섹터 로테이션 중 원전/에너지 모멘텀 재부활 시점을 포착.
- 현대로템 (같은 날 재진입, whipsaw 위험): 4/22 233,500 진입 → 4/24 13:29 240,500 TRAILING(+3%) → 29분 만에 247,000 재진입. 직전 매도가 대비 +2.7% 비싸게 들어갔지만 K=0.553에 BOTH_BULL·거래량 정상 → 같은 날 같은 종목 재진입 케이스로는 앞선 삼성전기(4/17)·삼성중공업(4/22) 후 세 번째. 이 포지션은 다음날(4/27 월요일) 초기 손절선과의 거리 관찰 필요.
⚙️ 오늘의 구조 변경 (장 시작 전 반영)
어제 저녁 자본 스윕 결과를 바탕으로 4가지 구조적 변경이 오늘 장 시작부터 적용됐다.
- MAX_HOLDINGS 10 → 12: 2024~2025 2년 백테스트 기준 PF 2.01→2.17(+8%), MDD −3.77%→−3.21%(−15% 개선), 샤프 3.20→3.48. 수익률/MDD 비율 29.5x로 최고. 오늘 10:28에 대한전선+HD한국조선해양 2종 동시 진입 슬롯으로 즉시 수혜 — 구 MH=10이었으면 한쪽이 막혔을 상황.
- per-slot 예산 100만 → 150만: 대형주(삼성전자·SK하이닉스 등) 편입 가능. 백테스트 성과에 부정적 영향 없음. 오늘 HD현대일렉트릭 1주(119만원), 대덕전자 14주(147만원) 등 슬롯당 거의 풀로 활용.
- 섹터 쿼터(MAX_PER_SECTOR) 검토 후 기각: 4/23 반도체 4종 동시 진입 이후 상관 리스크 우려로 검토. max=3/4/5 × 자본 그리드 20조합 재스윕 결과 — max=3은 MH≥10에서 MDD 악화(+30~40%), max=4/5는 자연 발생 빈도가 낮아 효과 없음. "통계 근거 없는 필터는 넣지 않는다"는 원칙으로 기각. 코드(`core/sector_map.py` 50종목 매핑)는 보존, `MAX_PER_SECTOR=None`으로 비활성.
- 예산 초과 가격 early-cut 도입: 1주 가격 > 스케일 예산이면 돌파/거래량 필터 전에 조기 제외 DEBUG 로그. 오늘 하루 221건 스킵. 효성중공업(3,220,000원/주) 같은 "후보로는 잡히지만 원천 매수 불가" 종목들을 스캔 초반에 정리해 로그/선정 슬롯 오염 방지.
🔁 어제(4/23) 일지 정정
4/23 일지(blog/12_*.html)의 "🐛 미해결 숙제" 섹션 2건이 실제 코드 확인 결과 오진이었음. 이미 게시된 상태라 소급 수정하지 않고 여기서 정정한다.
- "09:00~09:05 손절 공백 미패치"는 사실이 아님:
main.py:67-68에서_MARKET_OPEN = 09:00/_VB_BUY_START = 09:05로 이미 분리돼 있고,_is_market_session()이 09:00부터 True → 청산 판정은 장 시작 즉시 작동. 갭다운 케이스가 다시 와도 09:00 시점에 손절선 터치 여부 판정됨. 4/22 일지의 "미패치" 추측을 어제 4/23 일지 작성 시 코드 확인 없이 그대로 옮긴 것이 원인. - "Pension BEAR 비활성 = regime 판정 불일치"도 사실이 아님: 장외 시간(00:00~08:59)의
[PENSION] BEAR 장세 - 비활성로그는any_market_ok=False로 강제되는 의도된 동작. 진짜 버그는 장중에 따로 있었다 —strategy/bunt_pension.py:200_fetch_market_cap()에서 pykrxget_market_cap_by_ticker()반환 DataFrame의 컬럼 형식이 코드 기대값(`["시가총액", "상장주식수"]`)과 어긋나 "None of [Index(['종가', '시가총액', ...])] are in the [columns]" 에러 발생 → 유니버스 비어 매수 스캔 무효. DB에 bunt_pension 전략 trades 0건 (도입 이후 실전 매수 0회). 이것이 pension 전략이 가동되지 않은 진짜 원인이고, 다음 세션 우선 과제. - "오전 슬롯 만석 → 오후 반등 수혜 봉쇄" 내러티브도 근거 부족: 13:04~13:51 후보 종목 중 효성중공업은 1주 가격(3,220,000원) > 예산(1,500,000원)으로 원천 매수 불가(MH/슬롯 무관). HD건설기계·삼성중공업 재진입도 거래량 필터 탈락·당일 재진입 차단 등 다른 사유. 즉 4/23에 슬롯 만석으로 놓친 유의미한 기회는 사실상 0건. 직관은 맞았으나 증거는 없었다.
🐛 대덕전자 청산 알림 유실 + notifier 재시도 강화
대덕전자 12:59:38 청산(+114,800원) 당시 텔레그램 알림이 전송되지 않음. 원인: 12:59:48, 12:59:59 두 차례 모두 ConnectTimeout으로 실패 → 기존 _send()가 "2회 재시도 / 1초 간격"으로만 설계돼 있어 순간 장애를 못 막았다. HD현대일렉트릭(10:22)·HPSP(11:27)는 정상 송신됨 — 대덕전자 시점만 텔레그램 서버 측 일시 연결 장애.
운영 영향: 매매 체결 자체는 정상(DB/시트에 기록 정확), 사용자 측 실시간 가시성만 단절. 그럼에도 중요 청산을 놓칠 수 있으므로 장 마감 후 core/telegram_notifier.py 개선 + 봇 재시작 예정.
- 재시도 2회 → 5회, 간격 고정 1초 → exponential backoff (1s → 2s → 4s → 8s). 총 대기 15초 커버 → 순간 장애 대부분 흡수.
kind태그(buy/sell/regime/summary/watchlist/error) 도입 → 성공/실패 로그에 종류 표시.grep kind=sell로 매매 알림 송신 이력 추적 가능.- 성공 송신도 INFO 레벨 로그 추가 (기존엔 실패만 로그) → 사후 분석 용이.
- 최종 실패는 WARNING → ERROR로 격상 + 포기 시점 명시 로그.
- 장기 과제: 여러 봇(bunt_trader·autoTradingBot·cryptoTradingBot·etfSearch)이 중복 구현한 발송 로직을 큐 기반 통합 알림 시스템으로 리팩터링. 설계 문서는
~/projects/infra/notify/README.md에 남김. Phase 1(공용 SQLite 큐 + 워커 데몬)은 여유 있을 때 진행.
보유 종목 현황 (11종목, 종가 기준)
| 종목 | 진입가 | 진입일 | 보유일 | K | 섹터 |
|---|---|---|---|---|---|
| GS건설 | 43,100 | 4/21 | D+3 | 0.507 | 건설 |
| 에코프로머티 | 82,800 | 4/21 | D+3 | 0.531 | 2차전지 |
| 엘앤에프 | 195,800 | 4/21 | D+3 | 0.519 | 2차전지 |
| 한화오션 | 133,700 | 4/22 | D+2 | 0.484 | 조선 |
| SK하이닉스 | 1,251,000 | 4/23 | D+1 | 0.557 | 반도체 |
| SK스퀘어 | 753,000 | 4/23 | D+1 | 0.556 | 반도체 |
| 삼성전자 | 228,500 | 4/23 | D+1 | 0.477 | 반도체 |
| 대한전선 | 44,500 | 4/24 | D+0 | 0.451 | 전력 |
| HD한국조선해양 | 473,000 | 4/24 | D+0 | 0.609 | 조선 |
| 두산에너빌리티 (재진입) | 126,900 | 4/24 | D+0 | 0.537 | 전력 |
| 현대로템 (재진입) | 247,000 | 4/24 | D+0 | 0.553 | 방산 |
11종 중 D+0 신규 4종이 전부 이번 주 신규 섹터(전력 2, 조선 1, 방산 1). 반도체 3종(SK하이닉스·SK스퀘어·삼성전자)은 D+1 진입분이라 주말 갭 리스크 대상. 2차전지 2종(에코프로머티·엘앤에프)과 건설(GS건설)은 D+3으로 TIME_STOP(5영업일) 근접 관찰 구간 진입.
📊 인사이트
- 4승 무패 + 평균 +5.55% + PF ∞: 2024-01 이후 이 봇에서 가장 깨끗한 수익 일자 중 하나. TRAILING이 4건 전부 체결됐다는 건 매수 타이밍이 전부 "상승 중 초입"이었다는 뜻. 진입 후 일정 % 이상 수익 구간을 반드시 거친 포지션만 트레일링에 걸리므로.
- D+0 청산 2건 (HD현대일렉트릭 73분, 대덕전자 3h28m): 초단기 회전이 오늘 수익의 63%(187,800원) 기여. ATR 기반 트레일링이 단기 모멘텀에도 정확히 포착하는 사례.
- 재진입 3건 전부 성공 패턴: 대덕전자(쿨다운 후, 당일 +7.82% 익절 완료), 두산에너빌리티(3일 공백 후, D+0 관찰 중), 현대로템(29분 후, D+0 관찰 중). "재진입은 구조적 비용"이라는 앞선 우려와 달리, 백테스트 기간이 아니라 최근 2주 실전에서도 수익 기여도가 높음.
- KOSPI 횡보 vs KOSDAQ +2.94%: 디커플링 구간. 오늘 신규 6건 중 대덕전자(KOSDAQ)·HD현대일렉트릭·대한전선·두산에너빌리티 등 KOSDAQ/중형주가 상대적으로 많았음. 시장 흐름과 편입 종목 분포의 궁합이 맞았다는 사후 해석.
- 예산 초과 early-cut 221회 발동: 장중 2분 사이클 × 40여 종목 × 5~7시간 스캔 구간에서 총 221회 조기 스킵. 효성중공업·삼성전기 등 고가 대형주가 지속 스캔에 걸린 후보로 추정. 다음 세션에 종목별 집계 확인 예정.
내일(월 4/27) 체크포인트
- 🔴 pension
_fetch_market_cap()디버깅: pykrx 반환 DataFrame 컬럼 실제 형식 확인 + 코드 기대값과 매칭. 이 버그가 해결되지 않는 한 pension 전략은 계속 실매매 불가. 4/23 일지 오진 정정 이후 진짜 최우선 과제. - 🔴 보유 11종 월요일 오픈 관찰: 특히 D+0 신규 4종(대한전선·HD한국조선해양·두산에너빌리티·현대로템)은 초기 ATR×1.5 타이트 손절 구간. 갭다운 시 빠른 청산 판정 예상.
- 🟡 현대로템 같은 날 재진입 whipsaw 감시: 13:29 청산 → 13:58 재진입 패턴은 4/17 삼성전기·4/22 삼성중공업에 이은 세 번째. 월요일 재상승 이어가는지 vs 바로 눌리는지.
- 🟡 D+3 보유 3종(GS건설·에코프로머티·엘앤에프) TIME_STOP 근접: 5영업일 기준 D+5까지 +1% 미달 시 자동 청산. 월/화 사이 돌파 여부가 관전 포인트.
- ⚙️ notifier 패치 + 봇 재시작: 장 마감 후
scripts/start_live.sh실행. 재시도 5회/exp backoff, kind 태그, 성공 로깅이 월요일 첫 알림부터 반영. - 📊 주간 누적: 4/20 +1.5만 + 4/21 +27.1만 + 4/22 −13.9만 + 4/23 +14.7만 + 4/24 +29.4만 = 이번 주 +58.8만원. 우리로 단일 손실(-31만, 4/22) 제외 시 실질 +89.8만원. 5일 평균 +11.77만 (우리로 포함 기준).
소감
오늘은 "구조 변경이 첫날부터 수익에 직접 기여한 것을 목격한 날"이다. MH=12 증가는 10:28 2종 동시 진입 슬롯으로 즉시 활용됐고, 예산 150만 증액은 대형주(HD현대일렉트릭·대덕전자·HD한국조선해양)를 의미 있는 수량으로 담을 수 있게 했다. 그리고 섹터 쿼터는 백테스트 20조합 스윕에서 통계 근거 없음이 드러나 기각 — 직관과 데이터가 반대일 때 데이터를 따르는 게 왜 중요한지를 하루 차이로 체감했다. 동시에 어제 일지에 남긴 "미해결 숙제 2건"은 코드를 실제로 읽고 나서야 오진이었음을 발견했다. "지난 일지의 추측을 근거 없이 이월하지 말 것"이라는 원칙이 이 날의 숨은 교훈이다. 대덕전자 쿨다운 재진입은 이번 주 가장 아름다운 한 수였고, 그 수익이 현실 알림으로 닿지 못한 텔레그램 유실이 마지막 과제를 남겼다. 월요일에는 pension 버그와 notifier 패치를 모두 정리하고 시작한다.


'Project Archive > Quant & Auto Trading' 카테고리의 다른 글
| [자동매매] 실전운영 13일차 - 삼성중공업 TARGET +9.95%, 조선→반도체 섹터 로테이션으로 +14.7만원 회복 (0) | 2026.04.23 |
|---|---|
| [자동매매] 실전운영 12일차 - 우리로 손절 예정대로 발동, 그러나 5분 공백이 남긴 -21만원의 숙제 (0) | 2026.04.22 |
| [자동매매] 실전운영 11일차 - 승률 100% / 4건 모두 수익 청산, 포트폴리오 대규모 전환일 (0) | 2026.04.21 |
| [자동매매] 실전운영 10일차 - F3 필터 실전 데뷔, 쏠리드 TIME_STOP 확정 손실 (0) | 2026.04.20 |
| [자동매매] 실전운영 9일차 - 우리로 사건, 4개 과열 필터 도입 + 주봉 전략 착수 (0) | 2026.04.17 |
댓글