From 57a0f686e14dcfe4809bc392295b11e9e7dcf8df Mon Sep 17 00:00:00 2001 From: jongjae Date: Mon, 1 Jun 2026 15:33:17 +0900 Subject: [PATCH] =?UTF-8?q?[2026-06-01]=20=EC=9E=A5=20=ED=9B=84=20?= =?UTF-8?q?=EA=B2=B0=EC=82=B0=20=EB=B0=8F=20=EC=A0=84=EB=9E=B5=20=EC=A0=9C?= =?UTF-8?q?=EC=95=88=EC=84=9C=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reports/daily/2026-06-01.md | 156 ++++++++++++++++++ .../proposals/2026-06-01_strategy_proposal.md | 133 +++++++++++++++ 2 files changed, 289 insertions(+) create mode 100644 reports/daily/2026-06-01.md create mode 100644 reports/proposals/2026-06-01_strategy_proposal.md diff --git a/reports/daily/2026-06-01.md b/reports/daily/2026-06-01.md new file mode 100644 index 0000000..87c72e7 --- /dev/null +++ b/reports/daily/2026-06-01.md @@ -0,0 +1,156 @@ +# 일일 결산 리포트 — 2026-06-01 + +## 요약 + +| 항목 | 값 | +|------|----| +| 총 거래 | 23회 (13개 종목) | +| 승/패 | 11승 12패 | +| 승률 | 47.8% | +| 순손익 (수수료 후) | -44,357원 | +| 수수료 합계 | 71,711원 | +| 수수료 전 순손익 | **+27,354원** | + +수수료 전 시장 이동은 +27,354원 **흑자**였으나 71,711원 수수료가 손실로 전환. 23회 거래 기준 평균 수수료 3,118원/회. 수익성의 최대 장애물은 전략이 아닌 수수료 구조. + +--- + +## 청산 사유 분포 + +| 사유 | 횟수 | 비율 | +|------|------|------| +| SL (손절) | 9 | 39.1% | +| TP2 (2차 익절) | 6 | 26.1% | +| TP1 (1차 익절) | 5 | 21.7% | +| TIME (시간 청산) | 3 | 13.0% | +| FORCE (강제 청산) | 0 | 0.0% | + +TP 적중률 (TP1+TP2): 47.8% — 신호 품질 자체는 양호. SL 비율 39.1%가 주요 손실 원인. + +--- + +## 종목별 분석 + +| 종목 | 진입 | 청산 | 순손익 | 비고 | +|------|------|------|--------|------| +| 대원전선(006340) | 09:20 | SL | -41,990원 | | +| **티이엠씨(425040)** | 09:20:21 | SL | -41,451원 | **8초 후 중복 진입** | +| **티이엠씨(425040)** | 09:20:29 | SL | -44,312원 | 합산 -85,763원 손실 | +| PS일렉트로닉스(332570) | 09:20:22 | TP1+TP2 | +49,383원 | | +| 아주IB투자(027360) | 09:23:47 | TP1+SL | +16,787원 | TP1 분할매도 | +| **SK네트웍스(001740)** | 09:27:19 | TP2 | +69,331원 | **1초 차이 중복 진입** | +| **SK네트웍스(001740)** | 09:27:20 | TP2 | +69,331원 | 합산 +138,662원 (중복이라 실제는 절반) | +| 대한광통신(010170) | 09:41:50 | TP1+TP2 | +23,858원 | | +| 한켐(457370) | 10:00:30 | SL | -48,523원 | | +| LG디스플레이(034220) | 10:00:51 | TP1+TP2 | +36,893원 | | +| 한온시스템(018880) | 10:05:36 | TIME | -12,922원 | API 오류로 청산 지연 | +| 흥구석유(024060) | 10:21:59 | TIME | -3,107원 | API 오류로 청산 지연 | +| 삼성전자우(005935) | 10:22:19 | TP1+TP2 | +20,561원 | | +| PS일렉트로닉스(332570) | 10:26:05 | SL | -41,412원 | 오전 TP 후 재진입 → SL | +| 대한광통신(010170) | 10:36:58 | SL | -38,864원 | 오전 TP 후 재진입 → SL | +| 메이슨캐피탈(021880) | 10:51:11 | SL | -30,571원 | | +| 대한전선(001440) | 10:56:15 | SL | -20,452원 | | +| SFA반도체(036540) | 10:58:30 | TIME | -6,897원 | API 오류로 청산 지연 | + +--- + +## 버그 및 실행 품질 이슈 (긴급) + +### 1. 티이엠씨 8초 재진입 버그 (Critical) + +티이엠씨(425040)가 09:20:21과 09:20:29에 8초 간격으로 **동시에 2개 포지션** 진입. +- 두 거래 모두 SL → 합산 -85,763원 +- `TICKER_REENTRY_COOLDOWN_MIN = 60` 설정이 있으나 **진입 직후 재진입이 차단되지 않음** +- 쿨다운 기산점 문제: 기존 포지션이 아직 열려있는 상태에서 동일 종목 신호가 또 발생하는 경우 차단 로직 미적용 추정 +- 동일 패턴을 이전 리포트에서도 확인 (2026-05-29: 대한해운 9초 재진입) + +### 2. SK네트웍스 1초 중복 진입 버그 (Critical) + +SK네트웍스(001740)가 09:27:19와 09:27:20에 **1초 차이**로 동일 수량(146주) 중복 진입. +- 오늘은 두 건 모두 TP2로 수익 → 문제가 숨겨짐 +- 실제로는 의도치 않은 2× 포지션 노출, 손절 시 2× 손실 발생 위험 +- 원인 추정: 매수 신호 처리 루프에서 동일 종목에 대한 중복 신호 방어 부재 + +### 3. KIS API Rate Limiting으로 청산 지연 (Important) + +12:18~12:22 사이 `초당 거래건수를 초과하였습니다` 오류 반복 발생: +- 포지션 2개(한온시스템, 흥구석유, SFA반도체) 동시 청산 체크 중 API 속도 제한 도달 +- SFA반도체의 경우 12:18부터 오류 → 12:58:33에서야 TIME 청산 처리됨 (약 40분 지연) +- 흥구석유도 유사한 지연 발생 +- 실전 전환 전 필수 수정 사항 + +--- + +## 패턴 분석 + +### 오전 TP 후 오후 재진입 → SL 반복 + +| 종목 | 오전 결과 | 재진입 | 재진입 결과 | +|------|-----------|--------|-------------| +| PS일렉트로닉스(332570) | TP1+TP2 (+49,383) | 10:26:05 | SL (-41,412) | +| 대한광통신(010170) | TP1+TP2 (+23,858) | 10:36:58 | SL (-38,864) | + +오전 모멘텀 소진 후 재진입하여 오전 수익의 대부분을 반납. 이전 보고서(2026-05-29)에서도 동일 패턴 발생. **당일 TP 청산 종목 재진입 차단 제안 반복 필요**. + +### TIME 청산 = 손실 패턴 + +3건의 TIME 청산 모두 손실: +- 한온시스템: -12,922원 (120분 보유) +- 흥구석유: -3,107원 (120분 보유) +- SFA반도체: -6,897원 (120분 보유) + +방향성 없는 종목이 120분 동안 수수료를 누적. MAX_HOLD_MIN 단축 검토 필요. + +--- + +## AI 필터 품질 + +- 오늘 전 거래 `ai_boosted=0` +- AI 관찰 모드 유지 중 — 진입 차단 권한 없음 +- 주요 손실 종목(티이엠씨, 한켐, 대한전선) AI 스코어 미확인 + +--- + +## 30거래일 누적 현황 (9거래일) + +| 날짜 | 거래수 | 순손익 | +|------|--------|--------| +| 2026-05-19 | 8 | -12,914원 | +| 2026-05-20 | 27 | -87,961원 | +| 2026-05-21 | 17 | -147,137원 | +| 2026-05-22 | 14 | -127,406원 | +| 2026-05-25 | 2 | -11,684원 | +| 2026-05-27 | 18 | -247,022원 | +| 2026-05-28 | 12 | -164,936원 | +| 2026-05-29 | 16 | -58,467원 | +| **2026-06-01** | **23** | **-44,357원** | +| **합계** | **137** | **-901,884원** | + +승률 42.3% / MDD -9.0% / 샤프 -21.53 + +--- + +## 실전 전환 조건 체크 + +| 조건 | 기준 | 현황 | 판정 | +|------|------|------|------| +| 누적 운영 | 30거래일 | 9일 | FAIL | +| 승률 | > 48% | 42.3% | FAIL | +| MDD | < -10% | -9.0% | PASS | +| 샤프 | > 1.0 | -21.53 | FAIL | +| L3 월 발동 | ≤ 2회 | 0회 | PASS | + +**실전 전환 조건 미충족 (2/5 통과)** + +--- + +## 전략 개선 제안 + +별도 파일 생성: `reports/proposals/2026-06-01_strategy_proposal.md` + +- 제안 1: 중복 진입 방어 로직 추가 (동일 종목 활성 포지션 존재 시 신규 진입 차단) +- 제안 2: 당일 TP 청산 종목 재진입 차단 (이전 2026-05-29 제안과 동일, 미적용 상태) +- 제안 3: KIS API 청산 체크 루프 스로틀링 (포지션 간 딜레이 추가) +- 제안 4: MAX_HOLD_MIN 축소 (120분 → 90분) 검토 + +**수동 승인 필요** — 코드 변경 전 검토 요망. diff --git a/reports/proposals/2026-06-01_strategy_proposal.md b/reports/proposals/2026-06-01_strategy_proposal.md new file mode 100644 index 0000000..387ffb4 --- /dev/null +++ b/reports/proposals/2026-06-01_strategy_proposal.md @@ -0,0 +1,133 @@ +# 전략 개선 제안서 — 2026-06-01 + +> 상태: 수동 승인 대기 +> 근거: 9거래일 / 137회 거래 +> 증거 충분도: 부족 (30거래일 미만) — 참고용, 적용 전 신중 검토 필요 + +--- + +## 제안 1: 동일 종목 활성 포지션 존재 시 신규 진입 차단 [긴급 버그 수정] + +### 현상 +- 티이엠씨(425040): 09:20:21 진입 후 **8초** 뒤 09:20:29에 동일 종목 재진입 +- SK네트웍스(001740): 09:27:19와 09:27:20에 **1초 차이** 중복 진입 +- 이전 보고서 패턴: 대한해운(005880) 9초 후 재진입 (2026-05-29) + +### 원인 +`TICKER_REENTRY_COOLDOWN_MIN`은 이전 **청산 시각**을 기준으로 계산되므로, 포지션이 아직 열려있는 상태에서 같은 종목의 신호가 다시 발생하면 차단되지 않음. + +### 제안 수정 +`app/main.py` 또는 진입 조건 체크 로직에서: +```python +# 현재 열려있는 포지션에 해당 종목이 있으면 진입 차단 +if ticker in active_positions: + continue +``` +이미 활성 포지션이 있는 종목은 신규 매수 신호를 무시. + +### 예상 효과 +- 티이엠씨 재진입 손실 -44,312원 방어 +- 중복 포지션으로 인한 2× 손실 리스크 제거 + +### 리스크 +- 없음 (명백한 버그 수정) + +--- + +## 제안 2: 당일 TP 청산 종목 재진입 차단 + +### 현상 (반복 패턴) +| 날짜 | 종목 | 오전 결과 | 재진입 결과 | +|------|------|-----------|-------------| +| 2026-06-01 | PS일렉트로닉스(332570) | TP1+TP2 (+49,383) | SL (-41,412) | +| 2026-06-01 | 대한광통신(010170) | TP1+TP2 (+23,858) | SL (-38,864) | +| 2026-05-29 | 피델릭스(032580) | TP1+TP2 (+29,772) | SL (-24,088) | +| 2026-05-29 | KBI메탈(024840) | TP1+TP2 (+30,219) | SL (-23,888) | + +총 4건 반복 확인. 매 발생 시 오전 수익의 60~85%를 반납. + +### 제안 수정 +TP2 청산 종목을 `today_tp_tickers` 집합에 추가하여 당일 재진입 차단. +```python +# TP2 청산 시 +if exit_reason == "TP2": + today_tp_tickers.add(ticker) + +# 진입 조건 체크 시 +if ticker in today_tp_tickers: + continue # 당일 TP 청산 종목 재진입 차단 +``` + +### 예상 효과 +- 6월 1일 기준: -80,276원 손실 방어 +- 5월 29일 기준: -47,976원 손실 방어 + +### 리스크 +- 오전 TP 후 오후에도 추가 모멘텀이 있는 케이스를 놓칠 수 있음 +- 증거 부족(4건): 장기 데이터 확보 후 통계적 검증 필요 + +--- + +## 제안 3: KIS API 청산 체크 루프 스로틀링 + +### 현상 +12:18~12:22 `초당 거래건수를 초과하였습니다` 오류 반복: +- 포지션 2~3개 동시 청산 체크 시 API 호출이 초당 한도 초과 +- SFA반도체: 12:18 오류 → 12:58 청산 (40분 지연) +- 실전에서는 손절가 아래로 더 내려가는 동안 청산 못하는 리스크 + +### 제안 수정 +```python +# 청산 체크 루프 내 포지션 간 딜레이 +for ticker in list(open_positions.keys()): + check_exit(ticker) + time.sleep(0.3) # 포지션당 300ms 딜레이 → 초당 최대 3건 +``` +또는 호출 실패 시 exponential backoff 재시도 로직 추가. + +### 예상 효과 +- API 속도 제한 오류 제거 +- 청산 체크 지연 방지 → 손절 정확도 향상 + +### 리스크 +- 체크 루프 주기가 약간 길어지나 (포지션 2개 기준 +600ms/사이클) 실질적 영향 미미 + +--- + +## 제안 4: MAX_HOLD_MIN 120분 → 90분 단축 검토 + +### 현상 +TIME 청산 3건 모두 손실: +- 한온시스템: -12,922원 (120분 보유) +- 흥구석유: -3,107원 (120분 보유) +- SFA반도체: -6,897원 (120분 보유) + +방향성 없는 종목을 2시간 보유하며 수수료만 누적. + +### 제안 수정 +```python +MAX_HOLD_MIN = 90 # 120 → 90분 +``` + +### 예상 효과 +- 불필요한 TIME 청산 손실 30분 조기 차단 +- 포지션 회전율 향상 → 오후 더 나은 기회 탐색 가능 + +### 리스크 +- 90~120분 사이에 TP를 달성하는 케이스도 차단될 수 있음 +- 증거 부족 (3건): 더 많은 TIME 청산 데이터 필요 +- 현재 증거로는 TIME 청산 90~120분 구간 TP 실적 불명확 + +--- + +## 우선순위 정리 + +| 우선순위 | 제안 | 유형 | 근거 강도 | +|----------|------|------|-----------| +| 1 | 활성 포지션 중복 진입 차단 | 버그 수정 | 명백한 버그 | +| 2 | KIS API 스로틀링 | 버그 수정 | 로그에서 확인 | +| 3 | 당일 TP 청산 종목 재진입 차단 | 전략 변경 | 4건 반복 패턴 | +| 4 | MAX_HOLD_MIN 단축 | 전략 변경 | 증거 부족 | + +제안 1, 2는 버그 수정 성격이므로 즉시 적용 권장. +제안 3, 4는 30거래일 데이터 확보 후 통계적 검증 필요.