# strategy_spec.md

- 문서명: Strategy Specification
- 프로젝트 코드명: **ACE-F v1** (AI Catalyst Event Engine — Free Data)
- 상태: Draft for Phase 0 Sign-off
- 버전: 0.1
- 작성일: 2026-03-12
- 목적: 무료 데이터만 사용하는 미국 주식 중단기 자동매매 시스템의 **범위, 목표, 운용 전제, 우선순위**를 고정합니다.

> 본 문서는 개발 기준서입니다. 법률·세무·투자자문 문서가 아니며, 실거래 전에는 브로커 정책과 시장 규정 재검증이 필요합니다.

## 1. 프로젝트 목적

본 프로젝트의 목적은 다음과 같습니다.

1. **무료 데이터만** 사용하여 미국 주식의 1~5거래일 중단기 이벤트 드리프트를 자동으로 탐지합니다.
2. LLM/AI는 가격 예측기가 아니라 **공시·뉴스·문서 해석기**로 사용합니다.
3. 전략의 중심은 **공식 이벤트 + 가격 반응 확인 + 리스크 통제**입니다.
4. 초기 버전은 **수익률 최대화보다 재현성, 운영 안정성, 확장 가능성**을 우선합니다.

## 2. 전략 정의

### 2.1 전략 한 줄 정의
**“공식 기업 이벤트가 발생했고, 그 이벤트의 질이 높으며, 첫 정규장 반응이 강하게 확인된 종목만 다음 세션에 진입하여 1~5거래일 보유하는 이벤트 기반 continuation 전략”**

### 2.2 전략 핵심 가설
- 기업이 직접 배포한 공시/첨부문서에는 구조적인 정보가 남아 있습니다.
- 무료로 구할 수 없는 sell-side 컨센서스가 없더라도, **회사의 자체 가이던스 대비 결과**, 수요/마진/백로그/고객 확대 등은 충분히 구조화할 수 있습니다.
- 모든 뉴스가 아니라 **회사 원문 + 가격 확인**이 붙은 사건만 거래하면 무료 데이터 환경에서도 실행 가능성이 높습니다.
- 유튜브/뉴스/검색량/소셜은 단독 진입 신호가 아니라 **관심 확산 속도(attention)** 를 측정하는 보조 레이어로 쓸 수 있습니다.

## 3. 범위 고정

### 3.1 포함 범위
- 시장: 미국 상장 주식
- 종목군: NYSE / Nasdaq 보통주 중심
- 보유기간: 기본 1~5거래일
- 전략 유형: 이벤트 기반 continuation swing
- 데이터 정책: **유료 데이터 금지**
- 모델 정책: 규칙 기반 + LLM 문서 해석 + 랭킹 모델 하이브리드

### 3.2 제외 범위
- 옵션, 0DTE, 레버리지 ETF, 선물, 암호화폐
- 순수 intraday scalp / 초단타 HFT
- X/Twitter API 의존 전략
- 유료 earnings estimate / transcript API 의존 전략
- 소셜만 보고 진입하는 전략
- 스크레이핑 정책이 불명확하거나 금지 가능성이 큰 비공식 소스 의존 구조

### 3.3 v1 거래 방향
- **실거래 v1은 롱 온리**
- 숏 이벤트 분류는 연구용으로는 수집하되, 자동 실거래 엔진에는 넣지 않습니다.
- 숏 전략은 borrow / locate / hard-to-borrow / 급등 squeeze 리스크 때문에 **Phase 8 이후 별도 엔진**으로 분리합니다.

## 4. 타겟 유니버스

### 4.1 기본 유니버스 조건
- 미국 보통주
- 주가 $15 이상
- 시가총액 $2B 이상
- 최근 20거래일 평균 거래대금 $50M 이상
- 평균 스프레드 과도 종목 제외
- 거래정지, 저유동성, 상장폐지 위험 종목 제외

### 4.2 초기 제외군
- ETF / ETN / ADR / SPAC
- low-float 테마주
- 초소형 바이오 / 단일 임상 의존 종목
- 만성적 희석(dilution) 이슈 종목
- 기업 원문보다 소셜 노이즈가 큰 종목

