From 1d242cf77fbc85e6e9bfb85f1a11e7c732880b3c Mon Sep 17 00:00:00 2001 From: jongjae Date: Fri, 29 May 2026 15:33:34 +0900 Subject: [PATCH] =?UTF-8?q?[2026-05-29]=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-05-29.md | 131 ++++++++++++++++++ .../proposals/2026-05-29_strategy_proposal.md | 103 ++++++++++++++ 2 files changed, 234 insertions(+) create mode 100644 reports/daily/2026-05-29.md create mode 100644 reports/proposals/2026-05-29_strategy_proposal.md diff --git a/reports/daily/2026-05-29.md b/reports/daily/2026-05-29.md new file mode 100644 index 0000000..50637e0 --- /dev/null +++ b/reports/daily/2026-05-29.md @@ -0,0 +1,131 @@ +# 일일 결산 리포트 — 2026-05-29 + +## 요약 + +| 항목 | 값 | +|------|----| +| 총 거래 | 16회 (9개 종목) | +| 승/패 | 8승 8패 | +| 승률 | 50.0% | +| 순손익 | -58,467원 | +| 총 수수료 | 42,222원 | +| 수수료 전 손익 | -16,245원 | + +수수료가 오늘 손실의 **72%** 를 차지함. 시장 이동 자체는 -16,245원이었으나 16회 거래 수수료 42,222원이 손실을 3.6배 증폭. + +--- + +## 청산 사유 분포 + +| 사유 | 횟수 | 비율 | +|------|------|------| +| SL (손절) | 5 | 31.3% | +| TP1 (1차 익절) | 3 | 18.8% | +| TP2 (2차 익절) | 3 | 18.8% | +| TIME (시간 청산) | 3 | 18.8% | +| FORCE (강제 청산) | 2 | 12.5% | + +TP 적중률(TP1+TP2 합산): 37.5% — 신호 품질 자체는 나쁘지 않으나 SL/TIME/FORCE 비율이 높음. + +--- + +## 종목별 분석 + +| 종목 | 진입 횟수 | 결과 | 순손익 합산 | +|------|-----------|------|-------------| +| 소룩스(290690) | 1 | TP1+TP2 | +41,011원 | +| 피델릭스(032580) | 2 | TP→SL | +5,684원 | +| KBI메탈(024840) | 2 | TP→SL | +6,332원 | +| 대한해운(005880) | 3 | TIME→TIME→FORCE | +17,694원 | +| SK네트웍스(001740) | 2 | TIME→FORCE | -14,925원 | +| 한성크린텍(066980) | 1 | SL | -35,883원 | +| 흥아해운(003280) | 1 | SL | -36,814원 | +| 마키나락스(477850) | 1 | SL | -42,566원 | +| KBI메탈(024840) 재진입 포함 위 합산 | | | | + +**핵심 손실 3종목**: 마키나락스(-42,566) + 흥아해운(-36,814) + 한성크린텍(-35,883) = -115,263원. 이 3개 SL이 오늘 손실을 지배. + +--- + +## 과잉 거래 패턴 (중요) + +### 1. TIME 청산 후 즉시 재진입 문제 + +대한해운(005880)이 오늘 3회 진입: +- 09:21 진입 → 11:21:42 TIME 청산 +- 11:21:51 **9초 후** 재진입 → 13:21 TIME 청산 +- 13:22:01 **9초 후** 재진입 → 14:50 FORCE 청산 + +`TICKER_REENTRY_COOLDOWN_MIN = 60`이 설정되어 있으나, **쿨다운 기산점이 진입 시각**이기 때문에 2시간 보유 후 청산하면 60분 쿨다운이 이미 만료되어 즉시 재진입이 가능해짐. 로그에서 9초 후 재진입 확인. + +SK네트웍스(001740)도 10:46 TIME → 13:16 재진입 패턴. + +### 2. TP 이후 오후 재진입 → SL + +피델릭스(032580): 10:07 TP1+TP2 (+29,772) → 12:46 재진입 SL (-24,088) +KBI메탈(024840): 10:42 TP1+TP2 (+30,219) → 13:04 재진입 SL (-23,888) + +오전 모멘텀이 소멸된 종목에 오후 재진입해서 손실. 수익을 상당 부분 반납. + +### 3. 일중 SL 차단 작동 확인 + +13:16:41 로그에서 `SL차단` 정상 동작 확인: 한성크린텍, 흥아해운, 피델릭스, 마키나락스, KBI메탈, 흥아해운 전부 차단됨. + +--- + +## AI 필터 품질 + +- 오늘 모든 거래 `ai_boosted=0` +- AI 점수 확인: 대한해운 win=0.418, stop_loss=0.720 / SK네트웍스 win=0.405, stop_loss=0.780 +- **stop_loss 확률이 높게 나왔음에도 현재 관찰 모드라 차단 불가** +- 향후 AI 점수 기반 필터 적용 시 일부 오후 진입 차단 가능 + +--- + +## 실행 품질 + +- **KIS API 타임아웃 오류**: 14:21:38에 대한해운 청산 체크 중 `RuntimeError: KIS API 타임아웃 [FHKST01010100]` 발생. 강제 청산(14:50)으로 최종 처리됨. 모의투자 환경에서도 타임아웃이 발생하므로 실전 전환 전 재시도 로직 강화 필요. +- 가격 누락/제로 가격 없음 ✓ +- 미체결 포지션 없음 ✓ + +--- + +## 30거래일 누적 현황 (8거래일) + +| 날짜 | 거래수 | 순손익 | +|------|--------|--------| +| 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원 | +| **합계** | **114** | **-857,527원** | + +승률 41.2% / MDD -8.6% / 샤프 -22.53 + +--- + +## 실전 전환 조건 체크 + +| 조건 | 기준 | 현황 | 판정 | +|------|------|------|------| +| 누적 운영 | 30거래일 | 8일 | FAIL | +| 승률 | > 48% | 41.2% | FAIL | +| MDD | < -10% | -8.6% | PASS | +| 샤프 | > 1.0 | -22.53 | FAIL | +| L3 월 발동 | ≤ 2회 | 0회 | PASS | + +**실전 전환 조건 미충족 (2/5 통과)** + +--- + +## 전략 개선 제안 + +별도 파일 생성: `reports/proposals/2026-05-29_strategy_proposal.md` +- 제안 1: TIME/FORCE 청산 후 쿨다운 기산점 수정 +- 제안 2: 당일 TP 청산 종목 재진입 차단 + +**수동 승인 필요** — 코드 변경 전 검토 요망. diff --git a/reports/proposals/2026-05-29_strategy_proposal.md b/reports/proposals/2026-05-29_strategy_proposal.md new file mode 100644 index 0000000..e68ef85 --- /dev/null +++ b/reports/proposals/2026-05-29_strategy_proposal.md @@ -0,0 +1,103 @@ +# 전략 파라미터 변경 제안 — 2026-05-29 + +> **수동 승인 필요** — 이 파일은 제안서이며 코드 자동 수정 없음. +> 증거 기간: 8거래일 (30거래일 미만 → 증거 불충분 명시) + +--- + +## 제안 1: 재진입 쿨다운 기산점을 청산 시각 기준으로 변경 + +### 현재 동작 + +`TICKER_REENTRY_COOLDOWN_MIN = 60` 이 진입 시각 기준으로 적용됨. +2시간 이상 보유 후 TIME 청산하면 60분 쿨다운이 이미 만료 → 즉시 재진입 가능. + +### 오늘 확인된 문제 + +대한해운(005880): +- 09:21 진입 → 11:21:42 TIME 청산 (보유 120분) +- 09:21 + 60분 = 10:21 → 쿨다운 이미 만료 +- 11:21:51 **9초 후 재진입** → 반복 진입 3회 + +SK네트웍스(001740): +- 10:46 진입 → 12:46 TIME 청산 (보유 120분) +- 13:16 재진입 + +### 제안 변경 + +`app/main.py` 또는 전략 로직에서 재진입 쿨다운 기산점을 **진입 시각**이 아닌 **청산 시각** 기준으로 변경. + +```python +# 현재 추정 동작 (진입 시각 기준) +last_entry_time[ticker] + timedelta(minutes=COOLDOWN) < now + +# 제안 변경 (청산 시각 기준) +last_exit_time[ticker] + timedelta(minutes=COOLDOWN) < now +``` + +또는 더 단순하게: **TIME 또는 FORCE로 청산된 종목은 당일 재진입 금지**. + +### 증거 + +- 오늘 TIME 청산 후 재진입 케이스: 대한해운 2회, SK네트웍스 1회 +- 대한해운 3회 진입 합산 순손익: +17,694원 (긍정적이었으나 수수료 9,285원 부담) +- 재진입 방지 시 절감 가능 수수료: 약 6,346원 (2·3차 진입분) +- **증거 불충분**: 8거래일 기준. 통계적 유의성 없음. + +### 기대 효과 + +- TIME 청산 = 모멘텀 소멸 신호. 재진입 방지로 동일 종목 과잉 거래 억제. +- 수수료 절감 (진입·청산 왕복 수수료 반복 회피). + +### 리스크 + +- 실제로 대한해운이 오늘 2·3차 진입에서 순손익이 양수였으므로 기회 차단 가능성 존재. +- 단, 패턴의 재현 가능성은 낮고, TIME은 구조적으로 모멘텀 소멸을 의미. + +--- + +## 제안 2: 당일 TP 청산 종목의 오후 재진입 차단 + +### 현재 동작 + +TP1 또는 TP2로 청산된 종목은 재진입 차단 없음 (SL만 차단). + +### 오늘 확인된 문제 + +피델릭스(032580): 10:07 TP1+TP2 (+29,772) → 12:46 재진입 SL (-24,088) +KBI메탈(024840): 10:42 TP1+TP2 (+30,219) → 13:04 재진입 SL (-23,888) + +합산: 오전 TP 수익 +59,991원 → 오후 SL 손실 -47,976원으로 수익 80% 반납. + +### 제안 변경 + +**TP로 청산된 종목도 당일 재진입을 차단** (혹은 쿨다운 적용). + +옵션 A: TP 청산 후 당일 재진입 완전 금지 +옵션 B: TP 청산 후 `TICKER_REENTRY_COOLDOWN_MIN = 60` 쿨다운 적용 (SL과 동일 처리) +옵션 C: TP 청산 종목 재진입 시 포지션 배율 0.5× 자동 적용 + +### 증거 + +- 8거래일, TP 이후 재진입 케이스: 2건 (피델릭스, KBI메탈) +- 2건 모두 오후 재진입에서 SL 처리. +- **증거 불충분**: 2건. 통계적 유의성 없음. + +### 기대 효과 + +오전 수익 확정 후 모멘텀 소멸 구간에서의 재진입 방지. 수수료 절감. + +### 리스크 + +오후에 동일 종목이 2차 상승하는 경우 기회 차단. 그러나 빈도가 낮을 것으로 추정. + +--- + +## 우선순위 + +| 제안 | 우선순위 | 코드 변경 위치 | +|------|----------|---------------| +| 제안 1 (쿨다운 기산점) | 높음 | `app/main.py` — 재진입 체크 로직 | +| 제안 2 (TP 재진입 차단) | 중간 | `app/main.py` — 진입 허용 체크 | + +모두 `app/main.py` 수정이므로 **승인 필요**.