콘텐츠로 이동

시장을 보는 수학적 렌즈 — 사양서

무엇을 보는 렌즈인가, 무엇이 아닌가

작성일: 2026-06-23 성격: 흐름 렌즈 백테스트(kill) + 수정사항 문서 위에서, 그 과정이 역추출해낸 렌즈 자체의 정의를 하나로 묶은 것. 변경 로그가 아니라 도달한 사양.

한 줄 요약: 이것은 시장을 맞히는 만능키가 아니라, 시장 상황이 바뀔 때마다 살아 움직이는 확률분포로 현재 상태의 기댓값을 정직하게 매기는 렌즈다.


0. 정체성 — 무엇이 아닌가부터

이 렌즈는 ~가 아니다 이 렌즈는 ~다
다음 가격을 맞히는 예측기 현재 상태의 조건부 기댓값을 매기는 측정기
사라/마라(O/X) 신호기 확률·기댓값으로 표현되는 연속 렌즈
모든 상황을 맞히는 만능키 모를 때 모른다고 정직하게 말하는 렌즈
안정 알파를 약속하는 시스템 레짐 따라 분포가 변하는 것을 사양으로 받는 렌즈

→ 만능키를 기준으로 보면 실패할 수밖에 없고, "체계적·반증가능한 렌즈"를 기준으로 보면 흐름 렌즈의 kill조차 렌즈가 작동한 증거다 (가려내는 것이 렌즈의 일이므로).


1. 공리계 — 시장에 대해 무엇을 믿는가

A1. 가격은 능동주문(시장가)이 움직이고, 호가는 지정가 동학도 움직인다

  • 체결가(last): spread를 가로지르는 능동주문이 호가를 들어올린다.
  • 호가(mid): 체결 없이도 매도 지정가의 취소/신규 placement로 움직인다.
  • → 가격 형성은 "시장가 + 지정가"의 합. 한 축만 보면 절반을 놓친다. (OFI가 둘을 통합)

A2. 시계열 인과는 없다 — "오늘 오름 → 내일 오름"은 거짓

  • 오늘 오른 종목이 내일 오르는 데에는 인과가 없다.
  • 인과는 시계열에 있지 않고, 오름이라는 행동 → 참여자 심리·행동 → 가격변화라는 동시적 메커니즘에 있다.
  • → 흐름 렌즈가 죽은 이유의 본질: B=Φ(Δp/σ)는 결국 "오늘 오름"을 매끄럽게 한 것이라, A2가 부정하는 그 시계열 인과를 몰래 가정했다. 죽어 마땅했다.

A3. 가격변화는 심리의 결과다 (원인이 아니라)

  • 따라서 가격으로 심리를 읽는 것은 역추론이며, 본질적으로 역문제(inverse problem)다 (→ 3장).

2. 패러다임 — 조건부 기댓값 상태 모델

목표는 E[수익 | 상태] > E[수익]상태(state)를 식별하는 것. 단순 확률. 다음 ΔP의 부호/크기를 맞히는 예측이 아니다.

  • falsification이 이미 이 구조였다: 초과수익 = 트레이드 − (같은 종목·같은 보유일·랜덤시점) = "이 상태 진입이 무작위 진입보다 기댓값이 높은가" = 조건부 기댓값 우위 검정.
  • 동시성은 약점이 아니라 자산: OFI가 같은 구간 ΔP를 설명(동시적)하는 것은, 예측 모델에선 약점이지만 상태 기댓값 모델에선 "반복 가능한 상태냐"만 물으면 되므로 OK.
  • 진짜 적은 비정상성: 상태의 기댓값이 레짐 따라 부호가 뒤집히는 것. 단 이것도 7장에서 "버그가 아니라 사양"으로 재해석된다.

3. 역문제 구조 — 왜 가격 한 축으로는 안 되는가

A3에서 가격→심리는 역추론이다. 그런데 이 역문제는 다대일(多對一)이다:

같은 양봉(강세에 큰 물량이 받아쳐짐) ──┬─→ 흡수(매집): 받은 쪽이 더 산다
                                      └─→ 분산(종료): 받은 쪽이 턴다