## 5. 핵심 이벤트 범위

### 5.1 v1에서 직접 거래하는 이벤트
1. **실적 발표 + 가이던스**
2. **8-K 기반 대형 계약/수주**
3. **명확한 제품/규제 승인**
4. **고객 확대/백로그/예약 증가가 명시된 기업 이벤트**

### 5.2 연구만 하고 실거래는 보류하는 이벤트
- 경영진 교체
- 자사주매입 단독 이벤트
- 배당 정책 변경
- M&A 루머
- analyst upgrade/downgrade
- 소셜 주도 밈 확산

## 6. 전략 구조

### 6.1 신호 구조
최종 랭킹은 아래 네 층으로 구성합니다.

1. **Event Quality Layer**
   - 문서 원문에서 이벤트의 질을 평가
   - 가이던스 방향성, 수요 강도, 마진 질, 고객 확대, one-off 여부 등

2. **Price Confirmation Layer**
   - 첫 정규장 반응일의 가격 강도 확인
   - 수익률, 거래량, 종가 위치, 갭 과열 여부, 섹터 상대강도

3. **Market Regime Layer**
   - 시장 전체의 risk-on / neutral / risk-off 상태
   - 지수 추세 및 변동성 필터

4. **Attention Overlay Layer**
   - Yahoo RSS, YouTube, Wikimedia, FINRA short volume 등으로 관심 확산 강도 보조 판정

### 6.2 기본 의사결정 규칙
- **공식 이벤트 없으면 거래하지 않습니다.**
- 공식 이벤트가 있어도 **가격 확인이 약하면 거래하지 않습니다.**
- attention이 강해도 공식 이벤트가 없으면 **거래하지 않습니다.**
- 이벤트 해석과 가격 해석이 충돌하면 **보수적으로 no-trade** 처리합니다.

## 7. 진입/보유/청산 원칙

### 7.1 진입 원칙
- 기본 진입은 **첫 정규장 반응일 마감 후 점수 계산 → 다음 세션 시초 부근 진입**
- 무료 데이터 기준 v1에서는 **초단타 ORB 진입을 핵심 엔진으로 채택하지 않습니다.**
- intraday ORB는 향후 add-on confirmation 용도로만 연구합니다.

### 7.2 보유기간 원칙
- 기본 보유: 2~3거래일
- 확장 보유: 최대 5거래일
- 강한 이벤트 + 강한 섹터 + 강한 attention이 동시에 있을 때만 5일 쪽으로 연장
- 기대한 follow-through가 없으면 조기 종료

### 7.3 청산 원칙
- 손절: 이벤트 반응일 저가 / ATR 기반 손절 중 보수적인 값 사용
- 일부 익절: +1.2R ~ +1.5R 구간에서 부분 청산 가능
- 잔여분: 전일 저가 이탈 또는 시간 청산
- 시간 청산: 최대 보유기간 초과 시 강제 종료

## 8. 계좌/실행 정책

### 8.1 계좌 정책
- v1 연구/시뮬레이션 기준 계좌는 미국 주식 계좌를 가정합니다.
- 전략은 **same-day round trip이 필수가 아닌 구조**로 설계합니다.
- 현금계좌 전용 daytrade 엔진은 v1 범위에 넣지 않습니다.
- 브로커는 Phase 6에서 최종 확정하되, Phase 1~6의 기본 reference는 **Alpaca paper** 입니다.

### 8.2 실행 정책
- 실거래 전까지는 **paper trading 우선**
- 주문 유형은 단순한 market / limit / stop 기반으로 제한
- VWAP/TWAP/DMA 같은 고급 실행은 v1 범위 밖
- 데이터 지연이나 주문 상태 불일치가 있으면 no-trade 또는 kill switch

## 9. 모델 정책

### 9.1 LLM 역할
- 공시와 첨부문서 해석
- one-off/비반복성 요인 탐지
- 가이던스 톤/수요 강도/고객 확대 등 구조화
- 거래 후 복기 자동화

### 9.2 LLM이 하지 않는 일
- raw price return 계산
- 컨센서스 추정치 계산
- 주문 가격 산정 단독 결정
- 무근거 방향 예측

