Long/Short RatioLong/Short Ratio engine v1.0.1

외국인 흐름 축을 묶어 매일 목표 롱숏 비율(gross=1, net=L−S)을 내고, 다음날 실현으로 채점한 뒤 어느 신호가 얼마나 틀렸는지 분해해 원장에 남긴다. 워크포워드(엄격 확장창) — t일 비율은 t일까지의 데이터만 쓴다.Bundles foreign-flow axes into a daily target long/short ratio (gross=1, net=L−S), scores it against the next day’s realized move, then decomposes which signal was wrong by how much and writes it to a ledger. Walk-forward (strict expanding window) — day t uses only data through day t.

산출Generated 2026-08-29 22:12:36 · 0rows · 32d (2026-07-13 ~ 2026-08-27)

signal_status = not_established · 셔플 p=0.2185 ≥ 0.05 · 이 비율은 관측·채점용이다. 실행 근거로 쓰지 말 것.This ratio is for observation and scoring only. Do not use it as a basis for execution.
오늘 목표 롱숏Today’s target L:S (2026-08-28) 44:56 net -0.1107 · gross 1 · 활성신호live signals 7/7
초과 (익스포저 일치 대비)Excess vs exposure-matched +0.1688%/일%/day 모델Model 0.1471 · buy&hold 익스포저 일치buy&hold exposure-matched -0.0217
셔플 p (단측)Shuffle p (one-sided) 0.2185 alpha 0.05 · 미달 — 배열 운과 구분 안 됨fails — indistinguishable from ordering luck
최대낙폭 (MDD)Max drawdown -8.386%p buy&hold 100%buy&hold 100% -27.128%p · buy&hold 익스포저 일치buy&hold exposure-matched -4.915%p
평균 익스포저 · 회전Avg exposure · turnover -0.1916 turnover 0.2001 · hit 43.8%

벤치마크 규율. 표본 구간에 강세 드리프트가 깔려 있어 “항상 롱”이 저절로 잘 나온다. 그래서 0 이 아니라 평균 익스포저를 맞춘 buy&hold(—x)를 기준선으로 쓴다. 절대 누적수익 비교는 의미가 없다.Benchmark discipline. The sample window carries a bullish drift, so “always long” looks good by itself. The baseline is therefore not zero but an exposure-matched buy&hold (—x). Comparing absolute cumulative returns is meaningless.

일별 누적 손익 — 모델 vs 벤치마크 2종Daily cumulative P&L — model vs two benchmarks

모델Model buy&hold 익스포저 일치buy&hold exposure-matched buy&hold 100%buy&hold 100%

신호별 누적 기여 — 누가 벌고 누가 잃나Cumulative contribution by signal — who earns, who loses

신호Signal누적 손익Cum. P&L오답률Wrong rate피해 총액Total damage기권abstainn
cash_late30 +6.996%p 37.5% 4.348%p 0 32
cash_intent +1.224%p 56.7% 4.926%p 2 30
auction_fade +1.147%p 53.6% 2.011%p 4 28
fut_reversal -0.043%p 59.3% 2.374%p 5 27
fut_late30 -1.058%p 51.6% 2.879%p 1 31
cash_reversal -1.339%p 48.3% 4.814%p 3 29
fut_intent -2.221%p 53.1% 6.152%p 0 32

원인 분석 — 손실일의 범인Cause analysis — culprit on losing days

손실일Losing days 18/32 (56.2%). 범인 = 그날 손실에 가장 크게 기여한 축(귀책 분해 1위). 빈도만 높고 피해가 작으면 잡음, 빈도는 낮은데 피해가 크면 꼬리 위험이다.Culprit = the axis that contributed most to that day’s loss (top of the attribution decomposition). High frequency with small damage is noise; low frequency with large damage is tail risk.

신호Signal범인 횟수Times blamed손실일 중 비중Share of losing days피해 총액Total damage최근 지목일Recently blamed
fut_intent 4 22.2% 4.602%p 2026-07-22 · 2026-07-24 · 2026-07-30
cash_late30 9 50% 3.265%p 2026-08-25 · 2026-08-26 · 2026-08-27
fut_reversal 1 5.6% 0.647%p 2026-08-21
cash_reversal 1 5.6% 0.316%p 2026-07-20
cash_intent 3 16.7% 0.146%p 2026-08-07 · 2026-08-10 · 2026-08-24

직전 채점 디버그Last scored day — debug — 2026-08-27

56:44 실현Realized -2.1045% 손익P&L -0.2601%p 손실loss 범인Culprit cash_late30 (0.1932%p)
신호SignalValue기대Expected표본samples민 netnet push손익P&L방향Direction
cash_late30 1 +1.7392% n=27 +0.0918 -0.1932%p 오답wrong
cash_intent 1 +1.0963% n=22 +0.0579 -0.1219%p 오답wrong
auction_fade -1 +0.4732% n=15 +0.025 -0.0526%p 오답wrong
fut_late30 1 +0.379% n=28 +0.02 -0.0421%p 오답wrong
fut_intent 1 +0.1046% n=33 +0.0055 -0.0116%p 오답wrong
fut_reversal 0 -0.9894% n=28 -0.0522 +0.1099%p 정답correct
cash_reversal 0 -0.4606% n=42 -0.0243 +0.0511%p 정답correct

사후 최적Ex-post optimum net -1 → 2.1045%p · regretregret 2.3646%p. 사후 최적은 예지 가정이라 달성 불가 — regret 은 "얼마나 남겨뒀나"의 눈금이지 목표가 아니다. 매일 1.0/−1.0 을 맞히는 전략은 존재하지 않는다.The ex-post optimum assumes foresight and is unreachable — regret is a yardstick for how much was left on the table, not a target. No strategy calls +1.0/-1.0 correctly every day. en=The ex-post optimum assumes foresight and is unreachable — regret is a yardstick for how much was left on the table, not a target. No strategy calls +1.0/-1.0 correctly every day. />

일별 채점 원장 (최근 0일)Daily scoring ledger (last 0 days)

날짜DateL:Snet실현Realized손익P&L범인Culpritfeatures

폭락 사후분석 — 왜 놓쳤나Crash postmortem — why we missed it

익일 실현 -5% 이하를 폭락으로 사후 라벨한 뒤, 그날 모델이 뭘 들고 있었고 어느 축이 손해를 냈는지, 전날 전조가 있었는지 본다. 전조는 가짜경보 수와 함께 읽어야 한다 — 평온일에 더 많이 나오면 못 쓴다.Labels next-day realized moves at or below -5% as crashes (ex-post), then asks what the model held that day, which axis lost money, and whether a precursor showed up the day before. Read every precursor together with its false-alarm count — if it appears more often on calm days it is unusable.

폭락일Crash days 7/32d spike(5%↑) 3 · calm 22
그날 모델 평균 netModel avg net on those days -0.274 7일 중 0일이 롱편향 — 그게 놓친 것0 of 7 days were long-biased — that is the miss
폭락일 누적 손익Cumulative P&L on crash days 15.058%p avg 2.151%p

폭락일에 누가 손해를 냈나Who lost money on crash days

신호Signal피해 총액Total damage
cash_intent2.744%p
auction_fade0.532%p
cash_late300.515%p
fut_intent0.373%p
fut_late300.166%p

전조 — 폭락 전날 두드러진 값 (가짜경보 병기)Precursors — values over-represented the day before a crash (with false alarms)

신호Signal=Valueliftlift폭락 적중Crash hits가짜경보False alarms정밀도Precision
cash_late30=-1 +40.2%p 6 10 37.5%
fut_late30=-1 +25.9%p 5 10 33.3%
cash_intent=1 +25.9%p 5 10 33.3%

전조(tells)는 폭락일 전날 피처가 평온일보다 두드러진 값이다. precision_pct 를 반드시 같이 읽을 것 — 같은 값이 평온일에 더 많이 나오면 그 전조는 못 쓴다. n 이 작아 대부분 우연 범위다.A tell is a feature value over-represented on the day before a crash relative to calm days. Always read precision_pct with it — if the same value shows up more often on calm days the tell is unusable. The samples are small, so most of this is within coincidence.

최악의 폭락일 (손익 순)Worst crash days (by P&L)