같은 관측이 정반대 심리에서 나온다. 가격 하나로는 심리가 갈라지지 않는다.

→ 그래서 가격 × 거래대금의 2축이 필연이다 (선택이 아니라 역문제의 요구):

체결강도(AI) 저항 ρ (거래대금 대비 가격이동) 심리 해석 Wyckoff
강한 매수(+) 작음(안 오름) 강세에 물량 던짐 = 양봉인데 베어리시 흡수(absorption)
강한 매수(+) 큼(훅 오름) 매도호가 텅 빔 = 저항 소멸. 단 얇아서 신뢰 낮음 (얇은 markup)
강한 매수(+) 중간 + 거래대금 동반 정상 추세 markup

체결강도 하나면 셋 다 "매수 우위". 저항(두 번째 축)을 넣는 순간 흡수가 분리된다. → 렌즈가 가격이 아니라 가격×거래대금인 것은 역문제를 풀기 위한 필연이었다.

거래대금의 두 역할 (분리 명시 — 같은 정보 이중계산 방지): - (a) 확률분포의 가중치: "얼마나 믿을까" (자금 실린 가격변동 = 강한 증거) - (b) 흡수 판정의 분모: "그 자금에 비해 가격이 움직였나" (저항/λ) (※ 진짜 Kyle λ를 원하면 분모는 거래대금이 아니라 부호있는 OFI/signed flow)

거래대금-가중 가격분포의 비대칭(skew) = 처음에 원했던 "확률분포 비대칭(매수우위)" = 출처에 이미 있던 Amaya(2015) realized skewness. 의도=논문=같은 객체였다.


4. 환원 불가능한 분기 — 매집이냐 종료냐는 사전에 알 수 없다

이것은 시스템의 결함이 아니라 대상(시장)의 본질이다.

  • 흡수와 분산은 실시간에 동일한 관측을 낸다. 차이는 받아친 주체의 의도뿐인데, 의도는 관측 가능한 양이 아니다.
  • 무엇이 그것을 갈랐는지는 다음에 무슨 일이 일어나는지로만 정의된다. 더 사면 매집이었던 것, 털면 분산이었던 것.
  • → 라벨이 미래에 의해 정의되므로, 그 미래가 오기 전엔 라벨이 아직 존재하지 않는다. 모르는 게 아니라 아직 정해지지 않은 것. 사후 추론만 가능한 것이 당연하다.

재료 prior(5장)로도 이 잔차는 0이 안 된다. 줄일 뿐 없앨 수 없다. → 따라서 렌즈의 일은 분기를 없애는 게 아니라 분기 확률을 정직하게 매기고, 갈라지는 순간을 빨리 포착하는 것이다 (9장).


5. 재료 축 = prior — 역문제를 닫는 외부 정보

미시 렌즈(가격×거래대금)만으로 남는 역문제의 다의성을, 재료·뉴스·이벤트·글로벌 자산· 증시 흐름·정책·실적·매출사전분포(prior)로 좁힌다.

  • 역할은 "신호 하나 추가"가 아니라 역문제의 다의성 축소. 같은 흡수 패턴이라도 — 실적 쇼크 다음 날이면 "악재에 던지는 분산", 정책 수혜 직후면 "강세 확인 매물 소화"로 해석이 갈린다.
  • 분업:
  • 미시 렌즈 = 무슨 일이 일어나는가 (흡수/markup)
  • 재료 축 = 왜, 그리고 그것이 지속되는 종류인가

종합은 합산이 아니라 합의(agreement): - 두 층(미시 × 재료)을 하나의 식으로 합치지(곱해 단일점수) 않는다. - 두 독립 증거의 일치/불일치를 본다 (1-4의 병치 구조의 일반형). - 일치(흡수 + 악재 = 강한 베어) → 확률 ↑ - 불일치(흡수인데 호재) → 판단 유예 - BUY/WATCH/PASS 인코딩이 아니라, 두 축의 합치도가 곧 확률. - 종합은 max도 가중합도 아닌 증거 간 합의다.


