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.
448 lines
10 KiB
Markdown
448 lines
10 KiB
Markdown
# 1. 전략 정의
|
|
|
|
## 전략 이름
|
|
|
|
**PER-v1 (Post-Event Reversal v1)**
|
|
|
|
## 전략 목적
|
|
|
|
SEC 공시 직후 강하게 반응한 종목 중,
|
|
**초기 반응이 과도했고 다음 거래일에 follow-through가 약한 경우**를 골라
|
|
**1~3거래일 mean reversion**을 노립니다.
|
|
|
|
## 기본 철학
|
|
|
|
이 전략은 “이벤트가 좋으냐”보다 아래를 더 중요하게 봅니다.
|
|
|
|
* 반응이 **너무 강했는가**
|
|
* 다음 날 **추가 매수세가 약한가**
|
|
* 이미 **좋은 뉴스가 가격에 과반영되었는가**
|
|
* 그 종목이 **1~3일 안에 되돌릴 가능성**이 높은가
|
|
|
|
즉, 기존 전략의
|
|
|
|
* high score
|
|
* strong reaction
|
|
* next-open 추격
|
|
|
|
이 오히려 손실로 이어졌던 구조를 반대로 쓰는 것입니다.
|
|
|
|
---
|
|
|
|
# 2. 어떤 종목만 거래할지
|
|
|
|
처음에는 아주 좁게 가는 게 맞습니다.
|
|
|
|
## 유니버스
|
|
|
|
* 미국 보통주만
|
|
* NYSE / Nasdaq
|
|
* 가격 $10 이상
|
|
* 최근 20일 평균 거래대금 충분히 큰 종목만
|
|
* 저유동성 바이오 / low-float / memestock 제외
|
|
* ADR / ETF / SPAC 제외
|
|
|
|
## 이벤트 타입
|
|
|
|
v1에서는 아래만 허용합니다.
|
|
|
|
* `earnings_release`
|
|
* `guidance_update`
|
|
|
|
초기에는 **material_contract도 제외**하는 게 좋습니다.
|
|
표본이 너무 적고, 반응 구조가 실적 이벤트와 다를 가능성이 큽니다.
|
|
|
|
## 차단 이벤트
|
|
|
|
아래는 제외합니다.
|
|
|
|
* `unknown event_type`
|
|
* `management_change`
|
|
* `other_material_event`
|
|
* `oneoff risk high`
|
|
* parse confidence 낮음
|
|
* direction unknown
|
|
|
|
즉, **이벤트 자체가 애매한 종목은 거래하지 않습니다.**
|
|
|
|
---
|
|
|
|
# 3. 전략 가설
|
|
|
|
이 전략은 아래 상황을 노립니다.
|
|
|
|
1. 공시가 나왔다
|
|
2. 시장이 반응일에 너무 강하게 샀다
|
|
3. 그런데 다음 거래일 초반/당일 흐름이 약하다
|
|
4. 그러면 좋은 뉴스가 이미 충분히 반영되었을 가능성이 높다
|
|
5. 1~3일 안에 평균 회귀가 나온다
|
|
|
|
즉, 이 전략은
|
|
**“좋은 뉴스 = 추가 상승”** 이 아니라
|
|
**“좋은 뉴스 + 과열 반응 + follow-through 부재 = 단기 되돌림”**
|
|
이라는 가설입니다.
|
|
|
|
---
|
|
|
|
# 4. 신호 구조
|
|
|
|
이 전략은 기존 continuation 점수를 그대로 쓰면 안 됩니다.
|
|
이번에는 아예 별도 점수로 분리해야 합니다.
|
|
|
|
## 핵심 신호 4개
|
|
|
|
### A. Overreaction Score
|
|
|
|
반응일에 얼마나 과열되었는지를 봅니다.
|
|
|
|
예시 구성:
|
|
|
|
* reaction_day_return 높음
|
|
* close_location 높음
|
|
* volume_ratio_20d 높음
|
|
* gap_up 큼
|
|
* high-to-close extension 큼
|
|
|
|
즉, “이날 너무 강하게 갔는가”를 측정합니다.
|
|
|
|
---
|
|
|
|
### B. Exhaustion Score
|
|
|
|
다음 날 follow-through가 약한지를 봅니다.
|
|
|
|
예시:
|
|
|
|
* D+1 open이 reaction_day_close 대비 높게 시작했지만
|
|
* D+1 intraday에서 밀림
|
|
* D+1 close가 open 또는 VWAP 아래
|
|
* D+1 close가 reaction_day high 아래에서 약하게 마감
|
|
|
|
무료 데이터 제약 때문에 intraday를 못 보면 일봉 근사도 가능합니다.
|
|
|
|
예:
|
|
|
|
* D+1 close < D+1 open
|
|
* D+1 high만 찍고 음봉 마감
|
|
* D+1 close < reaction_day_close
|
|
|
|
---
|
|
|
|
### C. Event Overpricing Score
|
|
|
|
문서 품질은 좋더라도, 시장 반응이 그보다 더 강했는지 봅니다.
|
|
|
|
예:
|
|
|
|
* event_quality는 높지만
|
|
* price reaction이 과도하게 큼
|
|
* guidance는 좋아도 숫자 자체는 폭발적이지 않음
|
|
* oneoff는 아니지만 valuation stretch가 큼
|
|
|
|
즉, 문서와 가격 반응의 **불균형**을 보는 것입니다.
|
|
|
|
---
|
|
|
|
### D. Reversal Confirmation Score
|
|
|
|
진짜로 뒤집히는지 확인합니다.
|
|
|
|
예:
|
|
|
|
* D+1 close가 reaction_day midpoint 아래
|
|
* D+1 close가 reaction_day high 근처 안착 실패
|
|
* D+2 early weakness
|
|
|
|
v1에서는 너무 복잡하게 말고
|
|
**D+1 약세 확인** 정도만 써도 충분합니다.
|
|
|
|
---
|
|
|
|
# 5. 진입 규칙
|
|
|
|
## v1 기본 진입
|
|
|
|
**D+1 close 기준 확인 → D+2 open 숏 진입**
|
|
|
|
이유는 단순합니다.
|
|
현재 데이터상으로 “next-open 추격”은 continuation에서 불리했으므로,
|
|
reversal에서는 반대로 **D+1 약세가 실제로 확인된 뒤** 들어가는 것이 맞습니다.
|
|
|
|
## 구체 룰
|
|
|
|
아래를 모두 만족할 때만 진입:
|
|
|
|
1. event_type = earnings_release 또는 guidance_update
|
|
2. event_direction = bullish
|
|
3. oneoff_penalty 낮음
|
|
4. parse_confidence 충분
|
|
5. reaction_day_return이 상위 구간
|
|
6. D+1 close < D+1 open
|
|
7. D+1 close < reaction_day_close
|
|
8. D+1 close가 reaction_day high breakout 유지 실패
|
|
|
|
이 조건이면
|
|
“좋은 뉴스가 나왔는데도 다음 날 더 못 간다”는 뜻이므로,
|
|
되돌림 가설에 맞습니다.
|
|
|
|
---
|
|
|
|
# 6. 더 단순한 대안 진입
|
|
|
|
숏 체결/borrow 문제가 부담되면, 같은 논리를 **롱 회피 전략**으로 먼저 쓸 수도 있습니다.
|
|
|
|
즉,
|
|
|
|
* continuation long 전략에서
|
|
* 과열 + D+1 약세 확인 종목은 그냥 **long 금지**
|
|
|
|
이건 바로 production 필터로 넣을 수 있습니다.
|
|
|
|
그리고 그 다음 단계에서만 reversal short로 확장해도 됩니다.
|
|
|
|
즉, 개발 순서는 이렇게 가는 게 좋습니다.
|
|
|
|
1. **Long Avoidance Filter**
|
|
2. **Paper Short Reversal**
|
|
3. **Small Capital Short Live**
|
|
|
|
---
|
|
|
|
# 7. 청산 규칙
|
|
|
|
이 전략은 long continuation보다 더 짧게 가져가야 합니다.
|
|
|
|
## 기본 보유기간
|
|
|
|
* 최대 3거래일
|
|
* 권장 기본은 2거래일
|
|
|
|
## 기본 청산
|
|
|
|
### 1) 시간 청산
|
|
|
|
* D+2 진입이면 D+3 또는 D+4 종가 청산
|
|
* 무조건 짧게
|
|
|
|
### 2) 타겟 청산
|
|
|
|
* 반응일 과열분의 일부만 먹으면 됨
|
|
* 1R 또는 1.2R 정도면 충분
|
|
|
|
### 3) 실패 청산
|
|
|
|
* D+2에 바로 반등해버리면 빠르게 손절
|
|
* reversal이 안 나오는 종목은 오래 끌 이유가 없음
|
|
|
|
## 중요한 점
|
|
|
|
이 전략은 continuation보다 더 “타이밍” 중심이므로
|
|
**시간 손절이 하드 손절만큼 중요**합니다.
|
|
|
|
---
|
|
|
|
# 8. 손절 규칙
|
|
|
|
v1에서는 너무 넓은 ATR stop보다, 구조적 손절이 더 낫습니다.
|
|
|
|
## 권장 손절
|
|
|
|
* D+1 high 돌파 시 손절
|
|
* 또는 진입가 대비 1 ATR 안쪽의 보수적 손절
|
|
|
|
왜냐하면 이 전략의 핵심은
|
|
“D+1에 이미 힘이 약해야 한다”는 전제이기 때문입니다.
|
|
그런데 D+2에서 바로 D+1 high를 뚫고 올라가면, 가설이 틀린 것입니다.
|
|
|
|
즉, 이 전략의 stop은
|
|
**“변동성 stop”보다 “가설 실패 stop”** 에 가깝게 설계하는 것이 좋습니다.
|
|
|
|
---
|
|
|
|
# 9. 포지션 사이징
|
|
|
|
숏 전략은 더 보수적으로 가야 합니다.
|
|
|
|
## 권장값
|
|
|
|
* trade당 리스크: 0.25% 이하
|
|
* 동시 포지션: 최대 2개
|
|
* 같은 섹터: 최대 1개
|
|
* gross short exposure 작게
|
|
|
|
그리고 처음에는 아예
|
|
|
|
* paper only
|
|
* 또는 micro capital
|
|
|
|
로만 보시는 게 맞습니다.
|
|
|
|
---
|
|
|
|
# 10. score 설계 예시
|
|
|
|
이 전략은 continuation score를 뒤집는 게 아니라, 새로 만들어야 합니다.
|
|
|
|
예시:
|
|
|
|
* Overreaction Score: 35%
|
|
* Exhaustion Score: 30%
|
|
* Event Overpricing Score: 20%
|
|
* Reversal Confirmation Score: 15%
|
|
|
|
그리고 threshold를 넘는 것만 거래합니다.
|
|
|
|
중요한 점은, 여기서는
|
|
**문서가 좋을수록 무조건 좋은 게 아니라, 문서 대비 가격 반응이 과하면 오히려 reversal 후보**가 된다는 것입니다.
|
|
|
|
---
|
|
|
|
# 11. 꼭 필요한 필터
|
|
|
|
## 하드 필터
|
|
|
|
* unknown event_type 금지
|
|
* parse confidence 낮음 금지
|
|
* oneoff high 금지
|
|
* D+1 약세 미확인 금지
|
|
* borrow unavailable 금지
|
|
* HTB 비용 과도 금지
|
|
|
|
## 운영 필터
|
|
|
|
* 시장이 강한 risk-on 폭등일이면 숏 금지
|
|
* index strong trend up일 때는 size 축소
|
|
* earnings mega-cap bull squeeze 날은 숏 제한
|
|
|
|
즉, macro regime는 이 전략에서는 **더 중요**합니다.
|
|
|
|
---
|
|
|
|
# 12. 백테스트 설계
|
|
|
|
이건 꼭 별도 전략으로 돌리셔야 합니다.
|
|
|
|
## 비교 대상
|
|
|
|
반드시 4개를 같이 비교하십시오.
|
|
|
|
1. continuation long baseline
|
|
2. long avoidance filter만 적용
|
|
3. reversal short candidate only
|
|
4. reversal short + regime filter
|
|
|
|
## 봐야 할 지표
|
|
|
|
* 1d / 2d / 3d return
|
|
* win rate
|
|
* PF
|
|
* expectancy
|
|
* MFE / MAE
|
|
* reaction size bucket별 성과
|
|
* D+1 weakness 강도별 성과
|
|
* sector별 성과
|
|
|
|
## 가장 중요한 검증
|
|
|
|
* reaction 강할수록 reversal이 강한가?
|
|
* D+1 음봉 강할수록 next 1~3일 수익이 좋아지는가?
|
|
* event type별로 차이가 있는가?
|
|
|
|
---
|
|
|
|
# 13. 실전 투입 전 조건
|
|
|
|
이 전략은 바로 live로 가면 안 됩니다.
|
|
|
|
## 승격 순서
|
|
|
|
1. backtest
|
|
2. shadow mode
|
|
3. paper short
|
|
4. micro capital
|
|
5. limited capital
|
|
|
|
## live 전 필수 확인
|
|
|
|
* borrow availability hit rate
|
|
* locate latency
|
|
* fill slippage
|
|
* upward gap risk
|
|
* short squeeze 리스크
|
|
|
|
---
|
|
|
|
# 14. 지금 인프라에서 바로 재사용 가능한 것
|
|
|
|
이미 만들어둔 걸 대부분 그대로 쓸 수 있습니다.
|
|
|
|
## 그대로 쓰는 것
|
|
|
|
* SEC ingestion
|
|
* parser
|
|
* event taxonomy
|
|
* feature store
|
|
* backtester
|
|
* portfolio engine
|
|
* attribution
|
|
* runbook / incident 체계
|
|
|
|
## 조금 바꾸는 것
|
|
|
|
* score model
|
|
* entry/exit policy
|
|
* short risk policy
|
|
* borrow/locate checks
|
|
* regime gate
|
|
|
|
즉, 이 전략은 **새 시스템이 아니라 새 전략 모듈**입니다.
|
|
|
|
---
|
|
|
|
# 15. 개발 우선순위
|
|
|
|
제가 바로 개발한다면 순서는 이렇게 갑니다.
|
|
|
|
## Step 1
|
|
|
|
**long avoidance filter**부터 구현
|
|
현재 continuation 전략에서
|
|
|
|
* 과열 반응
|
|
* D+1 약세 확인
|
|
인 종목을 long에서 제외
|
|
|
|
이건 가장 빠르게 효과를 확인할 수 있습니다.
|
|
|
|
## Step 2
|
|
|
|
reversal short를 backtest로 구현
|
|
|
|
* D+2 open 진입
|
|
* 1~3일 보유
|
|
* D+1 high stop
|
|
* fixed target/time exit
|
|
|
|
## Step 3
|
|
|
|
paper short 운영
|
|
borrow/locate 문제와 execution 품질 확인
|
|
|
|
---
|
|
|
|
# 16. 제 최종 판단
|
|
|
|
이 전략은 꽤 합리적입니다.
|
|
특히 지금까지의 결과를 보면, continuation보다 **오히려 더 데이터 친화적인 가설**일 가능성이 있습니다.
|
|
|
|
왜냐하면 현재 결과가 말하는 건 사실상 이거였기 때문입니다.
|
|
|
|
* 강한 이벤트를 따라 사면 잘 안 된다
|
|
* 높은 점수일수록 더 별로다
|
|
* D+1 follow-through가 자주 깨진다
|
|
|
|
그렇다면 자연스러운 다음 가설은
|
|
**“좋은 뉴스 + 과열 반응 + D+1 실패 = 단기 되돌림”** 입니다.
|
|
|
|
즉, 이건 억지 피벗이 아니라
|
|
**지금 데이터가 직접 제안하는 다음 전략**이라고 보겠습니다. |