You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.5 KiB
Markdown
75 lines
2.5 KiB
Markdown
# Attention Overlay Architecture
|
|
|
|
## 목표
|
|
공식 문서와 가격 반응으로 생성된 `trade_candidates` 에 대해, 추가적인 **리테일 관심도 / 미디어 확산 / crowding** 신호를 계산해 `overlay_score` 를 부여한다.
|
|
|
|
## 설계 원칙
|
|
1. Overlay는 **후행 확인 신호** 다.
|
|
2. Overlay 데이터는 소스별 신뢰도 가중치를 갖는다.
|
|
3. Overlay는 결측이 많을 수 있으므로 sparse-friendly 하게 설계한다.
|
|
4. Overlay는 독립 장애 도메인으로 분리한다.
|
|
5. Overlay feature는 모두 타임스탬프와 source provenance를 남긴다.
|
|
|
|
## 상위 구조
|
|
```text
|
|
source adapters
|
|
├── yahoo_rss_adapter
|
|
├── youtube_overlay_adapter
|
|
├── wikimedia_adapter
|
|
├── google_trends_adapter (experimental)
|
|
└── finra_overlay_loader
|
|
|
|
normalized events
|
|
├── headline_mentions
|
|
├── video_mentions
|
|
├── pageview_timeseries
|
|
├── trend_topic_timeseries
|
|
└── crowding_metrics
|
|
|
|
entity resolution layer
|
|
├── symbol ↔ company aliases
|
|
├── symbol ↔ wikipedia page
|
|
├── symbol ↔ youtube mention matcher
|
|
└── symbol ↔ trend topic map
|
|
|
|
feature builder
|
|
├── headline burst
|
|
├── publisher breadth
|
|
├── youtube influence score
|
|
├── pageview shock
|
|
├── theme heat
|
|
└── crowding stress
|
|
|
|
overlay scorer
|
|
├── overlay_score
|
|
├── overlay_confidence
|
|
├── hold_extension_hint
|
|
└── add_on_eligibility
|
|
```
|
|
|
|
## 데이터 흐름
|
|
1. Phase 2/3에서 `trade_candidates` 생성.
|
|
2. overlay adapters가 소스별 raw 수집.
|
|
3. entity resolution이 종목 단위로 정규화.
|
|
4. feature builder가 observation window 기준 feature 생성.
|
|
5. overlay scorer가 각 후보에 score 부여.
|
|
6. backtester/live trader가 score를 사용해 ranking, sizing, holding rule 조정.
|
|
|
|
## 장애 격리
|
|
- overlay adapter 실패는 core signal 생성에 영향 주지 않는다.
|
|
- 특정 소스 실패 시 나머지 소스로 점수 계산 가능해야 한다.
|
|
- 모든 overlay feature가 누락되면 `overlay_mode=disabled` 로 자동 강등한다.
|
|
|
|
## 추천 배치 순서
|
|
- T day 18:30 ET: Yahoo RSS / FINRA 수집 완료
|
|
- T day 20:00 ET: Wikimedia/YouTube/Trends 업데이트
|
|
- T day 20:30 ET: overlay feature build
|
|
- T day 21:00 ET: candidate rerank
|
|
|
|
## 사용 방식
|
|
- `candidate_rank_score = core_score * 0.85 + overlay_score * 0.15`
|
|
- 또는 core score bucket 내 tie-breaker
|
|
- 또는 holding period extension/trim decision only
|
|
|
|
v1 권장: **tie-breaker + hold adjustment only**
|