날짜DateL:S실현Realized손익P&L최대 피해축Worst axis롱으로 민 축Axes pushing long기권abstain
2026-07-23 47:53 -6.2815% 0.3386%p cash_intent (0.6797%p) cash_intent · cash_late30
2026-08-18 47:53 -6.4131% 0.4072%p cash_intent (0.7978%p) cash_intent · fut_late30 · fut_intent fut_reversal · cash_reversal
2026-07-31 46:54 -5.7403% 0.4162%p cash_intent (0.729%p) cash_intent · auction_fade · fut_intent
2026-08-05 43:57 -5.3602% 0.7322%p cash_intent (0.5366%p) cash_intent · auction_fade · fut_intent
2026-07-15 27:73 -7.1776% 3.2601%p fut_intent (0%p) cash_intent
2026-07-28 20:80 -6.1849% 3.6936%p fut_intent (0%p) auction_fade
2026-07-27 23:77 -11.5533% 6.2099%p fut_intent (0%p)
  • 폭락 라벨은 사후 — 이 표로 다음 폭락을 예측한다는 주장이 아니다.The crash label is ex-post — this table makes no claim to predict the next crash.
  • 표본이 극히 작다(폭락 n<10). 분포 차이는 대부분 우연과 구분되지 않는다.The sample is very small. Most distribution differences are indistinguishable from chance.
  • 모델은 일간 종가 기준이라 장중 폭락·회복은 안 보인다.The model works on daily closes, so intraday crashes and recoveries are invisible to it.

귀책 게이트 — 답이 데이터 안에 있었나Attribution gate — was the answer inside the data?

internal 은 고칠 수 있는 실패다(배선·소스선택·가중). external 은 이 원장으로 못 잡는 실패다 — 새 데이터가 필요하거나 원리적 천장이다. 둘을 안 가르면 모든 실패가 "그냥 틀림"이 되고 어디를 고쳐야 할지 안 나온다.internal failures are fixable — wiring, source choice, weighting. external ones are not catchable with this ledger: they need new data or hit a hard ceiling. Without the split every failure collapses into "we were wrong" and nothing points at the repair.

내부 귀책Internal 72.2% 18 wrong days
우리 문제 밖Outside our scope 27.8% internal_unread 4 · internal_misweight 9 · source_conflict 4 · external 1
날짜Date 실현Realizednet 판정Verdict detail
2026-08-27 -2.1045% 0.1236 internal_misweight
2026-08-26 1.6291% -0.2018 internal_misweight
2026-08-25 0.988% -0.288 source_conflict
2026-08-24 0.6328% -0.0968 internal_misweight
2026-08-21 -3.8531% 0.1273 source_conflict
2026-08-19 6.7519% -0.2766 source_conflict
2026-08-13 2.5148% -0.1847 internal_misweight
2026-08-11 4.2566% -0.1141 internal_unread fut_reversal
2026-08-10 0.9777% -0.1341 internal_misweight
2026-08-07 0.3191% -0.1407 internal_misweight
2026-08-04 3.8559% -0.5421 external
2026-08-03 1.3489% -0.46 internal_misweight
  • 정답 부호는 익일 실현의 사후 부호다 — 이 게이트는 예측력이 아니라 책임 소재를 잰다.
  • external 비율이 높다고 모델이 좋은 게 아니다. 반대도 아니다.

현·선 교차 — 두 시장이 갈린 날Cash vs futures — days the two markets disagreed

같은 주체가 선물과 현물에서 반대로 움직인 날은 한쪽 시장만 봐도, 종점만 봐도 안 갈린다. 선물만 크게 반납하고 현물은 유지·매수면 헤지 해제 정합이다.Days where the same participant moves opposite ways in futures and cash cannot be separated by looking at one market, or at the endpoint. A large futures reversal with cash held or bought is consistent with unwinding a hedge.

futures_buy_cash_sell cash_dumped_futures_held
선물 장중의도Futures intent 현물 장중의도Cash intent
15:452,214-16,469
막판 30분Last 30 min 1,025 -1,193
반납률Reversal ratio 0.2560

선물만 크게 반납하고 현물은 유지·매수면 헤지 해제 정합. 두 시장 부호가 갈린 날은 종점 하나로는 절대 안 갈린다.A large reversal in futures with cash held or bought is consistent with unwinding a hedge. Days where the two markets disagree cannot be separated from the endpoint alone.

ReversalForensics — 2026-08-28

낮에 사놓고 막판에 던진 것이 자기 롱을 턴 것(청산)인가, 새로 숏을 깐 것(신규)인가.When a participant buys through the session and dumps into the close, is that unwinding their own long (liquidation) or putting on a new short?

15:00~15:30 · OI 714 · 가격 -1.3 · dominant new_short 412

신호Signal path_maxt_max15:45final 막판 30분Last 30 min 반납률Reversal ratio 판정Verdict
외국인 3,24415:46 2,2142,289 1,025 0.256 신규 롱 정합consistent with new longs
금융투자 71710:51 -2,694-2,639 -1,274 0.905 신규 숏 정합consistent with new shorts
투신 19815:06 57-548 -646 0.627 신규 숏 정합consistent with new shorts
개인 56716:07 170567 742 0 신규 롱 정합consistent with new longs
  • OI 는 시장 전체다. 주체별 미결제는 KRX 미공개 — 그래서 판정은 "정합"이지 확정이 아니다. 같은 시각 다른 주체가 반대로 움직이면 부호가 상쇄돼 판별이 흐려진다.Open interest is market-wide. Per-participant OI is not published by KRX, so every verdict here is "consistent with", not established. When other participants move the opposite way at the same time the signs offset and the discrimination blurs.
  • 대량 반전이 단일 주체인지 동시다발인지 안 갈린다 — Quadrant 트랙과 같은 천장.Whether a large reversal is one participant or several acting at once is not determinable — the same ceiling the Quadrant track declares.
  • 틱 분해는 |ΔOI| 가중 추정이고 엔진이 reliability 를 스스로 낮음으로 낸다.The tick decomposition is an |dOI|-weighted estimate and the engine reports its own reliability as low.
  • n=1 일 관측. 원장이 쌓이기 전엔 base rate 가 없다 — 판정 문구를 신호로 쓰지 말 것.A single-day observation. There is no base rate until the ledger accumulates — do not treat the verdict text as a signal.

사건연구 — 장중 순매수 → 종가 순매도 전환일Event study — intraday net long that ended net short

외인 선물이 장중 누적 순매수(path_max>0)였다가 종가에 순매도/0 으로 전환한 날. 반납율 0.3 이상은 별도 플래그.Days where foreign futures were net long intraday (path_max > 0) but ended the session net short or flat.

nOI 실현Realized 익일 등락Next-day return 익일 상승률Next-day up rate
전환일Flipped 26 1,157.04 2.03% -0.76% 53.8%
비전환일Not flipped 36 3,369.94 -1.57% -0.04% 60%

상대방 (막판 반대 비율)Counterparty (opposite in last 30 min)

신호Signalopposite%mean size
금융투자20/26 76.9% 1,535
투신21/25 84% 2,573
개인13/26 50% 476

상대방 비율이 높은 주체가 그 물량을 받은 쪽이다 — 다만 동시성이지 인과 아님. 익일 수익률 차이는 n 이 작아 base rate 로만 읽을 것.The participant with the high opposite rate is the one absorbing the flow — concurrency, not causation. The next-day return gap rests on a small n; read it as a base rate only.

절제 실험 (leave-one-out) — 감시 목록Ablation (leave-one-out) — watchlist

★ 이 표를 보고 축을 즉시 빼면 그게 과최적이다. 동결 스펙은 그대로 두고, 같은 방향이 out-of-sample 채점에서도 유지될 때만 changelog 를 남기고 뺀다.★ Dropping an axis right after reading this table is overfitting. Keep the frozen spec; remove an axis only when the same direction holds in out-of-sample scoring, and record it in the changelog.

