Files
Stock-trading-programming/reports/proposals/2026-05-28_strategy_proposal.md
T

3.9 KiB

전략 파라미터 변경 제안 — 2026-05-28

상태: 승인 대기 (수동 검토 필요) 작성: Claude Evening / 2026-05-28


제안 1: ENTRY_START 추가 지연 — 09:15 → 09:20

현재값

ENTRY_START = "09:15"

제안값

ENTRY_START = "09:20"

근거

2026-05-27 제안을 적용해 09:05 → 09:15로 변경했으나, 오늘(05/28) 09:15:21(세미파이브), 09:15:30(LG디스플레이)에서 2건 모두 SL.

날짜 09:05~09:10 SL 09:15~09:20 SL 구간 손실
05/27 4건 (09:05 이전 기준) -183,969
05/28 2건 -88,364

이틀 연속으로 장 시작 직후 5분 내 진입 건이 전패. 변동성 돌파 신호가 개장 직후에는
호가 스프레드 확대 + 단기 허수 갭에 의해 오염된다는 패턴이 반복 확인됨.

09:20 이후 구간 오늘 성과: 10거래 / 승률 40% / -76,572원
→ SL 비율이 낮아지고 TP 비율이 높아지는 경향.

기대 효과

  • 장 초반 허수 브레이크아웃 추가 필터링
  • 일 손실의 50%+ 를 차지하는 09:15~09:20 구간 회피

위험

  • 09:15~09:20 진짜 모멘텀 신호 포기 가능
  • 근거: 이틀(2일) 데이터 → 여전히 통계적으로 불충분

증거 충분성

불충분하나 패턴 일관성 높음. 2거래일 연속 동일 구간 전패. 즉시 적용 권장.

구현

app/config.py 1줄 수정 — 승인 후 즉시 반영 가능.


제안 2: 섹터 필터 버그 수정 (main.py 수정 필요)

현상

daily_context.jsonavoid_sectors: ["건설업", ...] 명시에도 불구하고
대우건설(건설업, 047040)이 09:29에 진입됨. 손실 -31,752원.

근본 원인

app/main.py:736check_entry() 호출:

# 현재 코드
signal = self.strategy.check_entry(
    ticker=ticker,
    name=name,
    current_price=current,
)

sector= 인수가 누락되어 기본값 "" 전달.
app/strategy/volatility_breakout.py:173:

if sector and any(s in sector for s in avoid):  # sector가 ""이면 항상 스킵

avoid_sectors 필터가 현재 완전히 비작동 상태.

해결 방안

섹터 정보를 ticker에 매핑해야 한다. 두 가지 옵션:

옵션 A (권장 — 즉시 구현 가능): 유니버스 선정 시 KIS 종목 정보 API로 섹터를 받아
ticker_sectors dict를 빌드하고 check_entry 호출 시 전달.

옵션 B (단순): 섹터 체크를 check_entry 내부가 아닌 main.py 루프에서 직접 수행.
ticker_sectors dict가 없는 경우 universe 필터 단계에서 종목별 섹터 정보를 저장.

제안 수정 (옵션 A)

app/main.py 수정 — 별도 승인 필요.

# main.py 유니버스 빌드 시 섹터 저장 (기존 코드 확장)
# self.ticker_sectors: dict[str, str] = {}

# check_entry 호출 변경
signal = self.strategy.check_entry(
    ticker=ticker,
    name=name,
    current_price=current,
    sector=self.ticker_sectors.get(ticker, ""),
)

증거 충분성

버그 확인됨. 코드 레벨 확증. 수정 즉시 효과 발휘.

리스크

  • main.py 수정이 필요하므로 별도 승인 필요
  • 섹터 데이터 미확보 시 여전히 공백 — ticker_sectors 빌드 로직 추가 필요

우선순위 권고

순위 제안 난이도 즉시 적용
1 섹터 필터 버그 수정 중간 (main.py) X (승인 필요)
2 ENTRY_START → 09:20 낮음 (config.py) O

버그 수정이 더 중요하나 승인 필요. ENTRY_START는 바로 반영 가능.


검토 항목 (승인 전)

  • ticker_sectors 데이터를 어디서 채울지 확인 (KIS 종목 마스터 API 또는 universe fetch 시)
  • 옵션 A vs B 선택
  • ENTRY_START 09:20 적용 후 최소 3거래일 관찰