18 KiB
Current Best Non-Core Sleeve Stack
작성 기준일: 2026-04-08
이 문서는 현재 core 전략 위에 얹어 쓰는 비-core sleeve 5개와, 그 조합 중 현재 가장 높은 수익률을 만들고 있는 스택을 정리한 내부 운영 문서다.
이 문서에서 말하는 최고 수익 조합은 아래 조합이다.
- Parking:
qqqm_low_dd_tqqq_active_v2_gld - Idle Alpha:
micro_event_alpha_plus_event_plus - Form 4:
reserve_form4_cluster_plus_fresh - Ownership 13D:
ownership_13d_raise_reserve_ultra_balanced_purpose_plus_cooldown90_r95 - Risk-Off Alpha:
risk_off_alpha_gld_crisis65_heavy
중요한 점:
- 이 문서는
최고 수익 조합문서다. 가장 단순한 조합,가장 robust한 조합,가장 낮은 DD 조합문서가 아니다.- 지금 스택은 레이어가 많고 상호작용이 강하다.
- 따라서 각 슬리브를 개별적으로 평가한 결과보다, 실제로는
합친 뒤 최종 결과가 더 중요하다.
1. 현재 최고 수익 조합
개념적으로는 아래와 같은 6-layer 구조다.
CoreIdle AlphaForm 4Ownership 13DRisk-Off AlphaCash Parking
실제 일일 실행 순서는 대략 다음과 같다.
Core엔진 진입/청산Idle Alpha진입Form 4진입Ownership 13D진입Risk-Off Alpha진입- 남은 현금을
Cash Parking에 배치
즉 Cash Parking은 선행 알파가 아니라, 모든 진입이 끝난 뒤 남은 현금의 마지막 sink다.
2. 왜 이 조합이 현재 최고 수익인가
이 조합이 세게 나오는 이유는 각 슬리브의 역할이 비교적 다르기 때문이다.
Parking이 가장 많은 idle cash를 실제로 굴린다.Idle Alpha는 core가 안 먹는 micro-event PEAD 계열을 줍는다.Form 4는 내부자 매수 클러스터를 짧게 먹는다.Ownership 13D는 저빈도지만 한 건당 임팩트가 큰 소유구조 변화를 먹는다.Risk-Off Alpha는 parking이SGOV쪽으로 기울 때 위기 국면의GLD를 별도 reserve로 크게 실어준다.
즉 이 스택은:
- 평시에는
QQQM/TQQQ쪽 parking 알파를 크게 먹고 - stress 구간에서는
GLD - event 구간에서는
Idle Alpha / Form 4 / 13D
를 동시에 가져가도록 설계돼 있다.
3. 현재 최고 수익 스택 예시 설정
{
"risk": {
"cash_parking_preset": "qqqm_low_dd_tqqq_active_v2_gld"
},
"idle_alpha_sleeve_preset": "micro_event_alpha_plus_event_plus",
"form4_capture_sleeve_preset": "reserve_form4_cluster_plus_fresh",
"ownership_capture_sleeve_preset": "ownership_13d_raise_reserve_ultra_balanced_purpose_plus_cooldown90_r95",
"risk_off_alpha_sleeve_preset": "risk_off_alpha_gld_crisis65_heavy"
}
CLI 예시는 아래와 같다.
python -m apps.backtester.run \
--manifest /Users/yirugi/mycloud/personal/workspace/fithia2/configs/experiments/return_max_long_v7.119.json \
--split train \
--parking qqqm_low_dd_tqqq_active_v2_gld \
--idle-alpha micro_event_alpha_plus_event_plus \
--form4-sleeve reserve_form4_cluster_plus_fresh \
--ownership-sleeve ownership_13d_raise_reserve_ultra_balanced_purpose_plus_cooldown90_r95 \
--risk-off-sleeve risk_off_alpha_gld_crisis65_heavy
4. Sleeve 1: Cash Parking
Preset:
qqqm_low_dd_tqqq_active_v2_gld
핵심 역할:
- 아무도 안 쓰는 현금을 그냥 놀리지 않고, 가능하면
QQQM - 아주 저변동 구간이면
TQQQ - risk-off defensive 구간이면
GLD - 아무것도 안 맞으면 최종적으로
SGOV
즉 이 preset은 QQQM 기반 parking에 TQQQ overlay와 GLD defensive relay를 합친 형태다.
4.1. 기본 파라미터
- base parking symbol:
QQQM - gate mode:
volatility - volatility lookback:
20 - volatility threshold:
0.35 - temperature threshold:
1.2 - entropy lookback:
20 - entropy threshold:
1.45 - trend requirement:
True - trend mode:
momentum - trend period:
20 - trend re-entry pct:
0.001 - autocorr threshold:
0.0 - top-up max peak drawdown pct:
0.02 - reserve pct:
0.0
4.2. 이 preset이 실제로 하는 일
평시:
QQQM을 기본 parking risk asset으로 쓴다.
매우 저변동 구간:
TQQQoverlay를 허용한다.
defensive relay 구간:
- 원래 gate가
SGOV를 가리키는 상황에서도GLD가 충분히 강하면GLD를 쓴다.
4.3. TQQQ overlay 조건
cash_parking_low_vol_overlay_symbol = "tqqq"vol_threshold = 0.22temperature_max = 1.05entropy_max = 1.45
즉 이 preset은 TQQQ를 항상 쓰는 게 아니라, 아주 차분한 구간에만 overlay로 쓴다.
4.4. GLD relay 조건
cash_parking_defensive_symbol = "gld"- defensive relay enabled
- trigger mode =
always - relay risk score max =
100.0 - defensive momentum min =
0.05
의미는 이렇다.
- parking gate가 원래
SGOV로 가려는 상황이어도 GLD20일 모멘텀이 충분히 강하면- defensive asset을
GLD로 대체할 수 있다.
4.5. 이 preset이 높은 수익을 만드는 이유
qqqm_low_dd의 기본 low-DD 성격을 유지하면서- calm regime에서는
TQQQ - crisis defensive regime에서는
GLD
를 같이 쓴다.
즉 QQQM -> TQQQ -> GLD -> SGOV로 이어지는 다층 parking이다.
4.6. 한계
- 설정이 복잡하다.
- 실제 성능의 상당 부분이 이 parking preset 하나에 집중된다.
- 다른 sleeve를 잘 만들어도, parking이 너무 세면 비교가 왜곡되기 쉽다.
5. Sleeve 2: Idle Alpha
Preset:
micro_event_alpha_plus_event_plus
핵심 역할:
Core가 안 먹는 low-frequency post-allocation micro-event 알파를 뒤에 붙인다.- 그냥 엔진을 추가하는 게 아니라,
post_allocation_idle_only엔진으로 따로 붙는다. - 그리고 synthetic breadth engine 하나를 더 넣는다.
5.1. 엔진 구성
이 preset은 아래 5개 엔진으로 구성된다.
next_open_long_material_contract_mixed_micro_postmarketnext_open_long_guidance_mixed_micro_postmarketnext_open_long_earnings_unknown_inline_postmarket_strictnext_open_long_bullish_raised_strongidle_macro_breadth_smh_postalloc
앞의 4개는 micro event snapshot 엔진이고, 마지막 1개는 synthetic breadth engine이다.
5.2. 각 엔진의 의도
next_open_long_material_contract_mixed_micro_postmarket
material_contract- small/mid-ish universe
- post-market
- next-open long
- 보수적인 gap cap
- max hold
12
next_open_long_guidance_mixed_micro_postmarket
guidance_update- mixed direction parse에서 under-owned micro setup
- post-market
- next-open long
- max hold
12
next_open_long_earnings_unknown_inline_postmarket_strict
earnings_release- direction
unknown - guidance
inline_or_maintained - post-market
- strict filter
- max hold
12
next_open_long_bullish_raised_strong
earnings_release- bullish
- guidance
raised - 강한 reaction day
- 높은 close location
- 더 긴 max hold
20
idle_macro_breadth_smh_postalloc
- synthetic breadth engine
- trade symbol은 고정
SMH - breadth symbols는
QQQ,XLK,SMH - breadth count
2이상 - max hold
2
5.3. allocator 설정
이 preset은 엔진만 붙이는 게 아니라 IdleAlphaConfig도 같이 조정한다.
- dynamic allocator enabled
- cash ratio low/high:
0.04 / 0.16 - cash scale low/high:
0.8 / 1.025 - crowded primary candidate count:
6 - crowded primary unique sector count:
4 - crowded scale:
0.79 - synthetic scale multiplier:
1.03 - snapshot scale multiplier:
1.02 - synthetic reentry cooldown days:
2 - min scale:
0.6 - max scale:
1.045
즉 cash가 많고 core slate가 덜 혼잡한 날에만 idle alpha를 조금 더 키운다.
5.4. 이 preset의 핵심 특징
- core와 같은 loop에서 무작정 싸우는 방식이 아니다.
selection_priority = -1/-2post_allocation_idle_only = True
즉 core allocation 이후 남은 자본으로만 진입한다.
5.5. 장점
- core와의 충돌을 줄인다.
- 일반적인 PEAD와 다른 micro-event 알파를 추가한다.
- breadth engine이 따로 있어
SMH계열 확장도 먹을 수 있다.
5.6. 한계
- 엔진 수가 많아 설명과 attribution이 복잡하다.
- 실제로는 synthetic breadth engine이 존재감이 클 수 있다.
- 사용자 체감상
SMH가 자주 보일 수 있다.
6. Sleeve 3: Form 4
Preset:
reserve_form4_cluster_plus_fresh
핵심 역할:
- 내부자 매수 클러스터를
next_open으로 짧게 먹는 reserve sleeve다.
6.1. 입력 데이터
pit_events_path = data/reference/form4_daily_events_pit.parquet
즉 point-in-time Form 4 event cache를 사용한다.
6.2. 기본 파라미터
- reserve pct:
0.06 - min owner count:
2 - min total value:
5,000,000 - min purchase pct:
0.0 - max lag days:
None - hold days:
20 - max positions:
6 - max new per day:
2
6.3. 선택 로직
Form 4 후보는:
- 전 거래일 이후부터 어제까지 filing된 event를 본다.
- 오늘이 해당 filing의
first trading day after filing인 경우만 진입한다. owner_count >= 2total_value >= 5Mweighted_purchase_pct >= min_purchase_pctevent_day_count >= min_event_day_countmax_lag_days조건 통과- 이미 열려 있는 symbol은 제외
정렬 우선순위는:
owner_countevent_day_countweighted_purchase_pcttotal_value
즉 단순히 dollar value만 보지 않고, 몇 명이 동시에 샀는가를 가장 강하게 본다.
6.4. 진입/청산 구조
- entry timing:
next_open - max holding days:
20 - 기본적으로 early failure 룰은 살아 있다.
6.5. 현재 중요한 구현상 특성
현재 Form 4 sleeve는:
equity_est * reserve_pct로 예산을 계산하지만- 실제 집행 예산은
min(reserve_budget, self._cash)다.
즉 현재 구현은:
OwnershipRisk-OffDividend
처럼 parked cash를 일부 풀어서 reserve를 채우지 않는다.
이 말은 곧:
Form 4는 개념상 reserve sleeve지만- 실제로는
그 시점에 free cash가 남아 있을 때만강하게 작동한다.
이 특성은 성능에 큰 영향을 준다.
6.6. 현재 평가
- 알파는 완전히 무효가 아니다.
- 하지만 다른 sleeve 대비 일관성은 가장 약한 편이다.
- 자금을 더 열어준다고 항상 좋아지지 않았고, 실제로 추가 진입분 질이 나빠지는 구간이 있었다.
즉 Form 4는 현재 스택에서 필요는 하지만, 가장 신중히 다뤄야 하는 sleeve다.
7. Sleeve 4: Ownership 13D
Preset:
ownership_13d_raise_reserve_ultra_balanced_purpose_plus_cooldown90_r95
핵심 역할:
- 저빈도지만 임팩트가 큰
13D amendment기반 소유구조 변화를 크게 탄다.
7.1. 입력 데이터
pit_events_path = data/reference/ownership_13d13g_events_pit.parquet
즉 13D/13G point-in-time event cache를 사용한다.
7.2. 기본 파라미터
- reserve pct:
0.95 - form groups:
["13D"] - min percent owned:
5.0 - min percent delta points:
2.0 - exclude_housekeeping_purpose:
True - exclude_structural_exchange_purpose:
True - require_amendment:
True - require_initial:
False - require_activist:
False - require_13g_to_13d_transition:
False - symbol_cooldown_days_after_loss:
90 - hold_days:
30 - min_avg_dollar_volume:
10,000,000 - max_positions:
6 - max_new_per_day:
2 - min_cash_ratio_for_overlay:
0.25 - max_idle_deploy_pct:
0.0
7.3. 이 preset 이름의 의미
ultra_balanced_purpose_plus_cooldown90_r95
의 의미는 대략 아래와 같다.
ultra_balanced: reserve를 크게 쓴다purpose_plus: housekeeping / structural exchange 목적 filing을 뺀다cooldown90: 같은 symbol에서 loss 뒤 90일 cooldownr95: reserve pct95%
7.4. 선택 로직
후보는:
13D그룹만- amendment만
- percent owned
>= 5% - delta
>= 2.0%p - housekeeping purpose 제외
- structural exchange purpose 제외
- loss cooldown 90일 통과
ADV20 >= 10M
그리고 symbol별로 가장 좋은 event 하나만 남긴다.
정렬 키는:
ownership_strength_scoreactivist_flagpercent_delta_pointspercent_owned
즉 핵심은 delta 확대폭과 strength score다.
7.5. 자본 사용 방식
Ownership sleeve는 reserve budget을 계산한 뒤:
- cash가 부족하면 parked cash를 일부 풀 수 있다.
- 따라서 Form 4보다 실제 집행력이 더 강하다.
이 슬리브는 현재 스택에서 가장 capital-hungry한 sleeve 중 하나다.
7.6. 왜 강한가
- low-frequency
- high-conviction
- purpose filter로 잡음 제거
- loss cooldown으로 같은 symbol 재진입 실패를 줄임
즉 횟수는 적지만, 한 건당 임팩트가 크다.
7.7. 한계
- 이벤트 수가 적다.
- reserve가 커서 parking과 직접 경쟁한다.
- 목적문구 파싱 품질에 민감하다.
8. Sleeve 5: Risk-Off Alpha
Preset:
risk_off_alpha_gld_crisis65_heavy
핵심 역할:
- parking regime가 이미
SGOV쪽일 때, 그 stress 구간에서GLD를 별도 reserve sleeve로 크게 실어준다.
즉 이 sleeve는 평시 알파가 아니라 위기 구간 전용 알파다.
8.1. 기본 파라미터
- enabled:
True - reserve pct:
0.70 - symbols:
["gld"] - momentum lookback days:
20 - min symbol momentum:
0.05 - min consecutive sgov days:
3 - min parking risk score:
65.0 - rotation momentum gap:
0.02 - max holding days:
0 - min cash ratio for overlay:
0.0 - max idle deploy pct:
0.0
8.2. 진입 조건
아래를 모두 만족해야 한다.
- preview parking target이
SGOV SGOVstreak가 최소3일- parking risk score가
65이상 GLD20일 모멘텀이5%이상
이 조건을 통과하면 reserve 70%를 GLD에 태운다.
8.3. symbol 선택 방식
현재 preset은 symbols가 ["gld"] 하나라 회전 대상이 사실상 없다.
그래도 로직상으로는:
- 후보 symbol들의 momentum을 비교
- 현재 들고 있는 symbol과 새 best symbol의 차이가
rotation_momentum_gap보다 크지 않으면 유지
하는 구조다.
8.4. 자본 사용 방식
Risk-Off Alpha는:
- reserve budget 기반
- cash가 부족하면 parked cash를 일부 풀 수 있다.
즉 이 슬리브는 parking 위에 얹는 별도 crisis reserve layer다.
8.5. 왜 crisis65_heavy인가
crisis60보다 느리지만 더 정제된 진입이고, balanced_refined보다 reserve가 커서 full stack에서 더 세게 나왔다.
핵심은:
- 너무 이른
GLD진입은 불필요 - 하지만 실제 위기 구간에선 reserve를 크게 태우는 게 유리
라는 점이다.
9. 5개 sleeve의 상호작용
현재 스택의 핵심은 각 슬리브가 서로 완전히 독립이 아니라는 점이다.
9.1. capital interaction
Idle Alpha는 core 이후의 후순위 엔진 집합이다.Form 4는 free cash 기반 reserve sleeve다.Ownership는 reserve sleeve이며 parking cash release가 가능하다.Risk-Off Alpha도 reserve sleeve이며 parking cash release가 가능하다.Parking은 최종 sink다.
즉 자본 경쟁은 주로 아래 축에서 일어난다.
OwnershipvsRisk-OffvsParkingForm 4vs available raw cash
9.2. practical impact
- parking이 너무 세면 나머지 sleeve 비교가 왜곡된다.
- ownership reserve가 너무 크면 parking 수익이 줄 수 있다.
- risk-off alpha가 너무 세면
GLD노출이 과도해질 수 있다.
그래서 이 스택은 단순 합이 아니라 capital routing system에 가깝다.
10. 왜 지금은 이 구조를 core에 합치지 않는가
현재는 core에 전부 섞기보다 sleeve를 유지하는 편이 낫다.
이유는 아래와 같다.
- 데이터 소스가 다르다.
- 운용 목적이 다르다.
- attribution이 필요하다.
- 개별 on/off가 가능해야 한다.
- parking/ownership/risk-off는
현금 routing문제까지 포함한다.
즉 지금 단계에서는:
core alphaidle capital utilization
을 분리해 두는 게 더 낫다.
11. 현재 스택에서 빠진 것
현재 최고 수익 스택에는 아래가 없다.
Dividend Capture
이유는 간단하다.
- point-in-time infra는 만들었지만
- 현재까지는 robust하게 additive하지 않았다.
즉 현재 public surface에는 관련 기반이 일부 남아 있어도, 최고 수익 스택에는 포함하지 않는다.
12. 운영 메모
이 스택을 쓸 때는 아래를 같이 기억해야 한다.
최고 수익 스택과가장 단순한 스택은 다르다.최고 수익 스택과가장 설명하기 쉬운 스택도 다르다.- 현재 가장 큰 기여자는 대체로 parking 쪽이다.
Form 4는 현재 가장 불안정한 축이다.Ownership는 가장 저빈도지만 가장 의미 있는 reserve sleeve다.Risk-Off Alpha는 위기 국면에서만 존재감이 커진다.
13. 추천 해석
현재 최고 수익 조합은 아래처럼 이해하면 된다.
Parking이 엔진이다.Idle Alpha가 micro-event 확장이다.Form 4가 insider cluster 확장이다.Ownership 13D가 ownership shock 확장이다.Risk-Off Alpha가 crisis GLD 확장이다.
즉 이 스택은 core + 다섯 개의 별도 알파/자본-routing 레이어다.
현재 기준에서 최고 수익 조합을 한 줄로 쓰면:
core + qqqm_low_dd_tqqq_active_v2_gld + micro_event_alpha_plus_event_plus + reserve_form4_cluster_plus_fresh + ownership_13d_raise_reserve_ultra_balanced_purpose_plus_cooldown90_r95 + risk_off_alpha_gld_crisis65_heavy
이 문서의 목적은 이 조합을 기억하기 쉽게 적는 게 아니라, 왜 이 조합이 이렇게 생겼는지와 각 레이어가 무엇을 담당하는지를 한 번에 이해하게 만드는 데 있다.