제거한 축Axis dropped초과수익ExcessΔ vs 전체Δ vs full셔플 p (단측)Shuffle p (one-sided)상태Status
(전체 유지)(keep all) 0.1688%/일%/day 0.2185기준reference
−cash_reversal +0.2183%/일%/day +0.0495 0.1705 빼면 좋아짐(감시)better without it (watch)
−fut_reversal +0.2155%/일%/day +0.0467 0.1655 빼면 좋아짐(감시)better without it (watch)
−fut_late30 +0.2065%/일%/day +0.0377 0.196 빼면 좋아짐(감시)better without it (watch)
−fut_intent +0.1751%/일%/day +0.0063 0.2095 빼면 좋아짐(감시)better without it (watch)
−auction_fade +0.1491%/일%/day -0.0197 0.257 빼면 나빠짐(기여)worse without it (contributes)
−cash_intent +0.127%/일%/day -0.0418 0.2605 빼면 나빠짐(기여)worse without it (contributes)
−cash_late30 -0.0749%/일%/day -0.2437 0.629 빼면 나빠짐(기여)worse without it (contributes)

⚠ 모든 조합이 셔플 alpha 위 — 어느 신호 셋도 아직 신호가 아니다.⚠ Every combination sits above the shuffle alpha — no signal set qualifies yet.

엔진 개선 이력Engine changelog v1.0.1

로직·파라미터를 바꾸면 ENGINE_CHANGELOG 에 먼저 적고 고친다. evidence 에 수치 근거를 남긴다 — 감으로 바꾸지 않는다. 이 리스트가 곧 화면의 개선 이력이라 코드와 화면이 갈라지지 않는다.로직·파라미터를 바꾸면 ENGINE_CHANGELOG 에 먼저 적고 고친다. evidence 에 수치 근거를 남긴다 — 감으로 바꾸지 않는다. 이 리스트가 곧 화면의 개선 이력이라 코드와 화면이 갈라지지 않는다.

v1.0.1 2026-08-12
변경Change fut_reversal / cash_reversal 축 부활 — _rev_of() 로 excursion 기준 산출.Revived the fut_reversal / cash_reversal axes via _rev_of(), deriving the ratio from excursion.
이유Reason 버그였다. BuySellTrend 원장은 excursion / path_max / path_min / reversal_from_high / reversal_from_low 를 52일 전부 채워 내는데 'reversal_ratio' 라는 키만 없다. LSR 은 그 키 하나만 찾아서 fut_reversal 이 **전 표본에서 매일 기권**하고 있었다. 7축이라 적어 놓고 실제로는 6축으로 돌았다. 식은 ReversalForensics 와 동일 코드를 쓴다 — 두 엔진이 다른 반납률을 내면 같은 화면에서 숫자가 갈린다.This was a bug. The BuySellTrend ledger fills excursion / path_max / path_min / reversal_from_high / reversal_from_low on all 52 days but has no key named 'reversal_ratio'. LSR looked only for that key, so fut_reversal abstained on every day of the sample: the model declared seven axes and ran on six. The formula now reuses the same code as ReversalForensics so the two engines cannot report different giveback numbers on the same screen.
근거Evidence 검산 08-12 hi=3,476 lo=−1,210 exc=4,686 fin=−1,071 → 0.970 으로 ReversalForensics 보고값과 일치. 08-11 0.261 / 08-10 0.000.
효과Effect ★ 성적이 **내려갔다**: 누적 +8.347 → +7.430pp, 초과 +0.3912 → +0.3474%/일, 셔플 p 0.093 → 0.0895. 오늘 비율 57:43 → 53:47. 죽은 축을 살렸더니 숫자가 나빠졌다는 것은 그 축이 최근 국면에서 역방향으로 기여했다는 뜻이다. 성적이 좋아지는 쪽(버그 유지)을 고르면 그게 결과 맞추기다 — 고친 값을 정본으로 둔다. status 는 여전히 not_established.★ Performance FELL: cumulative +8.347 to +7.430pp, excess +0.3912 to +0.3474 %/day, shuffle p 0.093 to 0.0895, and the ratio for today moved 57:43 to 53:47. A dead axis that worsens the score once revived contributed against the model in this regime. Choosing the version that scores better (keeping the bug) would be outcome-fitting, so the corrected value stands. Status remains not_established.
v1.0.0 signals 2026-08-12
변경Change ★ EOD 축 전량 기각. 9축 → 장중 7축으로 전면 교체. fut_intent·fut_late30·fut_reversal(선물 분봉 경로) · cash_intent·cash_late30·cash_reversal(K200 현물 90초 원장) · auction_fade(동시호가 레그). MIN_TRAIN 60→30, 확립 문턱 60→40.★ All end-of-day axes rejected. Nine axes replaced by seven intraday ones: fut_intent / fut_late30 / fut_reversal (futures minute path), cash_intent / cash_late30 / cash_reversal (K200 cash 90-second ledger), auction_fade (closing-auction leg). MIN_TRAIN 60 to 30, establishment floor 60 to 40.
이유Reason 종점만 읽는 모델은 일반 수급 분석과 구분되지 않는다. 실측 근거: 외인 선물 종점의 은폐율 중앙 44.4% · 장중 부호반전 87% · 증폭 1.80배. spot 축이 읽던 NetDeltaLedger.spot_eok 는 90초 원장·pykrx 와 08-12 에 4.85배 어긋났다(6,043 vs 29,304/29,308). 08-12 외인 선물은 종점 −1,071 인데 장중의도 +1,092 로 부호가 뒤집힌다.A model that reads only the closing number is indistinguishable from generic flow analysis. Measured: the foreign futures endpoint hides a median 44.4% of the intraday path, the path crosses zero on 87% of days, amplification 1.80x. The spot axis was reading NetDeltaLedger.spot_eok, which diverged 4.85x from both the 90-second ledger and pykrx on 2026-08-12 (6,043 vs 29,304 / 29,308). That day the foreign futures endpoint was -1,071 while intraday intent was +1,092 — opposite signs.
근거Evidence 장중 전용 초과 +0.3912%/일 (EOD 9축 +0.0484 의 8배) · 셔플 p 0.2665→0.093 · 채점 21일. ★ 표본이 191일 → 52일로 리셋된다 — 성적 개선이 아니라 정직한 표본으로 다시 세는 것이다.
효과Effect 확립 판정이 몇 달 뒤로 밀린다. p=0.093 은 여전히 alpha 위 — not_established 유지. 기각된 EOD 축과 사유는 EOD_AXES_REJECTED 에 박아뒀다(되살리지 말 것).Establishment slips out by months. p=0.093 is still above alpha, so the track stays not_established. The rejected EOD axes and the reason for each are recorded in EOD_AXES_REJECTED — do not revive them.
v0.3.0 signals 2026-08-12
변경Change megacap 축 추가(9축) — 삼전+하닉 **현물** 외국인 순매수 부호. 신규 MegaCapFlow 엔진이 pykrx 로 종목별 일별 시계열을 원장에 적립한다.Added a megacap axis (9 total) — the sign of foreign CASH net buying in Samsung Electronics plus SK Hynix. A new MegaCapFlow engine accumulates the per-name daily series from pykrx into a ledger.
이유Reason spot 축은 K200 바스켓 **합계**라 종목이 안 갈리고, ssf 축은 **선물**이라 현물 대형주 흐름을 대리하지 못한다. 두 종목이 지수의 51.5%인데 그 흐름이 어느 축에도 안 잡혔다. 08-12 에 외인 지수선물 −1,071계약인데 삼전 현물 +14,816억 — 두 축이 정반대로 갈린 날 이 칸이 비어 있었다.The spot axis is a K200 basket aggregate that does not separate names, and the ssf axis is futures, which does not proxy for cash flow in the mega-caps. Those two names are 51.5% of the index, yet their flow appeared on no axis. On 2026-08-12 foreigners sold 1,071 index futures while buying 1.48tn KRW of Samsung cash — the two diverged on a day when this slot was empty.
근거Evidence 커버리지 191일 결측 0(신규 축 중 유일). 초과 +0.0607→+0.0484%/일 · 셔플 p 0.237→0.2665 · MDD −11.77→−10.04. 누적 기여 +2.20%p(9축 중 5위) · 오답률 39.2%(spot·narrow 와 동률 최저). 절제 Δ+0.0123(빼면 소폭 개선 — 감시).
효과Effect 초과는 소폭 하락, MDD 는 개선. 방향 판정은 out-of-sample 채점에 맡긴다. 표본 내 절제 결과로 즉시 빼지 않는다.Excess dips slightly, drawdown improves. The verdict is left to out-of-sample scoring; the axis is not removed on an in-sample ablation result.
v0.2.1 diagnostics 2026-08-12
변경Change 폭락 사후분석(crash_review) 추가 — 폭락일에 모델이 뭘 들고 있었고, 어느 축이 얼마나 손해를 냈고, 전날 전조가 있었는지, 그 전조가 평온일에도 나왔는지(가짜경보/정밀도)까지 낸다.Added a crash postmortem (crash_review): what the model was holding on crash days, which axis lost how much, whether a precursor appeared the day before, and whether that precursor also fired on calm days (false alarms / precision).
이유Reason "폭락 때 왜 놓쳤는지, 비슷한 패턴이 있었는지 전부 체크" 요구. 평균 성적만 보면 꼬리에서 무슨 일이 났는지 안 보인다.Answering "why did we miss the crashes, and were there similar patterns" — averages alone hide what happens in the tail.
근거Evidence 폭락(-5%↓) 21/129일 · 그날 평균 net +0.226 · 21일 중 18일 롱편향 · 누적 -32.93%p. 전조 정밀도: giveback=2 40.0%(폭락10/가짜15) · fut=-1 28.1%(16/41). 폭락 기저율 16.3% 대비 giveback=2 는 2.45배.
효과Effect 전조는 전부 정밀도가 낮아 단독 트리거로 못 쓴다 — tell_caveat 에 명시. 가짜경보 수를 항상 같이 낸다.Every precursor has low precision, so none can be used as a standalone trigger — stated in tell_caveat. False-alarm counts are always reported alongside.
v0.2.0 signals 2026-08-12
변경Change 신호 3축 → 8축. core3(합성)을 fut·spot·ssf 로 분해하고 fade·giveback·basket 추가. fade = 동시호가 레그가 연속세션과 반대(장중매수→막판투척). giveback = 장중 누적 고점 대비 종가 반납률. basket = K200 바스켓 외인 방향.Signals 3 to 8. Split the composite core3 into fut/spot/ssf and added fade, giveback and basket. fade = the closing-auction leg opposing the continuous session (bought intraday, dumped into the close). giveback = how much of the intraday peak accumulation was handed back by the close. basket = foreign direction in the K200 basket.
이유Reason ★ 표본 절제 결과를 보고 고른 축이 아니다 — 사용자가 지목한 도메인 가설이다. "외국인이 장중에 샀다가 막판에 전부 던지는 패턴"과 SSF·바스켓을 반영하라는 요구. 사후 성적으로 축을 고르면 과최적이지만, 사전 가설로 축을 넣고 채점에 맡기는 건 정상 절차다.★ These axes were not picked by reading the ablation table — they are a domain hypothesis the user named: the "foreigners buy through the day then dump everything at the close" pattern, plus SSF and the basket. Choosing axes by their backtest score is overfitting; adding axes as a prior hypothesis and letting the scoring decide is the normal procedure.
근거Evidence 초과 +0.0334→+0.0569%/일 · 셔플 p 0.3345→0.2515(여전히 미달) · ablation 에서 basket Δ-0.0442 로 최대 기여 · giveback 은 Δ+0.0155(감시)
효과Effect fade/giveback/basket 은 원장이 짧아(26·31·25일) 대부분 기권한다 — 영향이 작고 아직 채점 불가. 커버리지가 쌓여야 판정된다.fade/giveback/basket abstain on most days because their ledgers are short (26/31/25 days) — small influence and not yet scorable. They resolve once coverage accumulates.
v0.1.1 observability 2026-08-12
변경Change leave-one-out 절제 실험(ablation)을 상설 산출로 추가.Added leave-one-out ablation as a permanent output.
이유Reason narrow 축을 빼면 초과가 4배(+0.1288)로 뛰는 걸 발견했지만 129일 표본을 보고 즉시 빼면 그게 표본 맞추기다. 빼는 대신 매일 재계산해 out-of-sample 로도 같은 방향인지 적립한다.Dropping the narrow axis quadrupled excess return (+0.1288), but removing an axis because a 129-day sample says so is fitting the sample. Instead of dropping it we recompute daily and accumulate whether the same direction holds out-of-sample.
근거Evidence -narrow Δ+0.0954(p 0.3345→0.12) · -core3 Δ+0.0021 · -streak Δ-0.0658
효과Effect 동결 스펙 유지. ablation.leave_one_out 이 감시 목록 역할.Frozen spec kept. ablation.leave_one_out serves as the watchlist.
v0.1.0 init 2026-08-12
변경Change 초판. 신호 3축(core3·narrow·streak) 동일가중 · 워크포워드 확장창 · 매일 채점 + 신호별 귀책 분해 + 원장 upsert.First release. Three signals (core3 / narrow / streak), equal weight, walk-forward expanding window, daily scoring plus per-signal attribution, ledger upsert.
이유Reason 외인 5축 중 풋 하나만 보고 하방 서사를 짰다가 다음날 +5.68% 를 놓친 사고. 축을 묶고 매일 채점해 어디서 틀렸는지 남기는 장치가 필요했다.We read one of five foreign axes (put notional) as bearish, built a bearish narrative on it, and missed a +5.68% day. We needed a device that bundles the axes and records where it went wrong, every day.
근거Evidence 워크포워드 n=129 · 모델 +0.1315%/일 vs 익스포저일치 +0.0982%/일 · 초과 +0.0334 · 셔플 p=0.3345(미달) · MDD -11.2 vs -48.2
효과Effect signal_status=not_established 로 출발. 확립 전 실행 금지.Ships as signal_status=not_established. No execution before it is established.