6. 비정상성 = 사양 (버그가 아니라)

"시장 상황이 바뀔 때마다 분포가 변하는 렌즈가 필요하다" — 이것이 비정상성을 결함에서 사양으로 뒤집는 진술이다.

  • 안정 알파를 찾을 때: IS/OOS 부호 반전 = kill 사유 (옳음).
  • 살아 움직이는 렌즈로서: 분포가 레짐 따라 변하는 것은 고장이 아니라 작동.
  • s3가 2024엔 음, 2025엔 양 — 안정 신호로는 실격이지만, "지금 레짐에서 이 상태의 기댓값은 +/−다"를 매 순간 다시 말하는 렌즈로는 제 일을 한 것.
  • 같은 데이터, 정반대 결론, 둘 다 옳음. 대상이 바뀌었으니까.

7. 출력 형식 — 확률·기댓값 (이진 거부)

이진 신호(O/X)는 변화를 담을 해상도가 없다. 0.61→0.59를 O/X는 못 담지만 연속 확률은 담는다. 이번에 내린 설계 결정이 전부 이 원리의 하위 명령이었다:

결정 무엇을 지키는가
BUY/WATCH/PASS 인코딩 거부 이진 붕괴 금지
max 폐기 → 3상태(추세/지지/변화) 분리 추정 각 상태의 기댓값을 따로 살림 (winner's curse 제거)
거래대금-가중 분포 모든 날 동등취급 폐기, 증거량 반영
nested 윈도(20/60/120) + 스케일 divergence 변화를 노이즈 미분(Accel) 없이 포착
가변 보유 (확률 깨지면 철회) 확률이 포지션을 실시간 조종
흡수/분산을 라벨이 아니라 모호도 5:5와 8:2를 구분

8. 의사결정 — 모를 때 어떻게 행동하는가

4장(사전엔 라벨이 없음)을 받아들이면, 질문이 "맞히기"에서 둘로 바뀐다:

  1. 모호도를 측정한다. 흡수/분산 5:5와 8:2는 같은 "모름"이 아니다. → 모호할수록 작게/유예, prior가 기울수록 키운다. 불확실성이 곧 포지션 사이징.
  2. 분기 실현을 감시한다. 받은 물량이 다음에 더 사는가 터는가 — 드러나는 첫 신호(후속 OFI·거래대금·재료 갱신)에 반응. → 가변 보유의 진짜 의미: 처음부터 맞히는 게 아니라, 틀렸다고 시장이 말해주는 순간 빠르게 인정하는 구조.

즉 이 시스템은 "추세 끝/눌림"을 아는 기계가 아니라 — 모를 때 모른다 말하고(모호도) · 작게 들어가고(사이징) · 분기가 드러나면 즉시 갱신하는(가변보유) 기계다. 사후에만 라벨이 정해진다는 한계가 역설적으로 이 설계 전체의 정당화다. (사전에 맞힐 수 있었으면 이 구조가 필요 없었을 테니까.)


9. 살아있는 렌즈의 대가 — 검증은 선택이 아니다

분포가 매 순간 변하는 렌즈의 비용은 검증 비용이다. - 고정 신호: 백테스트 한 번으로 끝. - 살아 움직이는 분포: "지금 분포가 맞게 갱신되고 있나"를 계속 물어야 함.

→ 그래서 forward 수집과 검정 하니스(거래비용·트레이드 독립성·벤치 독립성·풀 rolling)가 선택이 아니라 필수가 된다. 살아있는 렌즈일수록 진짜로 살아있는지 끊임없이 확인해야 한다. (verdict_list가 매 세션 갱신되는 구조도 같은 이유.)


10. 사양 압축 (네 한 문단의 구조화)

"오늘 오른 게 내일 오름과 인과 없고, 다만 오른 행동 때문에 발생하는 참여자 행동·심리, 그것을 통해 나타난 가격변화를 능동적으로 해석하는 수학적 렌즈에, 시스템이 수집하는 재료·뉴스·이벤트·글로벌·정책·실적·매출과 같이 보면서 확률을 높이는 것."

# 진술 사양
1 시계열 인과 부정 상태 기댓값 모델 (2장)
2 가격→심리 능동 해석 역문제 (3장)
3 그래서 가격×거래대금 2축 역문제를 푸는 필연 (3장)
4 매집/종료는 사전에 모름 환원불가 분기, 사후 라벨 (4장)
5 재료와 같이 봄 prior로 다의성 축소 (5장)
6 같이 봐서 확률을 높임 합산 아닌 합의 (5장)
7 상황 바뀔 때마다 분포 변화 비정상성 = 사양 (6장)
8 사라/마라 아닌 확률·기댓값 연속 출력 (7장)

이 한 문단이 시스템의 정확한 사양이다. ats_cpt 통합은 (5)(6) — 미시 렌즈가 verdict를 내고 재료 에이전트가 prior를 대는 — 을 어떤 자료구조로 박느냐의 문제로 떨어진다.


부록 A. 공리·개념의 수식 표현

표기: [일봉] = 현재 일봉 데이터로 계산 가능 · [틱] = 틱/호가 필요(forward 수집 후). 교정 반영: 분모=signed flow, max 폐기, z는 레벨신호서 제거, nested 윈도, 합의 종합.

A1. 가격은 시장가+지정가가 움직인다 → OFI [틱]

각 호가 갱신 n:
e_n =  𝟙{P_b^n ≥ P_b^{n-1}}·q_b^n − 𝟙{P_b^n ≤ P_b^{n-1}}·q_b^{n-1}      (매수호가 측)
     − 𝟙{P_a^n ≤ P_a^{n-1}}·q_a^n + 𝟙{P_a^n ≥ P_a^{n-1}}·q_a^{n-1}      (매도호가 측)
OFI = Σ_n e_n
ΔP ≈ β·OFI ,   β ≈ 1/(2·depth)        # depth(거래대금/잔량)는 분모
체결·취소·신규지정가가 한 식에 통합됨(매도호가 감소면 원인 불문 +로 잡힘).

A2. 시계열 인과 부정 → 조건부 기댓값 [일봉]

모델링 대상이 P(ΔP_{t+1} | ΔP_t)(예측)가 아니라 상태 S의 조건부 기댓값:

무조건부:  μ_0  = E[R]
조건부:    μ_S  = E[R | 상태 S]
렌즈 출력: Δμ_S = μ_S − μ_0          # 이게 0보다 '안정적으로' 큰가
검정:      초과수익 = R_trade − E[R_random | 종목, 보유일]
           H0: E[초과수익 | S] = 0   (t검정, 단 트레이드 상관 보정 필요)

A3. 가격→심리는 역문제(다대일) → 2축이 필연 [일봉 프록시 / 틱]

관측 O, 심리(의도) ψ. f: ψ→O 가 다대일이라 가격만으론 역상이 집합값:

가격만:   ψ̂ = f⁻¹(O)  → set-valued (흡수 ∨ 분산), 단일해 없음
2축 추가: O' = (AI, ρ)  →  f': ψ→O' 가 (구간별) 단사에 근접 → 분기가 갈라짐
축 정의:
AI = 체결 aggressor imbalance 부호 ∈ [−1,1]      # [틱] 시장 전체
     [일봉 약프록시] MFM = (2C−H−L)/(H−L)         # 종가위치, '진짜 aggressor 아님' 명시
ρ (저항/단위자금당 가격이동):
     [틱] ρ = ΔP / OFI_signed                    # 진짜 Kyle λ (분모=signed flow)
     [일봉] ρ_proxy = |r| / 거래대금               # Amihud 계열 (λ 아님, 부호없는 분모)
판정(2×2):
흡수(absorption) ⟺ AI 큰 양(+)  ∧  ρ 작음            # 양봉인데 베어리시
markup           ⟺ AI 큰 양(+)  ∧  ρ 중간  ∧  V 동반   # 정상 추세
얇은 markup       ⟺ AI 큰 양(+)  ∧  ρ 큼  ∧  V 빈약      # 신뢰 낮음

A3'. 거래대금-가중 분포 (분포 비대칭 = 원래 출발점) [일봉 위치통계 / 틱 skew]

가격대 x:  w(x) = Σ_{체결 ∈ x} 거래대금        # '가격×거래대금' literal 아님(가격 이중)
정규화:    D(x) = w(x) / Σ_x w(x)             # Volume/Money Profile

[일봉] 위치통계 (skew는 3차라 일봉서 불안정 → 회피):
   POC = argmax_x D(x)
   POC변위 = (POC − P_now) / range_τ          # 비대칭의 저차 프록시
[틱/intraday] realized skewness (Amaya 2015):
   skew = m3 / m2^{1.5}   (m_k = k차 중심모멘트)
거래대금의 두 역할 분리: (a) 위 D(x)의 가중치(증거량) · (b) A3의 ρ 분모(저항). 같은 수가 다른 의미.

A3''. 윈도 = 레짐-지평 → nested (Accel 대체) [일봉]

단일창 최적화 아님. 스케일 묶음 + 스케일 간 divergence가 변화신호:

τ ∈ {20, 60, 120}:  각 D_τ(x),  POC변위_τ
divergence = POC변위_단기 − POC변위_장기
변화신호 ≡ divergence            # Dom의 5점 OLS 미분(노이즈)을 대체

A4. 매집/종료는 사전에 라벨 없음 → 모호도 측정 [일봉]

분기를 맞히지 않고 모호도를 출력:

모호도  U = 1 − |P(흡수) − P(분산)| ∈ [0,1]      # 5:5→U=1,  8:2→U=0.4

7장. 확률화 + 갱신 (교정본) [일봉]

세 상태 분리 — 합치지 않음(max 폐기):
  s1 추세:  레벨신호 (z 미적용)  →  PayUp_level , Dom
  s2 지지:  저점근접 , Dom , recent_PayUp
  s3 변화:  divergence(A3'') , Dom 부호전환

순간확률:  p_s = σ( w_s · feats_s )      # w_s = '선택한 prior'(공리연역 아님 — 명시)
갱신:      P_{s,t} = (1−α)·P_{s,t−1} + α·p_{s,t}    # EMA (베이즈 아님 — 정명)
출력:      P_up = max(...) ✗   →   상태별 μ_{S_s} = E[R|S_s] 독립 추정 ✓

5장. 종합 = 합의(agreement), 합산·곱 아님 [일봉+재료]

v_micro ∈ [−1,1]   # 미시 verdict 부호·강도 (흡수=−, markup지속=+ …)
v_mat   ∈ [−1,1]   # 재료 prior 부호·강도

합의:  A = (sign v_micro == sign v_mat) ? min(|v_micro|, |v_mat|) : 0
일치 → 확률 강화:   P_final ∝ P_base · (1 + κ·A)
불일치(sign 상충) → 유예:  강화 안 함, 모호도 U↑ (판단 보류)

8장. 모호도 → 사이징 → 가변보유 [일봉]

포지션 크기  size ∝ (1 − U) · |prior 기울기|     # 모호할수록 작게
가변보유:    진입 후 매일 P 갱신.  P < P_exit ⇒ 철회 (고정기간 아님)
             max_hold 도달 ⇒ 강제청산

부록 종합: A2·A4·A3''·7·8·5장(=합의)은 [일봉]으로 지금 구현 가능. A1(OFI)·A3의 진짜 ρ·A3'의 skew만 [틱/forward]. 즉 사양의 골격은 일봉에서 서고, 정밀도(진짜 aggressor·signed λ·3차 비대칭)만 forward 수집으로 채운다.


출처

  • Cont·Kukanov·Stoica (2014) — Order Flow Imbalance
  • Kyle (1985) — λ (signed flow 단위 가격충격)
  • Amihud (2002) — Illiquidity
  • Amaya et al. (2015, JFE) — Realized Skewness
  • Easley·López de Prado·O'Hara — Bulk Volume Classification
  • Chaikin — Money Flow Multiplier / Wyckoff — Effort vs Result, 흡수·분산·markup
  • Boehmer et al. (2021) / 재현연구 (2024) — order imbalance 예측력과 소멸