### 9.3 최종 선택 로직
- 규칙 기반 필터 → LLM 구조화 → 숫자 feature 결합 → 랭킹 모델 → 포트폴리오 엔진 순으로 진행
- LLM 출력 단독으로는 주문을 허용하지 않습니다.

## 10. KPI와 성공 기준

### 10.1 전략 KPI
- 양의 기대값(Expectancy > 0)
- 보수적 슬리피지 반영 후 샤프 개선 여부
- MDD(최대낙폭) 허용 범위 내 유지
- 과도한 섹터 편중 없음
- 거래 빈도와 수익 기여가 소수 사례에만 의존하지 않을 것

### 10.2 운영 KPI
- 데이터 수집 실패율
- 파싱 실패율
- 주문 상태 불일치 건수
- 중복 주문 / 누락 주문 건수
- 수동 개입 비율
- paper/live 괴리 정도

### 10.3 Live 진입 전 게이트
- 최소 8주 이상의 안정적인 paper trading
- 치명적 운영 사고 0건
- 원인 설명 불가능한 대규모 손실 0건
- 후보 생성부터 복기까지 전체 파이프라인 자동 동작 확인

## 11. 명시적 비목표 (Non-goals)
- “매일 반드시 거래하는 전략” 만들기
- 유튜브/소셜 바이럴 종목만 쫓는 전략 만들기
- intraday 경쟁속도를 데이터 품질로 극복하는 전략 만들기
- 초기에 너무 많은 자산군/브로커/전략을 동시에 지원하기

## 12. Phase 0에서 동결하는 의사결정
- 무료 데이터만 사용
- 미국 주식만 사용
- 1~5거래일 이벤트 continuation이 메인
- 공식 이벤트 + 가격 확인이 핵심
- attention 데이터는 overlay
- 실거래 v1은 롱 온리
- same-day 필수 구조 금지
- paper trading을 거치지 않고 live로 가지 않음

## 13. Phase 1~2로 넘기는 오픈 항목
- 정확한 랭킹 가중치
- 섹터별 유니버스 미세 조정
- XBRL 기반 재무 feature 상세 정의
- 브로커 live 전환 시점
- LLM 모델 선택과 비용 상한

## 14. 변경 관리
- 본 문서의 변경은 `docs/strategy_spec.md` 버전업으로만 수행합니다.
- 범위 변경이 전략 구조를 흔드는 경우 `risk_policy.md`와 `data_source_policy.md`를 함께 갱신해야 합니다.
- v1 범위를 벗어나는 변경(예: 숏/옵션/유료 데이터 추가)은 **새 전략 버전**으로 분기합니다.

## 부록 A. 현재 전략의 핵심 외부 전제
- SEC EDGAR API는 인증 없이 filings/XBRL JSON 접근을 제공하고, 실시간 업데이트와 bulk 배포를 지원합니다.
- SEC는 공정접속을 위해 최대 접근률을 제한합니다.
- Alpaca Basic은 무료 기본 플랜이며, 주식의 무료 실시간 데이터는 IEX 중심입니다.
- YouTube, Wikimedia, Yahoo RSS 등은 attention overlay용 보조 레이어로만 사용합니다.

## 부록 B. 참고 링크
- SEC EDGAR APIs: https://www.sec.gov/search-filings/edgar-application-programming-interfaces
- SEC Developer Resources: https://www.sec.gov/about/developer-resources
- SEC Accessing EDGAR Data: https://www.sec.gov/search-filings/edgar-search-assistance/accessing-edgar-data
- Alpaca Market Data API: https://docs.alpaca.markets/docs/about-market-data-api
- Alpaca API rate limit support note: https://alpaca.markets/support/usage-limit-api-calls
- FINRA short sale volume: https://www.finra.org/finra-data/browse-catalog/short-sale-volume-data/daily-short-sale-volume-files
- Wikimedia pageviews: https://doc.wikimedia.org/generated-data-platform/aqs/analytics-api/reference/page-views.html
- YouTube quota cost: https://developers.google.com/youtube/v3/determine_quota_cost
- Google Trends API alpha: https://developers.google.com/search/apis/trends
- Yahoo Finance RSS: https://finance.yahoo.com/rss/