열린 질문Open questions

id열린 질문Open questions판정 기준Resolution criterion상태Status
narrow_drop narrow 축을 빼야 하나Should the narrow axis be dropped? out-of-sample 채점 30일 이상에서 ablation delta_vs_full 이 계속 +이고 신호별 누적 pnl 이 음수를 유지하면 제거하고 MAJOR 로 기록If, over 30+ out-of-sample scored days, ablation delta_vs_full stays positive and the signal cumulative P&L stays negative, drop it and record a MAJOR bump. watching
param_thaw min_train/gate/scale_k 동결을 풀어야 하나Should the min_train / gate / scale_k freeze be lifted? 풀지 않는다. 민감도 진폭이 120배(+0.0009~+0.1075)라 표본 내 최적화는 무의미. 표본이 400일을 넘고 국면이 2개 이상 섞인 뒤 재검토No. The sensitivity spread is 120x (+0.0009 to +0.1075), so in-sample tuning is meaningless. Revisit once the sample exceeds 400 days and spans two or more regimes. frozen
auction_extreme 외인 동시호가 선물 매수일이 국소 저점, 매도일이 국소 고점인가Are foreign closing-auction futures buy days local lows and sell days local highs? 표본 내 실측(52일, post 필드, +-2일 창, 기저 20%): 매수일 26개 중 국소고점 **0개(0%)** · 국소저점 7개(27%). 매도일 22개 중 국소고점 9개(41%) · 국소저점 1개(5%). 창을 넓히면 매도측은 기저로 수렴한다(+-3일 14% = 기저 14%, +-5일 5% = 기저 9%) - "꼭지"는 +-2일짜리다. 매수측 0% 는 세 창 전부에서 유지된다. 동시성 r=-0.640 · 매수일 당일 평균 -3.54%(하락 70%) · 매도일 +3.22%(상승 88%). 익일은 r=+0.159 로 방향성이 아니라 크기 비대칭이다 (매도일 익일 평균 -1.32% 인데 상승비율 48% = 동전). 판정 기준: 동결 후 out-of-sample 30일 이상에서 매수일 국소고점 비율이 기저(20%) 아래를 유지하면 축 후보로 승격, 아니면 표본 내 우연으로 폐기.In-sample measurement (52 days, post field, +-2d window, 20% base rate): of 26 auction-buy days, 0 (0%) were local highs and 7 (27%) were local lows; of 22 auction-sell days, 9 (41%) were local highs and 1 (5%) a local low. Widening the window collapses the sell side to the base rate (14% at +-3d against a 14% base, 5% at +-5d against 9%), so the "top" is a +-2 day artifact, while the buy-side 0% holds across all three windows. Contemporaneous r = -0.640; buy days average -3.54% same day (70% down), sell days +3.22% (88% up). The next day gives r = +0.159, which is a magnitude asymmetry rather than a direction (sell days average -1.32% the next day but rise 48% of the time, a coin flip). Decision rule: if the local-high rate on buy days stays below the 20% base over 30+ out-of-sample days after this freeze, promote it to an axis candidate; otherwise discard it as an in-sample coincidence. watching
establish 셔플 p 가 alpha 아래로 내려가는가Does the shuffle p-value drop below alpha? p < 0.05 AND 채점 표본 >= 40p < 0.05 AND scored samples >= 40 watching

