feat(stocks): v2.2.160-161 — 저평가 강조 + 224일선 회복 + 낙폭과대 키워드

영상(주식단테 시리즈) 기준을 /stocks discover에 정량 매핑:

v2.2.160:
- 저평가 키워드 2단계 추가 (PBR ≤ 1.0 = 저평가, ≤ 0.7 = 초저평가)
- 정렬 타이브레이커: 통과 키워드 수 desc → PBR asc
- 224회복 보너스 (가격 only): MA224 돌파 + 최근 30일 중 5일+ 아래에 머문 적
- yahooClient: fetchYahooHistory + evalMa224Recovery 신설

v2.2.161:
- 224회복 거래량 검증 추가 (최근 5일 평균 ≥ 60일 평균 × 1.2) — 거짓 돌파 필터
- 신규 낙폭과대 키워드: 1년 고점 대비 -25% AND 60일 저점에서 +10%
- yahooClient: YahooHistory에 volumes, evalDropRecovery 신설

chronicle: ADR-0025 추가.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 10:10:09 +09:00
parent 323537e12b
commit d206293a19
18 changed files with 1279 additions and 993 deletions
+34
View File
@@ -1,5 +1,39 @@
# Astra Patch Notes
## v2.2.161 (2026-05-22)
### 📈 /stocks discover — 낙폭과대 키워드 + 224회복 거래량 확인
- **신규 `낙폭과대` 키워드** ([evalDropRecovery](src/features/stocks/yahooClient.ts)): 영상(주식단테 "이미 빠진 종목 + 바닥 찍고 회복")의 정량화. 현재가 ≤ 1년 최고가 × 0.75(25%↓) AND 현재가 ≥ 60일 최저가 × 1.10(저점에서 10%↑) → `낙폭과대` +1. 224회복(추세 전환)과는 다른 각도 — 안전마진 + 반등 초입.
- **`224회복` 거래량 확인 강화** ([evalMa224Recovery](src/features/stocks/yahooClient.ts)): 기존 가격 조건에 더해 최근 5일 평균 거래량 ≥ 60일 평균 × 1.2 요구. 거짓 돌파(일시적 가격 튐) 필터. 거래량 데이터 부족 시 가격 조건만으로 판정(폴백).
- 추가 API 비용 없음 — `fetchYahooHistory`가 이미 1년 일봉을 가져오므로 거래량·1년 max·60일 min 계산만 추가.
- 결과 표시 예: `통과 (5): ROE, 수익성, 저평가, 224회복, 낙폭과대`.
- **신규 패키징:** `astra-2.2.161.vsix`.
---
## v2.2.160 (2026-05-22)
### 📈 /stocks discover — 저평가(PBR↓) 강조 + 224일선 회복 패턴 추가
- **저평가 2단계 키워드** ([stockDiscovery.ts:evaluateKeywords](src/features/stocks/stockDiscovery.ts)): 기존 `PBR`(≤1.5)는 유지. 추가로 PBR ≤ 1.0 = `저평가`, PBR ≤ 0.7 = `초저평가`. PBR 낮을수록 점수 자체가 +1~2 가산.
- **PBR 오름차순 타이브레이커**: 정렬 = 통과 키워드 수 desc → 동점 시 PBR asc. 같은 점수면 저평가 종목이 위로.
- **224일선 회복 보너스** (`224회복`): 영상(주식단테 "224일선 안착 = 추세 전환") 기준 정량화. 1차 통과 후보에 한해 Yahoo 1년 일봉 fetch → 현재 종가 ≥ 오늘 MA224 AND 최근 30거래일 중 5일 이상 MA224 아래에 머문 적 있으면 `224회복` 키워드 +1. 회복 직후 추세 전환 신호인 종목이 자연스럽게 상위로.
- **신규 모듈** ([yahooClient.ts](src/features/stocks/yahooClient.ts)): `fetchYahooHistory`(1년 일봉), `fetchAllHistories`(배치, 1초/심볼 throttle), `evalMa224Recovery`(rolling MA224 + 회복 판정).
- 비용: 1차 통과 후보(보통 20~50개)에만 시세 fetch → +20~50초 추가. 전체 1차후보엔 안 돌림.
- **신규 패키징:** `astra-2.2.160.vsix`.
---
## v2.2.159 (2026-05-22)
### 📦 재패키징 — 다른 머신의 2.2.158 코드 + chronicle 갱신을 이 머신 설치본으로 빌드
- 소스 변경 없음. `git pull` 로 받은 2.2.158 작업 트리(다른 머신의 v2.2.64~2.2.158 누적 작업 — LM Studio 발견·로그·CSP·chunked writer·info prompt 강화·답변 포맷 정리·god-file 분해·Stocks·대화 연속성 등)를 이 머신용 `.vsix` 로 패키징.
- **신규 패키징:** `astra-2.2.159.vsix`.
---
## v2.2.72 (2026-05-23)
### ⚡ LM Studio 통신 hardening + 속도 부스트 팩
한 turn 에 두 라운드 작업을 묶었다. (A) 통신 경로 안전망 9건 + (B) 속도 개선 4건.