본문 바로가기
Project Archive/Quant & Auto Trading

[자동매매] 실전운영 23일차 - 8일 0승 끊고 +67,200원 첫 익절, 인프라 V1/V2 양 시트 매매 전환

by 병헤는 밤 2026. 5. 11.
반응형

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/0410W/1L-240,000
5/0640W/4L-232,400
5/0720W/2L-87,000
5/0810W/1L(BE)0
5/1111W/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일째 미착수. 데이터 소스 교체 우선순위 재평가 필요.

내일 체크포인트

  1. 🔴 V2 첫 매수 후보 검증 — 5/12 09:00~ V2 30종 중 진입 조건 통과해 매수되는지. 발생 시 trades.source='v2' 기록 + V2 시트 row.HOLDING 갱신 + 5/12 16:00 cron의 HOLDING 보존 로직 자연 검증까지.
  2. 🔴 V1 16:30 cron 검증 — update_watchlist가 V2 disjoint 가드 발화해서 V2 30종 제외 로그 확인.
  3. 🟡 LG전자 D+6 진입 — 시간손절 임계 직전. -3% 미만 회복 못 하면 5/15 컷 후보.
  4. 🟡 pension overhaul 우선순위 — 11일째 BEAR 비활성. 키움 조건검색 교체 작업 일정 재논의.
  5. 2주 누적 후(5/25경) V1 vs V2 source별 PF/MDD/승률 1차 비교 — 표본 확보까지 데이터 누적만.

소감

8일 동안 손실만 쌓이던 흐름에서 단 1건의 트레일링 익절이 나왔다는 게 큰 의미는 없지만, 시스템이 무너진 게 아니라 시장 환경이 가혹했다는 점은 재확인된 날. 그보다 야간에 V2를 라이브 매매 시트로 승격하는 인프라 작업을 끝낸 게 오늘의 진짜 변화 — 추천 풀이 시장 흐름을 못 따라가는 문제를 데이터로 측정 가능한 구조로 만들었다. 5/12부터 V2 종목 매매 결과가 trades.source='v2'로 누적되기 시작하면, 2~4주 후엔 "어느 추천 풀이 진짜로 더 나은가"를 비교 가능한 형태로 확인할 수 있다.

 

5/11 일일 매매 내역

 

5/11 관심종목 교체 내역

반응형

댓글