천장 — 이 화면을 읽을 때Ceilings — how to read this page

  • ★ 셔플 검정을 통과하기 전에는 신호가 아니다 — signal_status 를 먼저 읽을 것.★ Until it clears the shuffle test this is not a signal — read signal_status first.
  • 벤치마크는 0 이 아니라 익스포저 일치 buy&hold 다. 표본 구간에 강세 드리프트가 있다.The benchmark is not zero but an exposure-matched buy&hold. The sample window carries a bullish drift.
  • 거래비용·슬리피지·증거금 미반영 — 회전율(turnover_per_day)로 크기만 가늠할 것.Transaction costs, slippage and margin are not modelled — use turnover_per_day only to gauge magnitude.
  • net 은 지수 익스포저지 종목 롱숏이 아니다. L:S 표기는 gross=1 기준 환산 표시.net is index exposure, not a single-stock long/short book. The L:S label is a gross=1 rescaling.
  • 입력 신호 셋은 동일가중이다. 가중치를 적합하지 않았다 — 190일에 맞추면 과최적.The input signals are equally weighted. No weights were fitted — fitting them on 190 days would be overfitting.
  • ★ 축 셋 자체는 전 표본을 보고 골랐다 — EOD 축 9개를 기각하고 장중 축 7개를 남긴 판단은 워크포워드 밖에서 이뤄졌다. 날짜별 비율은 확장창이라 누수가 없지만 축 선택은 사후다. 표시된 초과수익은 상한이지 기대값이 아니다 — 진짜 검증은 축을 동결한 오늘 이후의 날뿐이다.★ The axis set itself was chosen with full-sample knowledge: rejecting nine EOD axes and keeping seven intraday axes happened outside the walk-forward. Per-day ratios use an expanding window and do not leak, but the axis choice is ex-post. The excess return shown is an upper bound, not an expectation — only days after this freeze test it.
  • ★ EOD 축 기각의 근거는 성적이 아니라 관측이다 — 종점이 장중 의도의 중앙값 44.4% 를 숨긴다는 측정. 성적으로 골랐다면 그건 결과 맞추기다. 근거를 성적으로 바꾸지 말 것.★ The EOD axes were rejected on an observation, not on performance: the measurement that the endpoint hides a median 44.4% of intraday intent. Selecting them on performance would be outcome-fitting. Do not substitute performance for that rationale.
  • 버킷 기대값은 확장창이라 초기 구간일수록 표본이 얇다(게이트로 기권 처리).Bucket expectations come from an expanding window, so early periods are thin (handled by abstention gates).
  • 이 표본은 한 국면(변동성 극단)에 치우쳐 있다 — 국면이 바뀌면 재채점 필요.This sample is skewed toward one regime (volatility extreme) — rescoring is required if the regime changes.

동결 파라미터Frozen parameters: min_train=30 · gate=8 · scale_k=0.5 · max_step=0.5. 민감도 중앙값 채택. 성적 좋은 조합(min_train=90)을 고르지 않았다 — 그건 표본에 맞추는 것이다.

배제된 축Excluded axes: pin_magnet(적중 15.0%(n=220) — 채점 사망) · maxpain_pull(적중 43.8%(n=240) — 동전 이하) · pcr(셔플 기각(p=0.301)) · inflection_label(사후 정의(이후 구간 필요) — 입력에 쓰면 미래참조)

Foreign AxesForeign Axes 외국인 5축 합의도foreign 5-axis agreement

외국인 다섯 축(선물·현물·SSF·옵션순델타·풋명목)의 부호만 모아 합의 개수를 센다. 단위가 전부 달라 합산·가중은 금지 — 부호 벡터와 개수만. 축을 따로 읽으면 다수가 매수인 날에도 하방으로 읽히는 축 하나에 가중이 실린다. 그 사고를 막는 장치다.Collects the signs — only the signs — of five foreign-flow axes (futures, cash, SSF, option net delta, put notional) and counts how many agree. The units differ, so summing or weighting them is forbidden: sign vector and count only. Read one axis at a time and a single bearish-looking axis can outweigh a buying majority. This page exists to prevent that.

산출Generated 2026-08-29 22:12:32 · n=202 (2025-11-03 ~ 2026-08-28)

최신 판정Latest reading — 2026-08-28

핵심3축 1/3 매수core-3: 1/3 buying · 옵션델타 포함 2/4incl. option delta 2/4 · 풋만 반대 방향put axis alone dissents
신호Signal 원값Raw 단위Unit 부호Sign 비고Note
선물 +2,289 계약 매수buy +1
K200 현물 -19,374 억원 매도sell −1
옵션 순델타 +6,139 계약등가 매수buy +1
SSF 삼전+하닉 -53,560 계약 매도sell −1
풋 명목 -116 백만원 매도sell −1 통념 환산표conventional vote +1(상방bullish)
삼전·하닉 현물 -17,122.7 억원 매도sell −1
선물 장중의도 계약(15:45 누적) 결측missing
막판 30분 계약 결측missing

계약 / 억원 / 계약등가 / 백만원이 섞여 있다. 축 간 산술 금지. SSF(삼전+하닉)와 풋 명목(만기 합)은 축 *내부* 동일단위 합산이라 허용.Contracts, 100M KRW, contract-equivalents and millions of KRW are mixed. No arithmetic across axes. Summing inside an axis is allowed where the unit is the same (SSF = Samsung + Hynix; put notional = sum across expiries).

핵심3축 합의도 → 이후 수익률Core-3 agreement → forward returns

결측 0 인 세 축(선물·현물·SSF)만으로 센 표. 기준선(무조건 보유) 대비 단조인지가 관건이다.Counted from the three axes with zero missing days (futures, cash, SSF). What matters is whether it is monotone against the always-invested baseline.

매수 표Buy votesn h1 평균 / 상승mean / up-rateh3 평균 / 상승mean / up-rateh5 평균 / 상승mean / up-rate
0/3 37 -0.42% / 56.8% +0.02% / 56.8% -0.64% / 45.9%
1/3 82 +0.13% / 60.5% +0.72% / 56.8% +1.66% / 55.7%
2/3 57 +0.9% / 63.2% +2.04% / 69.1% +2.63% / 69.1%
3/3 26 +1.05% / 76.9% +1.88% / 69.2% +4.53% / 80.8%
기준선Baseline201 +0.37% / 62.7%+1.11% / 61.8%+1.88% / 60.9%

풋 실험 — 통념(순매수=하방)이 정보를 더하나Put experiment — does the convention (net buying = bearish) add information?

score_core3_on_put_days(대조군) 와 score_core3_plus_put(처리군)을 비교한다. **날짜 집합이 같다** — 풋 축 하나만 더한 차이다. 처리군 단조성이 더 매끄러우면 풋이 정보를 더한 것이고, 아니면 잡음이다. 대조군을 전체 기간 score_core3 와 비교하면 풋 결측일 때문에 날짜가 달라져 공정하지 않다.Compare score_core3_on_put_days (control) with score_core3_plus_put (treatment). The date sets are identical — the only difference is the added put axis. If the treatment is more cleanly monotone the put added information; otherwise it is noise. Comparing the control against the full-period score_core3 would be unfair, because missing put days change the date set.

사전 근거Prior: ForwardTest frgn_atm_put 54.2%(n=240) · 규모 상위구간 55.6%(n=45)로 중간구간 70.2%(n=47)보다 낮다 — 통념이 이미 흔들리는 상태.ForwardTest frgn_atm_put scores 54.2% (n=240); the largest-size bucket scores 55.6% (n=45), below the middle bucket at 70.2% (n=47) — the convention is already shaky.

