5월 11일 매매 일지 -- 8일 0승 끊고 +67,200원 첫 익절, 인프라 V1/V2 양 시트 매매 전환
월요일. KOSPI/KOSDAQ 모두 BEAR(BOTH_BEAR) 환경에서 청산 1건·매수 1건. 실현 순손익 +67,200원(기아 TRAILING_STOP 정상 동작, +5.07%). 5/4~5/8 누적 8건 0승 -559,400원 흐름을 끊는 첫 익절. 신규 LG이노텍 1주 진입은 시장 BEAR + 종목 BULL인 STOCK_ONLY(40%) 스케일이 단가 67.6만원과 만나 정확히 1주 경계에 걸린 사례. 인프라 측면에선 장 마감 후 작업으로 WATCHING_V2를 라이브 매매 시트로 승격 — V1·V2 disjoint 운영 + trades.source 태깅으로 A/B 비교 가능 구조 완성.
시장 환경
| 지수 | 판정 (09:24 진입 시점) |
|---|---|
| KOSPI | BEAR |
| KOSDAQ | BEAR |
3팩터 BOTH_BEAR 환경 — 종목만 BULL인 STOCK_ONLY(40%) 예산 스케일 적용. 5/8 BOTH_BULL에서 주말 사이 시장 전환. pension v1은 BEAR 비활성 587건 누적(거의 종일), pension v2 dry-run도 BEAR 일관. 8일째 BEAR/혼조 환경이지만 14:44 기아 청산에서 트레일링 익절 1건 성공으로 종목 자체의 추세는 유효함이 확인된 날.
청산 내역 (1건)
| 시각 | 종목 | 진입가 | 청산가 | PnL | 사유 | 보유 |
|---|---|---|---|---|---|---|
| 14:44:14 | 기아 (000270) | 165,600 | 174,000 | +67,200 (+5.07%) | TRAILING_STOP | D+3 |
청산 손익 합계: +67,200원 (1W/0L, 승률 100%, PF=inf, 평균 +5.07%)
- 기아 5/8 10:52 진입(BOTH_BULL, K=0.575) → 5/11 보유 3일째 +5%대 진입 후 트레일링 하한 도달로 청산. +3% BE 손절 → +5% 트레일링 시작 → 트레일링 하한 도달 흐름이 단계별로 정확히 작동한 사례. 단가 +8,400원에서 청산이라 ATR×2.5 목표(약 +9.4%)에는 미달했지만 트레일링이 익절 보호.
매수 내역 (1건)
| 시각 | 종목 | 진입가 | 수량 | 금액 | 비고 |
|---|---|---|---|---|---|
| 09:24:05 | LG이노텍 (011070) | 676,000 | 1주 | 676,000 | K=0.665 / VB=658,603 / 20일고가 649,000 / 09:20 돌파 감지·09:24 확인 진입 |
총 매수 676,000원. STOCK_ONLY(40%) 페널티 적용으로 예수금/9슬롯=1,771,851원 × 0.4 = 708,740원이 1주 단가(676,000원)를 살짝 넘는 경계라 정확히 1주만 체결. ALL_BULL(100%)이었다면 2주, OWN_BULL(75%)에선 1주로 동일. 단가가 67만원대인 단일 종목 매수의 한계가 BEAR 페널티와 만난 케이스. 손절 620,265(-8.2%, ATR×1.5 초기) / 목표 768,892(+13.7%).
🔭 특이 분석 — 8일 0승 → 첫 익절
| 날짜 | 거래 | 승/패 | 순손익 |
|---|---|---|---|
| 5/04 | 1 | 0W/1L | -240,000 |
| 5/06 | 4 | 0W/4L | -232,400 |
| 5/07 | 2 | 0W/2L | -87,000 |
| 5/08 | 1 | 0W/1L(BE) | 0 |
| 5/11 | 1 | 1W/0L | +67,200 |
5/4~5/8 누적 -559,400원의 8건 표본은 (a) F1~F5 필터로도 잡지 못한 정점 근접 진입 + (b) BOTH_BULL 환경의 후속 변동성 + (c) 단기 모멘텀 소진 종목들이 섞인 결과. 5/11 첫 익절은 기아 5/8 진입분이 주말 사이 +3% 회복 후 트레일링까지 살아남은 케이스 — 보유 D+3에서 트레일링이 작동했다는 점이 핵심(단순 ATR 손절이라면 -3.7% 부근에서 컷됐을 위치).
보유 종목 현황 (3종목)
| 종목 | 진입가 | 진입일 | 보유 | K / regime | 비고 |
|---|---|---|---|---|---|
| LG전자 (066570) | 153,300 × 9주 | 5/06 | D+5 | 0.590 / BOTH_BULL | 시간손절 임계 D+7(=5/15) 근접. -3% 미만 회복 못 하면 컷 후보 |
| POSCO홀딩스 (005490) | 527,000 × 3주 | 5/07 | D+4 | 0.537 / BOTH_BULL | 시간손절 임계 5/18 |
| LG이노텍 (011070) | 676,000 × 1주 | 5/11 | D+0 | 0.665 / BEAR | 신규 진입. STOCK_ONLY(40%) 페널티 1주 경계 사례 |
총 매입 3,634,300원. 섹터 분포는 전자/철강(POSCO)/전자부품(LG이노텍) — 5/11 시장 BEAR 환경에서도 종목 BULL 기준 진입은 유효. LG전자가 시간손절 임계(D+7=5/15)에 가장 가깝다.
🛠 인프라 변경 (장 마감 후 작업)
5/9 도입했던 WATCHING_V2 A/B 인프라가 매매 트랙 없이 추천 풀만 채우던 한계 발견. 오늘 야간에 V2를 라이브 매매 시트로 승격하는 인프라 작업 완료.
- DB: trades.source TEXT DEFAULT 'v1' 컬럼 추가. 기존 69건 백필.
- 큐레이션 도구: update_watchlist_v2 폐기(V1 mirror 역할 종료). curate_watchlist_v2가 V2 단독 wholesale 도구로 재구성 — HOLDING/DONE 보존, V1 disjoint(V1 종목 후보 제외), source='v2' 단일.
- update_watchlist(V1): V2 시트 종목 제외하는 disjoint 가드 추가.
- main.py: GSheetManager 인스턴스 2개(V1, V2) 동시 운영. 후보 풀은 V1 ∪ V2 합집합으로 평가, 매수/매도/메모/손절선 갱신은 row.source에 따라 dispatch. 매수 시 trades.source 자동 태깅.
- cron 순서: 16:00 curate_v2 --apply (V2 wholesale) → 16:30 update_watchlist (V1, V2 disjoint).
- 봇 21:26 재시작 후 첫 로그: "시트 로드 | V1: WATCHING=48 HOLDING=3 | V2: WATCHING=30 HOLDING=0" — 양 시트 합집합 78 후보로 5/12 가동 예정. 시트 직접 조회 검증에서 V1 ∩ V2 = 0(완벽 disjoint).
5/12부터 V2 종목 매수 발생 시 trades.source='v2' 자동 기록. 2~4주 누적 후 GROUP BY source로 V1 vs V2 PF/MDD/승률 1차 비교 가능. shadow paper 별도 인프라 없이 단일 계좌 실매매에서 비교 데이터 확보.
📊 인사이트
- 승률 100% / PF=inf는 거래 1건이라 통계적 의미 없음 — 8일 연속 0승 흐름을 끊었다는 점만 의미. 표본 부족.
- BE/트레일링 상향 시스템이 8일 만에 첫 작동 — 그동안은 ATR 손절 단계에서 컷됐던 종목들이 많아 BE/트레일링까지 가지 못함. 종목 자체가 D+3까지 +5% 살아남으면 시스템은 정확히 작동한다는 1건 검증.
- 시장 regime BEAR에서도 STOCK_ONLY 진입 가능 — LG이노텍 진입은 종목 자체의 BULL/돌파 시그널이 살아있는 한 BEAR 환경에서도 40% 페널티로 보수적 진입. 단가 67만원이라 단주 매수.
- 1주 매수 경계 사례 — 단가 67.6만원 × 40% 페널티가 1.048주에 걸렸음. ALL_BULL이었다면 2주(1.34M) 매수. 단가 고가 종목 진입의 변동성을 BEAR 페널티가 더 키운다.
- LG전자 시간손절 임계 근접 — D+5에서 +0.5% 부근 횡보. D+7(5/15)까지 -3% 미만으로 회복 못 하면 TIME_STOP 발화. 4/29에 임계값을 +1% → -3%로 완화했으므로 횡보 종목에 가혹하지 않게 작동할 예정.
🐛 미해결 숙제 — pension BEAR 587건 비활성 지속
pension v1/v2 모두 BEAR 환경 비활성 로그 587건 누적(5/11 종일). 4/30 합의된 키움 조건검색 ka10171~174 교체(메모리 [Pension Overhaul]) 미착수 상태. 데이터 소스 결함이 8일째 잠재 이슈로 누적 중.
오늘의 교훈
확인한 것
- BE → 트레일링 → 트레일링 하한 청산 흐름이 D+3 종목에서 정확히 작동. ATR 손절만으로는 +5% 익절 보호 불가.
- BOTH_BEAR 환경에서도 종목 BULL 시그널은 매수 후보로 살아남는다(STOCK_ONLY 40% 페널티 적용).
- 장 마감 후 인프라 변경 + 봇 재시작 흐름 정상 — 양 시트 로드 첫 사이클에서 V1(48)+V2(30)=78 후보 정상 인식.
경계할 것
- 1건 익절로 통계적 결론 금지. 8일 0승 → 1승은 흐름이 살짝 풀린 신호일 뿐, 추세 회복 판단엔 표본 부족.
- 단가 고가 종목 + BEAR 페널티 = 1주 단주 매수 — 슬리피지/체결 리스크가 단주에선 더 크다. 단가 50만원+ 종목은 매수 후보에서 사전 필터링 검토할지 누적 표본 확인 후.
- pension BEAR 587건 — 4/30 합의 후 11일째 미착수. 데이터 소스 교체 우선순위 재평가 필요.
내일 체크포인트
- 🔴 V2 첫 매수 후보 검증 — 5/12 09:00~ V2 30종 중 진입 조건 통과해 매수되는지. 발생 시 trades.source='v2' 기록 + V2 시트 row.HOLDING 갱신 + 5/12 16:00 cron의 HOLDING 보존 로직 자연 검증까지.
- 🔴 V1 16:30 cron 검증 — update_watchlist가 V2 disjoint 가드 발화해서 V2 30종 제외 로그 확인.
- 🟡 LG전자 D+6 진입 — 시간손절 임계 직전. -3% 미만 회복 못 하면 5/15 컷 후보.
- 🟡 pension overhaul 우선순위 — 11일째 BEAR 비활성. 키움 조건검색 교체 작업 일정 재논의.
- 2주 누적 후(5/25경) V1 vs V2 source별 PF/MDD/승률 1차 비교 — 표본 확보까지 데이터 누적만.
소감
8일 동안 손실만 쌓이던 흐름에서 단 1건의 트레일링 익절이 나왔다는 게 큰 의미는 없지만, 시스템이 무너진 게 아니라 시장 환경이 가혹했다는 점은 재확인된 날. 그보다 야간에 V2를 라이브 매매 시트로 승격하는 인프라 작업을 끝낸 게 오늘의 진짜 변화 — 추천 풀이 시장 흐름을 못 따라가는 문제를 데이터로 측정 가능한 구조로 만들었다. 5/12부터 V2 종목 매매 결과가 trades.source='v2'로 누적되기 시작하면, 2~4주 후엔 "어느 추천 풀이 진짜로 더 나은가"를 비교 가능한 형태로 확인할 수 있다.


'Project Archive > Quant & Auto Trading' 카테고리의 다른 글
| [자동매매] 실전운영 22일차 - 0원, BE 컷 1건과 기아 신규 매수, 보유 3종목 평가 -8,700원 (0) | 2026.05.11 |
|---|---|
| [자동매매] 실전운영 21일차 - (1) | 2026.05.07 |
| [자동매매] 실전운영 20일차 - -232,400원, 이상 급등장 첫 영업일에 TIME_STOP 3건 + STOP_LOSS 1건 동시 발동 (0) | 2026.05.07 |
| [자동매매] 실전운영 19일차 - -240,000원, 대우건설 단일 STOP_LOSS와 강세장 매수 0건의 답답한 월요일 (2) | 2026.05.05 |
| 실전 매매 누적 리포트 (2026-04-10 ~ 04-30) (0) | 2026.05.01 |
댓글