콘텐츠로 이동

S317 — 3 분석기 인벤토리: 입력 데이터 · 산식 · 정확도 · 선행성

작성: 2026-05-26 (Tue) 09:00 대상: ① 차트 분석기 (discovery + triggers) ② 퀀트 분석기 (earnings E1) ③ Order Flow 분석기 근거 소스: - 코드: scripts/discovery/*.py, scripts/discovery/triggers/*.py, scripts/quant/earnings/*.py - 점검 결과: docs/research/2026-05-26_S317_module_audit_v2.md (차트/OF, n=891, 67일) - 점검 결과: docs/research/2026-05-26_S317_us_macro_audit.md (US 매크로, 4년) - 백테스트: docs/research/2026-05-25_S312v2_e1_qoq_backtest.md (E1 1시점 81종)


1. 차트 분석기 (discovery/)

1-1. 모듈 구성

모듈 파일 역할 출력 필드 수
layer_a.py Layer A: 가격/거래량/플로우/VSA raw 14필드 14
volume_profile.py POC/VA/HVN/LVN/Asymmetry/Overhang 20
vsa_signals.py VSA 8신호 + Spring/Upthrust 검출 12
wyckoff.py:compute_wyckoff Wyckoff 4국면 + 11이벤트 검출 19
wyckoff.py:compute_three_laws 수요공급 + 원인결과 + 노력결과 (A/D Line) 9
state_classifier.py 위 5개 통합 → state/cycle/resolution_direction 종합
triggers/vsa_trigger.py VSA → BUY/SELL decision confidence
triggers/wyckoff_trigger.py Wyckoff → decision confidence
triggers/amt_trigger.py AMT (acc/mom/trend) → decision confidence
triggers/bulkowski_trigger.py 차트패턴(Rectangle/Flag/Pennant) confidence
triggers/of_trigger.py OF (30분봉) → decision confidence
triggers/aggregator.py 5 trigger vote → verdict BUY_STRONG/AVOID 등

1-2. 입력 데이터

입력 타임프레임 출처 필요 봉 수
일봉 OHLCV 1d FDR (data/backtest/s303/ohlcv/*.parquet) 최소 60봉 (state_classifier), 140봉 (s307big run_one)
30분봉 OHLCV 30분 키움 ka10080 (data/minute_charts/30min/*.parquet) 60봉~900봉
외인/기관 flow (옵션) 1d Naver/Kiwoom 20봉+

1-3. 모듈별 산식 + 정확도 + 선행성

A. VSA 8신호 (vsa_signals.py)

산식 출처: Tom Williams VSA / PyQuantLab

신호 조건 (R3 §3-1)
ND (No Demand) vol < MA×0.5 + up bar + spread narrow
NS (No Supply) vol < MA×0.5 + down bar + spread narrow
SV (Stopping Volume) vol > MA×2.0 + down bar + close_pos > 0.7
CV (Climactic Volume) vol > MA×2.0 + up bar + close_pos > 0.7
BC (Buying Climax) vol > MA×2.0 + up bar + close_pos < 0.3
SC (Selling Climax) vol > MA×2.0 + down bar + close_pos > 0.7
EUR (Effort Up no Result) vol > MA×1.2 + 작은 양봉
EDR (Effort Down no Result) vol > MA×1.2 + 작은 음봉
Spring prior_N봉 저점 일시 이탈 + 종가 회복
Upthrust prior_N봉 고점 일시 돌파 + 종가 미달

임계값: BTC 캘리브레이션 — 한국 재보정 필요 (DEFAULT_THRESHOLDS 코드 명시)

정확도 (S317 v2, n=891, baseline UP D+20 0.617):

신호 n_b n_s b_d20 s_d20
last_signal_kind bullish/bearish 57 108 0.696 0.370
strength≥3 1 63 n/a 0.279 (72% 하락) ★
last_signal_id SC/Spring/SV vs BC/UT/EUR 3 87 n=3 무력 0.283
spring_count_20d > 0 197 0.707 ★★
upthrust_count_20d > 0 512 0.403
spring_last_age ≤ 3 746 0.604
bull_strength_sum > bear 143 112 0.577 0.277

선행성 (median first ±3% swing days): bull 2~3일 / bear 2~3일

B. Volume Profile (volume_profile.py)

산식: Steidlmayer Market Profile + Auction Theory

  • POC: 가격빈별 거래량 합 최대 (n_bins=50)
  • VA (Value Area): POC 양쪽으로 누적 거래량 70% 영역
  • VAH/VAL: VA 상/하단
  • LVN/HVN: bin 거래량 < 0.5×median / > 1.5×median
  • ATR 정규화: poc_dist_atr = (current_price - POC) / ATR(14)
  • 비대칭: (up_vol_amount - down_vol_amount) / total — 20일

정확도 (S317 v2):

신호 n_b n_s b_d20 s_d20
volume_asymmetry_20d <-0.3 246 28 0.542 0.160 ★★ (84% 하락)
up_down_amount_ratio_log <-0.3 194 19 0.564 0.062 ★★ (94% 하락) — 종목 최강
poc_dist_atr >+2/<-2 594 71 0.615 0.344
in_lvn 12 0.818 (n 작음)
rotation_factor_20 >5/<-5 299 114 0.592 0.294
va_position 위/아래 44 482 0.513 0.411
overhang_below_current >0.4 769 0.616

선행성: bull 2~3일 / bear 2~3일

미작동 신호: va_width <1 (전부 발화 0 — 강세장 VA 좁은 종목 없음)

C. Order Flow Daily (order_flow.py, 입력=일봉)

산식: - BVC (Bulk Volume Classification, Easley/LdP/O'Hara 2012): - log_ret / rolling_60d_std → t분포(df=0.25) CDF → buy_ratio (0~1) - Delta = (2×buy_ratio − 1) × volume - CVD = cumsum(Delta) - cvd_zscore = z-score of CVD 마지막 값 (rolling 20) - divergence = price slope vs CVD slope (window 10) → -1/0/+1 - absorption_score = vol_z × (1 − |price_range_norm|) (window 20) - exhaustion = delta 부호 유지 + volume 단조감소 (5봉) - buy/sell_pressure = close_pos + 꼬리 + 양/음봉 거래량 가중

원전 정확도 (참고): Easley 2012 — BVC 65분봉 79.7% 정확

정확도 (S317 v2, n=891):

신호 n_b n_s b_d20 s_d20
cvd_zscore >+1/<-1 347 81 0.528 0.250 ★ (75% 하락)
cvd_price_divergence (-1받침/+1추격) 16 2 0.625 n=2 무력
bvc_buy_ratio_5bar >0.55/<0.45 168 74 0.497 0.282
absorption_score_last >+1.5 20 0.846 (+22.9pp) ★★
absorption_count_20bar ==0 676 0.366
exhaustion_flag_up 6 0.667 (n 작음)
lower_wick > upper_wick 102 226 0.493 0.379
buy_pres - sell_pres >0.3/<-0.3 115 206 0.482 0.355

선행성: bull/bear 2~3일

미작동 신호: cvd_slope_z (전부 임계 미달), absorption_count>3 / cause_count_bars>20 (강세장 압축 패턴 없음)

D. Wyckoff (wyckoff.py)

산식 (R3 §3-4 TradingView Wyckoff Phase Classifier): - 4국면: ACC / MARKUP / DIST / MARKDOWN — 60봉 위치 + 이벤트 카운트 + 추세 종합 - 11이벤트: SC/AR/ST/Spring/SOS/LPS (ACC) + BC/UT/UTAD/SOW/LPSY (DIST) - climax_vol_mult = 2.0 (대형) / 1.5 (중소형) - net_event_bias = (acc − dist) / (acc + dist + 1)

임계값: 미국·BTC 캘리브레이션 — 한국 재보정 필요

정확도 (S317 v2):

신호 n_b n_s b_d20 s_d20
phase ACC/MARKUP vs DIST/MARKDOWN 384 445 0.643 0.424
phase_confidence>0.6 + 방향 95 232 0.512 0.393
net_event_bias >0.3/<-0.3 15 145 0.571 0.286
last_event SC/Spring/SOS vs BC/UT/SOW 90 640 0.613 0.378

미작동: spring/upthrust 11이벤트 발현 (60d 카운트) 거의 0 — 강세장 67일 동안 매집 단계 부재 (정상)

선행성: bull/bear 2~3일

E. Layer A 14필드 (layer_a.py)

산식: R3 §2 매핑 문서

필드 산식
range_pos_52w (close - 52w_low) / (52w_high - 52w_low)
high_proximity 52w_high - close, ATR 정규화
price_zscore_20d (close - MA20) / std20
drawdown_60d (close - max60d) / max60d
rvol_20d volume / MA20(volume)
vol_zscore rolling z-score of volume
cmf_20d Chaikin Money Flow 20
obv_slope_z OBV 20일 회귀 기울기 z
vol_ratio volume / MA7(volume) (intraday VSA용)
spread_ratio (H-L) / MA7(H-L)
close_pos (close - low) / (high - low)
err_zscore Effort/Result z (vol_z × abs(price_chg) divergence)
absorption_flag 1/0
rotation_factor_20 20일 H/L 갱신 ±1 합산
ad_line_slope_z A/D Line 20일 회귀 기울기 z

정확도:

n_b n_s b_d20 s_d20
range_pos 상위20% 891 0 0.617 (= baseline)
close_pos 상단>0.7 / 하단<0.3 139 377 0.469 0.247 ★ (75% 하락)
price_zscore_20d >1/<-1 303 102 0.555 0.293
cmf_20d >0.1/<-0.1 147 367 0.500 0.345
err_zscore >+1 (Effort Up no Result) 126 103 0.348 (역방향!) 0.357
rvol_20d high/low 119 148 0.609 0.403
drawdown_60d shallow/deep 102 788 0.554 0.376

미작동: obv_slope_z (전부 0 발화), ad_line_slope_z (n=3) → 임계 조정 필요

F. Triggers (triggers/)

산식: 5개 방법론 vote 통합 (aggregator.py) - buy_votes ≥ max(3, n-1) AND buy_conf ≥ 2.0 → BUY_STRONG - buy_votes ≥ 2 AND sell_votes = 0 → BUY - buy_votes ≥ 1 AND sell_votes ≥ 1 → MIXED_BUY_LEAN/MIXED_SELL_LEAN/MIXED (conf 비율로 분기) - sell 대칭: AVOID_STRONG / AVOID / CAUTION

정확도 (S307big+OF, n=1,682, OF 활성):

verdict n D+20 mean win% sortino
BUY_STRONG 25 +27.64% 64.0% 2.68
BUY 286 +12.67% 2.09
MIXED_BUY_LEAN 738 +10.58% 1.23
AVOID_STRONG 12 +8.33% 2.53
AVOID 70 +12.77%
(baseline OF active) 1,682 +11.33% 1.47

개별 트리거 (S317 v2, n=891):

트리거 n_b n_s b_d20 s_d20
Bulkowski decision 682 142 0.628 0.397
Bulkowski strong (conf≥0.6) 1 1 표본 무력 표본 무력
AMT decision 97 437 0.566 0.415
AMT strong 40 264 0.500 0.471
retracement impulse_dir UP/DOWN 681 170 0.633 0.417
retr_label RESOLVING_EARLY vs LATE/RETURNING 231 13 0.665 0.200

선행성: 0d 동시 신호 (verdict 발화 = 진입 시점)

1-4. 차트 분석기 종합

검증된 강한 신호 (즉시 운영 가치): - 종목 회피 ★★: vp_up_down_amount_ratio_log <-0.3 (94% 하락), vp_volume_asymmetry_20d <-0.3 (84%), ofm_bvc_buy_ratio_5bar <0.45 (85%), close_pos 하단 <0.3 (75%) - 종목 진입 ★★: ofd_absorption_score_last >+1.5 (D+20 0.846), spring_count_20d >0 (0.707), retr_label RESOLVING_EARLY (0.665), vp_in_lvn (0.818, n 작음) - 합의 시 폭증: 5-trigger BUY_STRONG (D+20 +27.64%, sortino 2.68)

검증 실패/임계 조정 필요: - obv_slope_z, ad_line_slope_z, cvd_slope_z, va_width 좁음 (모두 발화 0건) - VSA strong bull (n=1), Bulkowski strong (n=1) — 임계 너무 엄격 - err_zscore >+1 → bull 역방향 (Effort no Result 검증) - AMT decision/strong → 약함 (baseline 미달) - Wyckoff 11이벤트 (60d count) → 강세장 67일에 spring/sos/lps 발현 0 (정상)

선행성 결론: - 모든 차트 신호 0d 동시 (verdict가 진입 시점) - 첫 ±3% swing까지 2~3일 (강세장 67일 변동성 큼 — 다른 환경 별도 측정 필요)


2. 퀀트 분석기 (scripts/quant/earnings/)

2-1. 모듈 구성

모듈 역할
fnguide_loader.py FnGuide SVD_Main HTML 파싱 → fnguide_fs.parquet
cache_io.py DART 분기 재무 cache + vintage 갱신
point_in_time.py 분기말+50d (1Q~3Q) / +95d (4Q) cutoff
e1_acceleration.py EA / EA_QoQ / g_curr 산출

2-2. 입력 데이터

입력 출처 커버리지
FnGuide SVD_Main HTML comp.fnguide.com (분기 5년 + 컨센) 98종목 (S311 백필)
DART 재무제표 mcp__korea-stock-mcp__get_financial_statement (보조) 시총 100 가능
종목당 1 호출 → 분기 IFRS_CFS/OFS 매출/영업이익/순이익/EPS/ROE 등

한국 PIT 규칙: - 1Q/2Q/3Q: 분기말 + 50일 cutoff (45일 법정 + 5일 휴일 버퍼) - 4Q: 분기말 + 95일 cutoff (90일 법정 + 5일 버퍼) - 잠정실적 공정공시: announce_dt vintage 사용 가능 - 정정공시: vintage 갱신 (cache_io.vintage_update)

2-3. 산식 (E1, He-Narayanamoorthy JAE 2020)

g_q   = (X_q − X_q-4) / |X_q-4|    # YoY 성장률
ea    = g_q − g_q-1                  # EA (YoY 가속) — 6분기 필요
qoq_q = (X_q − X_q-1) / |X_q-1|    # QoQ 성장률
ea_qoq = qoq_curr − qoq_prev         # EA_QoQ (4분기 QoQ 가속) — 5분기 필요

대상 metric: revenue / op_income / net_income (3개)

왜 EA_QoQ로 전환 (S312v2 PM 가르침): - FnGuide SVD_Main = 5분기 시계열만 제공 - EA(YoY 가속) 6분기 필요 → 한국 데이터로 측정 불가 - EA_QoQ는 4분기만 필요 → 5분기 시계열에서 측정 가능

2-4. 정확도 (S312v2 1시점 backtest, 2025Q4)

baseline: KOSPI YTD +32%, n=81 종목

horizon TOP-BOTTOM decile spread 평가
D+5 -1.2pp (음수) 신호 지연
D+10 -3.0pp (음수) 신호 지연
D+20 -1.3pp (음수) 신호 지연
D+30 +9.11pp 가설 부분 지지

decile 8×8 표본 — LG이노텍 +126% / 대우건설 +54% outlier 영향 연환산 +76.5%/yr (1시점, 신뢰 불가) DSR/PBO 통계 유의성 X

2-5. 선행성 (퀀트 vs 차트/OF)

분석기 신호 발화 ~ 가격 반응
퀀트 EA_QoQ 발화 = 발표일 후 50d (PIT cutoff) → forward D+30 alpha 발현
차트/OF 발화 = 종가 시점 → forward D+5~D+20
매크로 (KR) basis_z 등 2~5일 선행
매크로 (US) NET_LIQ_BN 등 3~11일 선행

퀀트는 가장 느린 신호 (50d PIT lag 본질). 장기 (D+30) 가치에 적합.

2-6. 결함 + 한계

항목 상태
커버리지 98종 (시총 100 중 우선주 2 제외)
시점 수 1시점 (2026-04-06 cutoff, 2025Q4) — walk-forward 미실시
컨센서스 추정치 누락 (is_estimate 모두 False)
Annual/Quarter 분류 period_kind 컬럼으로 보정 완료 (S312-1 fix)
EPS/ROE 미수집 (다른 table 추가 파싱 필요)
데이터 시계열 길이 FnGuide SVD_Main 5분기 / 5년 — 장기 walk-forward 불가
종목당 비용 FnGuide 1회/종목 (1초 throttle), DART는 분기당 호출 多

2-7. 퀀트 분석기 종합

  • 산식: He-Narayanamoorthy JAE 2020 원전 + PM EA_QoQ 변형 (5분기 데이터 한계 대응)
  • 정확도: 1시점 D+30 spread +9.11pp (가설 부분 지지) / 통계 유의성 X
  • 선행성: PIT 50d lag 본질, 발현은 D+30
  • 운영 가치: 1시점이라 단독 운영 위험. 4축(테마/시장환경/차트) 결합 후 사용 권고
  • 다음 단계: 장기 분기 시계열 확보 (DART 직접 backfill 또는 유료 소스) → walk-forward backtest

3. Order Flow 분석기

3-1. 두 종류

모드 입력 산출 정확도
OF Daily (order_flow.py, 일봉) 일봉 OHLCV 13필드 (BVC/CVD/Absorption/Exhaustion/Wicks/Pressure) S307big+OF에서 일봉 fallback 폐기 (PM 2026-05-24 정책)
OF 30분봉 (동일 함수, 입력만 30분봉) 30분봉 OHLCV 60~900봉 동일 13필드 5-trigger 합의 시 D+20 +27.64% (BUY_STRONG)

3-2. 산식 (Easley-LdP-O'Hara 2012 BVC)

표준화 수익률 t분포 CDF로 buy_ratio 추정 (틱데이터 없이 80% 정확) - log_ret = log(close_t / close_t-1) - z = log_ret / std60 - buy_ratio = t.cdf(z, df=0.25) ← 두꺼운 꼬리 - delta = (2×buy_ratio − 1) × volume - CVD = cumsum(delta)

3-3. 정확도 (S317 v2, n=891)

신호 모드 n_b n_s b_d20 s_d20
cvd_zscore >+1/<-1 daily 347 81 0.528 0.250
cvd_zscore >+1/<-1 30분 105 151 0.474 0.250
bvc_buy_ratio_5bar 30분 69 35 0.636 0.152 ★★ (85% 하락)
absorption_score_last >+1.5 daily 20 0.846 ★★
lower_wick > upper_wick daily 102 226 0.493 0.379
lower_wick > upper_wick 30분 108 190 0.644 0.352
buy_pres - sell_pres daily 115 206 0.482 0.355
buy_pres - sell_pres 30분 46 342 0.615 0.329
cvd_price_divergence daily 16 2 0.625 n=2 무력

S307big+OF (30분봉 활성, n=1,682): - OF BUY 단독: D+20 +15.16%, sortino 2.16, win 60% - OF SELL 단독: n=8, D+20 +23.95% (전 발화 양수 = SELL 실패 확정) - 5-trigger 합의 BUY_STRONG: D+20 +27.64%, sortino 2.68

3-4. 선행성

  • 0d 동시 신호 (verdict = 진입 시점)
  • forward effect: D+5 < D+10 < D+20 단조 증가 (peak D+20)
  • 30분봉 모드라 intraday lead 효과는 측정 안 함 (일봉 forward만 측정)

3-5. OF 분석기 결론

  • OF BUY 30분봉 + 차트 합의 = 최강 (D+20 +27.64%)
  • OF SELL 단독 사용 금지 (n=8 100% 양수)
  • 일봉 OF 폐기 정책 (PM 2026-05-24) — 30분봉만 활성 시 OF trigger 작동
  • 데이터 결손: cvd_slope_z 임계 발화 0 (rolling 20봉 정규화 검토 필요)

4. 분석기 간 비교 (요약)

항목 차트 (discovery) 퀀트 (E1) OF (30분봉)
입력 일봉 OHLCV 140봉+ FnGuide 분기 5년 30분봉 OHLCV 60~900봉
산출 필드 80+ (Layer A + VP + VSA + Wyckoff + Laws) 3 metric × {g_curr, ea_qoq, ea} = 9 13 (BVC/CVD/Absorp/Exh/Wick/Pres)
신호 빈도 매일 (모든 종목) 분기당 1회 매일 (30분봉 가용 종목)
PIT lag 0d 50d (1Q~3Q) / 95d (4Q) 0d
선행성 0d (동시) → ±3% swing 2~3d 50d lag, alpha D+30 발현 0d, peak D+20
단독 최강 bull D+20 absorption_score_last >+1.5 (0.846, n=20) TOP decile (D+30 spread +9pp, n=81) OF BUY (+15.16%, n=65)
단독 최강 bear D+20 vp_up_down_amount_ratio_log <-0.3 (0.062 = 94% 하락) BOTTOM decile (D+30 −5pp) OF SELL 실패 (n=8, +23.95%)
결합 시너지 5-trigger BUY_STRONG +27.64% (n=25) 4축 결합 미측정 (S313 대기) 5-trigger 합의에 포함
임계 재보정 필요 VSA/Wyckoff (BTC 캘리브레이션) 없음 (산식 원전 그대로) cvd_slope_z 임계
운영 가치 (단독) 약함 (S307 "차트만으론 불가") 약함 (1시점 통계 X) BUY 약함, SELL 사용 금지
운영 가치 (결합) ★★ 합의 시 폭증 ★ 4축 중 1축 ★★ 합의 시 폭증

5. 검증 환경의 한계 (전 분석기 공통)

  1. 차트/OF (S317 v2): 67거래일 강세장 (2026-02-13~04-24) — 약세/조정장 walk-forward 미실시
  2. 퀀트 (S312v2): 2026-04-06 1시점만 — walk-forward 표본 0
  3. 데이터 시작점: 차트 2022-01-03, 퀀트 FnGuide 5분기 / KOSPI 2022-01-03
  4. fold 안정성: 차트/OF 거의 모든 신호가 fold 0~2 단조 (시장 추세 동행) — 환경 변화 시 무력 가능
  5. 표본 규모: 차트 891 sample / 모듈당 표본 ≤ 30~50개 / 통계 유의성 DSR/PBO 미실행

6. 운영 권고 (정확도 ★★ + fold 안정 기준)

bull 진입 (D+20 ≥ 0.70, n ≥ 30 또는 합의)

  • 5-trigger BUY_STRONG (차트 4 + OF 30분 = 5 합의) — D+20 +27.64%
  • OF daily absorption_score_last >+1.5 — D+20 0.846 (n=20, +22.9pp)
  • VSA spring_count_20d > 0 — D+20 0.707 (n=197)
  • retr_label RESOLVING_EARLY/MID — D+20 0.665 (n=231)

bear 회피/공매 (D+20 ≤ 0.30, n ≥ 30)

  • vp_up_down_amount_ratio_log <-0.3 (94% 하락, n=19)
  • vp_volume_asymmetry_20d <-0.3 (84% 하락, n=28)
  • ofm_bvc_buy_ratio_5bar <0.45 (85% 하락, n=35)
  • OF daily cvd_zscore <-1 (75% 하락, n=81)
  • close_pos <0.3 (75% 하락, n=377)

사용 금지/보류

  • OF SELL 단독 (n=8 100% 양수)
  • VSA strong (n=1), Bulkowski strong (n=1) — 임계 재조정 필요
  • err_zscore >+1 (역방향)
  • AMT decision strong (baseline 미달)
  • obv_slope_z, ad_line_slope_z, cvd_slope_z, va_width <1 — 임계 조정 필요

결합 운영 (다음 단계)

  • 퀀트 EA_QoQ TOP decile → 차트 BUY_STRONG → OF BUY (3축 합의)
  • S313 4축 결합 backtest 미실시 (테마 RS + 시장환경 + 차트 + 퀀트)

7. 다음 작업 후보

  1. 임계 재조정 (obv_slope, cvd_slope, va_width, VSA strong) → 발화 빈도 복구 → 재점검
  2. 약세/조정장 walk-forward (S309 v4c rolling 20일로 정합 확보 후 확장)
  3. 4축 결합 backtest (S313) — 퀀트 + 테마 + 시장환경 + 차트
  4. 퀀트 walk-forward — 장기 분기 시계열 확보 (DART 직접 backfill)
  5. OF 30분봉 intraday lead 측정 — 30분봉 신호 → 다음 시간 가격 lead 분석

8. 산출물 (본 인벤토리 근거)

  • docs/research/2026-05-26_S317_module_audit.md (v1, 차트 14룰 + 매크로 7신호)
  • docs/research/2026-05-26_S317_module_audit_v2.md (v2, 차트 60룰 + 한국 매크로 31신호)
  • docs/research/2026-05-26_S317_us_macro_audit.md (US 매크로 28신호 4년)
  • docs/research/2026-05-25_S312v2_e1_qoq_backtest.md (퀀트 E1 1시점)
  • docs/research/2026-05-24_S307big_backtest.md (5-trigger verdict)
  • 코드: scripts/discovery/*.py, scripts/discovery/triggers/*.py, scripts/quant/earnings/*.py
  • 데이터: data/backtest/s317_audit/, s317_audit_v2/, s317_us_audit/, e1/