대조군 — 풋 있는 날의 3축Control — core-3 on days with put data

매수 표Buy votesnh5
0/310 ⚠ -5.37% / 30%
1/333 -0.39% / 40%
2/321 0% / 36.8%
3/34 ⚠ 2.75% / 75%

처리군 — 3축 + 풋Treatment — core-3 + put

매수 표Buy votesnh5
0/49 ⚠ -4.13% / 33.3%
1/420 -2.88% / 27.8%
2/424 0.7% / 45.5%
3/414 ⚠ 1.44% / 46.2%
4/41 ⚠ 0.48% / 100%
풋 축 상태Put axis statenh1h3h5
풋만 반대 방향put axis alone dissents28 0.5% / 63% 1.52% / 57.7% 0.36% / 46.2%
풋도 같은 방향put axis agrees40 -0.46% / 57.5% -1.62% / 35.9% -1.72% / 35.1%

커버리지 — 어느 축이 몇 일 비어 있나Coverage — how many days each axis is empty

신호Signal 결측일Missing days 가용률Availability 묶음Group
선물 계약 0d 100%core3
K200 현물 억원 0d 100%core3
옵션 순델타 계약등가 174d 13.9%core4
SSF 삼전+하닉 계약 0d 100%core3
풋 명목 백만원 134d 33.7%put_overlay
삼전·하닉 현물 억원 0d 100%put_overlay
선물 장중의도 계약(15:45 누적) 202d 0%put_overlay
막판 30분 계약 202d 0%put_overlay

core3 (futures · spot · ssf) — 결측 0 — 전 구간 커버. 주 채점축.Zero missing days — full coverage. The primary scoring axes.
core4 — core3 + 옵션 순델타. 원장(OptionPositioning)이 짧아 표본 부족.core3 plus option net delta. The OptionPositioning ledger is short, so the sample is thin.

최근 45일 부호 타임라인Sign timeline — last 45 days

날짜Date 선물K200 현물옵션 순델타SSF 삼전+풋 명목삼전·하닉 현선물 장중의도막판 30분 3축core-3
08-28 + + · · 1/3
08-27 + + + + + · · 2/3
08-26 + + + · · 2/3
08-25 + + · · 1/3
08-24 + + + · · 1/3
08-21 + + + + · · 2/3
08-20 + + + + · · 2/3
08-19 + · · 0/3
08-18 + + + + · · 2/3
08-14 + + + + · · 1/3
08-13 + + + · · 1/3
08-12 + + + + + · · 2/3
08-11 + + + + + + · · 3/3
08-10 + + · · 1/3
08-07 + + · · 1/3
08-06 + · · 1/3
08-05 + + + + · · 2/3
08-04 + + · · 1/3
08-03 + + · · 0/3
07-31 + + + + · · 2/3
07-30 + + + · · 2/3
07-29 + + · · 2/3
07-28 + · · 1/3
07-27 + + + · · 1/3
07-24 + + + · · 1/3
07-23 + + + + · · 1/3
07-22 + + + + · · 1/3
07-21 + + + · · 1/3
07-20 + + · + · · 2/3
07-16 + · · · 1/3
07-15 + · + + · · 1/3
07-14 + + · + · · 2/3
07-13 + · + + · · 2/3
07-10 · + · · 0/3
07-09 + + · · · 2/3
07-08 + + · + · · 3/3
07-07 + · · · 1/3
07-06 · · · 0/3
07-03 + · + · · 2/3
07-02 + · · · 1/3
07-01 + · + + · · 2/3
06-30 · + · · 0/3
06-29 + · + · · 2/3
06-26 + · · · 1/3
06-25 · + · · 0/3

천장Ceilings

  • 순매수 흐름이지 보유 포지션 아님 — 축 다섯 개 모두 flow 다. 누적 재고 아님.These are net-buying flows, not held positions — all five axes are flow, not accumulated inventory.
  • 헤지·차익·방향베팅을 구분할 수 없다. 부호가 같다고 같은 의도가 아니다.Hedging, arbitrage and directional bets cannot be told apart. The same sign does not mean the same intent.
  • 옵션 순델타는 원장(NetDeltaLedger option_delta) 값으로 표본 게이트 미달 구간이 있다 — 방향만, 백분위 금지.Option net delta comes from the NetDeltaLedger and falls below the sample gate in places — direction only, no percentiles.
  • SSF 는 종목선물(삼전·하닉) 두 개뿐 — K200 전체 대리 아님.SSF covers only two single-stock futures (Samsung Electronics, SK Hynix) — not a proxy for all of K200.
  • 풋 명목은 만기 합이라 롤 구간에 스코프가 흔들린다(부호만 신뢰).Put notional is summed across expiries, so its scope shifts around rolls — trust the sign only.
  • 합의 개수는 순서척도지 확률 아님. 4/4 라고 강한 신호가 아니라 표본이 그렇게 나왔을 뿐.The agreement count is ordinal, not a probability. 4/4 is not a strong signal — it is just how the sample fell.

Inflection ScoreInflection Score 변곡일 ↔ 일반일inflection vs ordinary days

ForwardTest 는 가설 적중률을 하나의 평균으로 낸다. 그 평균이 두 성적을 덮고 있었다 — 가장 신뢰한 축이 변곡일에 무너지고, 죽었다고 버린 축이 변곡일에 살아난다. 문제는 “변곡점에서 다 틀린다”가 아니라 신뢰축과 폐기축이 자리를 바꾼다는 것이다.ForwardTest reports one average hit rate per hypothesis. That average was hiding two very different records — the axes we trusted most collapse on inflection days, and the axes we discarded come back to life. The problem is not “everything fails at turning points” but that the trusted set and the discarded set swap places.

산출Generated 2026-08-29 22:13:20 · 202d (2025-11-03 ~ 2026-08-28) · 1680 표본samples

★ 변곡은 사후 정의다 — 이후 3거래일을 봐야 판정된다. 실시간으로 “오늘이 변곡”을 알 수 없으므로 이 표로 오늘 쓸 세트를 고르면 미래참조다. 쓰임새는 둘뿐 — 단일 평균의 착시를 깨는 것, 그리고 변곡확률 추정 트랙을 만들 근거를 적립하는 것.★ Inflection is defined ex-post — it takes 3 further sessions to label. You cannot know in real time that “today is an inflection”, so picking today’s signal set from this table would be look-ahead. It has exactly two uses: breaking the illusion of the single average, and accumulating the case for a separate inflection-probability track.
변곡일Inflection days 58/202 전체의 28.7%28.7% of all days
일반일 합산 적중Ordinary-day hit rate 50.2% n=1062
변곡일 합산 적중Inflection-day hit rate 59.8% n=600 · swingswing +9.6%p
분류 유보Unclassified (pending) 3d 2026-08-26 · 2026-08-27 · 2026-08-28

합산은 가설별 상쇄로 밋밋해진다 — 실제 이야기는 by_hyp 에 있다.The aggregate flattens out as hypotheses offset each other — the real story is in by_hyp.

가설별 — 일반일 vs 변곡일By hypothesis — ordinary vs inflection

가설Hypothesis 일반일Ordinary 변곡일Inflection swingswing 공식값 대조Self-check vs official
regime_hot 70.1% (n=137) 44.3% (n=70) -25.8%p 공식official 61.4% = 재계산recomputed 61.4% ✓
gex_flip 59.9% (n=182) 56.2% (n=105) -3.7%p 공식official 58.6% = 재계산recomputed 58.6% ✓
frgn_atm_put 45.5% (n=187) 63.6% (n=110) +18.1%p 공식official 52% = 재계산recomputed 52% ✓
iv_skew_down 50.3% (n=187) 71.8% (n=110) +21.5%p 공식official 58% = 재계산recomputed 58% ✓
maxpain_pull 38.5% (n=187) 70% (n=110) +31.5%p 공식official 50.3% = 재계산recomputed 50.3% ✓

자기검산 불일치 — 헤드라인에서 제외Self-check mismatch — excluded from headline

가설Hypothesis 공식official 재계산recomputed 사유Reason
pin_magnet 15.4% 43.6% 공식 채점식이 방향(direction==actual)이 아니다 — 이 트랙의 재계산값은 방향 기준 재해석이므로 공식값과 나란히 두지 말 것.The official scoring rule is not directional (direction==actual). This track reinterprets it directionally, so do not place the two side by side.

축 교체 — 변곡일에 자리가 바뀐다Axis swap — the roles reverse on inflection days

같은 가설 집합인데 두 목록의 구성이 갈리면, 일반일 성적으로 고른 축 조합이 변곡일에 무력화된다는 뜻이다.Same hypothesis set, yet the two lists differ in membership — which means an axis mix chosen on ordinary-day performance is neutralised on inflection days.

변곡일에 무너지는 축 (신뢰하던 것)Collapses on inflection days (the trusted ones)

가설Hypothesis 일반일Ordinary 변곡일Inflection swingswing
regime_hot70.1%44.3% -25.8%p

변곡일에 살아나는 축 (버렸던 것)Revives on inflection days (the discarded ones)

가설Hypothesis 일반일Ordinary 변곡일Inflection swingswing
frgn_atm_put45.5%63.6% +18.1%p
iv_skew_down50.3%71.8% +21.5%p
maxpain_pull38.5%70% +31.5%p

임계 10%p 이상만 목록에 올린다.Only entries at or beyond 10pp are listed.

정의 · knobDefinition · knobs

변곡일Inflection day직전 3거래일 누적방향과 이후 3거래일 누적방향이 반대이고, 양쪽 절대값이 모두 1.0% 이상인 날A day where the cumulative direction over the prior 3 sessions and the next 3 sessions are opposite, with both moves at least 1.0% in absolute terms
노이즈 게이트Noise gate횡보 구간이 부호만으로 변곡 판정되는 것을 막는 노이즈 게이트A noise gate that stops flat, sideways stretches from being labelled inflections on sign alone
적중 판정Hit rulehyps[].direction == scored[h].actual
knobKnobs back_days=3 · fwd_days=3 · min_pct=1 · n_gate=20 · rate_tol=0.005
유보 처리Pending handling최근 3거래일은 이후 구간이 없어 판정 불가 — 변곡·일반 어느 쪽에도 넣지 않는다(분류 유보).The most recent 3 sessions cannot be labelled because the forward window does not exist yet — they go into neither bucket (classification pending).

천장Ceilings

  • ★ 변곡일은 사후 정의 — 이후 구간을 봐야 판정된다. 실시간 "오늘이 변곡" 판정 불가. 이 표로 오늘 쓸 세트를 고르면 미래참조다.★ Inflection days are defined ex-post — labelling one requires the following window. You cannot call "today is an inflection" in real time, so picking today’s signal set from this table is look-ahead.
  • 변곡 정의는 knob(back/fwd/min_pct) 의존 — 임계를 바꾸면 집합이 바뀐다. 하나의 진실 아님.The inflection definition depends on knobs (back / fwd / min_pct) — change a threshold and the set changes. It is not a single truth.
  • 가설 방향은 ForwardTest 기록 시점의 것이고, 여기서 재채점하지 않는다(원장 존중).Hypothesis directions are those recorded by ForwardTest at the time; they are not re-scored here (the ledger is authoritative).
  • scoring_mismatch=True 인 가설은 공식 채점식이 방향이 아니다 — 헤드라인에서 제외.Where scoring_mismatch is True the official scoring rule is not directional — excluded from the headline.
  • 셀 n 이 게이트 미달이면 백분위·유의성 금지, 부호와 방향만.Where a cell is below the sample gate, no percentiles or significance claims — sign and direction only.

K200 ContributionK200 Contribution 2026-08-28

breadth 트랙은 상승/하락 개수만 센다. 그래서 지수가 크게 오른 날에도 “어느 종목이 올렸나”를 산술적 필연으로만 말할 수 있었다. 이 트랙이 기여도 = 비중 × 등락률 [%p] 로 그 칸을 채운다.The breadth track only counts advancers and decliners. On a strongly up day that leaves “which names actually lifted the index” answerable only by arithmetic necessity. This track fills the gap with contribution = weight × return, in index points.

산출Generated 2026-08-29 22:12:36 · 구성Constituents 201/201 (구성일as of 2026-08-28) · c_i = (mcap_i / Σmcap_K200) × ret_i · Σc_i ≈ 지수 등락률

자기검산Self-check Σ기여Σ contribution -1.7958%p vs 실제 지수actual index -2.105% → 오차error 0.3092%p (허용tolerance 0.3) · attribution_usable = false 오차가 허용을 넘었다. 부호와 대략적 순위까지만 쓸 것.Error exceeds tolerance. Use only the sign and the rough ordering.
최대 기여Top contributor 삼성전기 비중Weight 2.042% × 등락률Return 2.6% = +0.0531%p · 상승기여 중 비중Share of positive 9.3%
breadth (개수)Breadth (counts) 145 / 51 비율ratio 0.74 · 보합unchanged 5
상위2 상승기여 점유Top-2 share of positive contribution 14.4% top5 27.3% · top10 39.9%
1위 제외 시 지수 기여Index contribution excluding #1 -1.849%p 나머지 종목 합sum of the remaining names

개수와 크기가 갈리면 소수 대형주 장세다. breadth 가 0.74(상승 우위) 인데 상위2가 상승기여의 14.4% 를 차지하면, 지수가 오른 게 아니라 두 종목이 오른 것이다.When count and size disagree, it is a narrow mega-cap tape. With breadth at 0.74 (advancers lead) and the top two taking 14.4% of positive contribution, the index did not rise — two stocks did.

기여도 상위 — 지수를 올린 종목Top contributors — names that lifted the index

# 종목Name 비중Weight 등락률Return 기여 %pContribution (pp) 종가Close
1 삼성전기 009150 2.042% +2.6% +0.0531 1,421,000
2 S-Oil 010950 0.323% +9.14% +0.0295 149,200
3 두산에너빌리티 034020 1.087% +2.68% +0.0291 88,200
4 KB금융 105560 1.171% +2.08% +0.0244 171,600
5 에이피알 278470 0.332% +6.21% +0.0206 461,500
6 SK이노베이션 096770 0.38% +4.38% +0.0167 116,900
7 기아 000270 0.961% +1.51% +0.0145 128,000
8 삼성에스디에스 018260 0.362% +3.85% +0.0139 243,000
9 우리금융지주 316140 0.475% +2.88% +0.0137 33,900
10 효성중공업 298040 0.566% +2.4% +0.0136 3,153,000
11 하나금융지주 086790 0.718% +1.8% +0.0129 136,000
12 NAVER 035420 0.645% +1.85% +0.0119 220,500
13 삼성생명 032830 1.193% +0.98% +0.0117 310,000
14 GS 078930 0.231% +4.87% +0.0112 129,200
15 LG전자 066570 0.631% +1.61% +0.0102 201,500

기여도 하위 — 지수를 눌렀던 종목Top detractors — names that weighed on the index

# 종목Name 비중Weight 등락률Return 기여 %pContribution (pp)
1 SK하이닉스 000660 23.232% -4.45% -1.0338
2 삼성전자 005930 28.907% -3.38% -0.9771
3 SK스퀘어 402340 2.609% -3.75% -0.0978
4 삼성바이오로직스 207940 1.323% -6.78% -0.0897
5 HD현대중공업 329180 0.923% -2.77% -0.0256
6 SK 034730 0.757% -2.34% -0.0177
7 한국전력 015760 0.402% -4.12% -0.0166
8 LS ELECTRIC 010120 0.619% -2.28% -0.0141
9 한국항공우주 047810 0.25% -3.27% -0.0082
10 HD한국조선해양 009540 0.483% -1.66% -0.008
11 한화시스템 272210 0.276% -2.7% -0.0074
12 한화오션 042660 0.522% -1.23% -0.0064
13 삼성에피스홀딩스 0126Z0 0.179% -3.24% -0.0058
14 삼성E&A 028050 0.184% -2.69% -0.0049
15 HD현대일렉트릭 267260 0.565% -0.85% -0.0048

집중도 — 상위 N 이 상승분의 몇 %인가Concentration — what share of the gain the top N take

구간Bucket 기여 %pContribution (pp) 순기여 중 비중Share of net 상승기여 중 비중Share of positive
top1 +0.0531 -3% 9.3%
top2 +0.0826 -4.6% 14.4%
top5 +0.1568 -8.7% 27.3%
top10 +0.2291 -12.8% 39.9%
top20 +0.3336 -18.6% 58.2%

breadth<50% 인데 top2 가 상승기여의 큰 몫을 차지하면 지수만 오른 날이다.Breadth below 50% while the top two take most of the positive contribution means only the index rose.

자기검산 — 왜 오차가 나는가Self-check — why there is an error

Σ기여Σ contribution-1.7958%p
실제 지수actual index-2.105%
오차error 0.3092%p (허용tolerance 0.3)
사용 가능Usablefalse
오차 사유Why the error실제 K200 은 유동비율 조정 시총 + 상한(cap)을 쓴다. 여기 가중은 원시 시총이라 구조적으로 어긋난다 — 오차를 숨기지 않고 측정해서 낸다.The real K200 uses float-adjusted market cap with a cap. These weights are raw market cap, so they diverge structurally — the error is measured and published rather than hidden.
사용법How to use오차가 tolerance 안이면 순위·상대크기까지 신뢰. 밖이면 부호와 대략적 순위까지만. 어느 경우에도 절대 pt 는 확정치 아님.Within tolerance, trust the ordering and relative magnitudes. Outside it, trust only the sign and rough ordering. In neither case are the absolute points definitive.
결측Missing 시총 미확인 0종목0 names without market cap

천장Ceilings

  • ★ 원시 시총 가중 — 실제 K200 의 유동조정·상한 가중이 아니다. reconstruction_error 로 그 어긋남을 측정해 병기한다.★ Raw market-cap weights — not the float-adjusted, capped weights the real K200 uses. The gap is measured and reported as reconstruction_error.
  • 기여도는 회계 분해지 인과 아님 — 지수 상승분 중 그 종목 몫이 얼마인지를 말할 뿐이다.Contribution is an accounting decomposition, not causation — it states what share of the index move a name accounts for, not that the name caused it.
  • 구성종목·비중은 조회일 기준. 정기변경 직후엔 하루 어긋날 수 있다(constituent_date 확인).Constituents and weights are as of the query date. Right after a scheduled rebalance they can be a day out of step (check constituent_date).
  • 등락률은 KRX 종가 기준 — 시간외·단일가 반영분은 소스 규약을 따른다.Returns are KRX close-to-close — after-hours and single-price sessions follow the source convention.
  • n=1 일 관측. 이 트랙은 원장 누적 없이 당일만 낸다.A single-day observation. This track produces the current day only, with no ledger accumulation.

장중 BreadthIntraday Breadth 2026-08-25 관측 · 신호 아님observation, not a signal

일별 breadth 원장은 종가 한 점뿐이다. 같은 날 장중에는 상승비율이 그 절반 아래로 내려갔다 돌아오기도 한다 — 그 형태를 매일 같은 방식으로 잰다. 네 지수(KOSPI · K200 · KOSDAQ · KQ150)를 나란히 놓아 어느 쪽이 먼저 무너지고 어느 쪽이 먼저 회복하는지 본다.The daily breadth ledger holds a single closing point. Intraday, the advance ratio can fall to less than half that level and come back — this measures that shape the same way every day. Four indices (KOSPI, K200, KOSDAQ, KQ150) sit side by side so you can see which one breaks first and which recovers first.

산출Generated 2026-08-25 16:24:24 · 표본samples 3d · ratio = (상승+상한) / 전체, %

표본 적립 중accruing (sample building)표본이 하루뿐이다. 개장 breadth 가 종가를 얼마나 예고하는지는 20일쯤 쌓여야 낼 수 있다 — 지금은 그날의 형태만 본다.Only one day of samples so far. How much the opening breadth foretells the close needs roughly twenty days — for now this shows only the shape of the day.
Kospi 17.3% 71.3% 개장 → 종가Open → Close +54.1%p 장중 최저Intraday low 11.8% 09:17 · 일중 진폭Intraday range 59.5%p
지수Index 6742.74 +45.78
K200 12.0% 63.5% 개장 → 종가Open → Close +51.5%p 장중 최저Intraday low 6.0% 09:16 · 일중 진폭Intraday range 58.0%p
지수Index 1060.68 +6.67
Kosdaq 16.8% 68.8% 개장 → 종가Open → Close +52.0%p 장중 최저Intraday low 10.5% 09:19 · 일중 진폭Intraday range 58.2%p
지수Index 827.15 +13.82
KQ150 6.0% 70.0% 개장 → 종가Open → Close +64.0%p 장중 최저Intraday low 2.7% 09:17 · 일중 진폭Intraday range 67.3%p
지수Index 1439.11 +21.39

상승비율 궤적 — 30분 버킷Advance ratio — 30-minute buckets

같은 시각에 네 지수의 상승비율이 갈리면, 지수를 움직이는 것이 종목 전체가 아니라 일부 대형주라는 뜻이다. 비율은 시장 간 비교가 되지만 순등락(상승−하락) 절대값은 종목 수가 달라 비교되지 않는다.When the four ratios diverge at the same moment, the index is being moved by a few large names rather than the whole list. Ratios compare across markets; raw advance-minus-decline counts do not, because the universes differ in size.

지수 등락률 궤적Index return path

위 차트와 같은 시각 축이다. 상승비율이 낮은데 지수가 오르면 대형주가 지수를 떠받치고 있는 것이고, 둘이 같이 내려가면 전면 하락이다.Same time axis as the chart above. A low advance ratio with a rising index means large caps are carrying it; both falling together is a broad decline.

시장별 요약By market

지수Index 개장Open 최저Low 최고High 종가Close 개장→종가Open→Close 진폭Range 상한Limit-up 하한Limit-down 종목수Names 틱수Ticks
Kospi 17.3% 09:05 11.8% 09:17 71.3% 15:30 71.3% +54.1%p 59.5%p 2 1 910 2352
K200 12.0% 09:05 6.0% 09:16 64.0% 15:30 63.5% +51.5%p 58.0%p 200 23401
Kosdaq 16.8% 09:05 10.5% 09:19 68.8% 15:30 68.8% +52.0%p 58.2%p 4 1730 2353
KQ150 6.0% 09:05 2.7% 09:17 70.0% 15:30 70.0% +64.0%p 67.3%p 150 23401

분모 경고 — 개장 직후 미체결Denominator warning — pre-open names

지수Index 시각Time 종목수Names % 상승비율 = (상승+상한) / 전체advance ratio = (up + limit-up) / all
Kospi 09:00 834 91.6% 24.0%
Kosdaq 09:00 1581 91.4% 28.0%

개장 직후에는 아직 체결되지 않은 종목이 분모에서 빠진다. 아래 비중이 95% 미만인 구간의 비율은 다른 날과 직접 비교하지 말 것. K200·KQ150 은 구성 종목이 고정이라 이 문제가 없다.Right after the open, names that have not yet traded are missing from the denominator. Do not compare ratios from buckets below 95% against other days. K200 and KQ150 have fixed constituents and are unaffected.

천장 — 이 화면을 읽을 때Ceilings — how to read this page

  • 분모가 장중에 변한다 — 개장 직후는 미체결 종목이 빠진다(2026-08-21 KOSPI 09:00:30 831종목 → 종가 904종목). denom_pct < 95 인 구간의 ratio 는 다른 날과 직접 비교하지 말 것.
  • 역대 순위·백분위는 종가 ratio 로만 매긴다. 장중값으로 순위를 말하면 틀린다 — 2026-08-21 장중 10.8%(173위)와 종가 21.3%는 완전히 다른 날이 된다.
  • 시장 간 종목수가 다르다(KOSPI ~904 · K200 199 · KOSDAQ ~1731 · KQ150 150). 비율은 비교 가능, 순등락 절대값은 비교 금지.
  • 샘플 간격이 시장마다 다르다(Kospi/Kosdaq 10초 · K200/KQ150 1초). n_ticks 를 시장 간 비교에 쓰지 말 것.
  • 이 엔진은 관측만 낸다. 방향 판정·회귀 잔차는 소비단에서 계산한다.