Skip to content
Published on

TCA(거래비용분석) + 시장충격모델 2026 딥다이브 — Implementation Shortfall, Almgren-Chriss, Kissell-Glantz I-Star, Bouchaud-Farmer Propagator, Bloomberg BTCA, Virtu, big xyt, BMLL, Tradeweb 완전 정복

Authors

들어가며 — 2026년, TCA가 "사후 보고"에서 "실시간 알고 휠"로

2026년 거래비용분석(Transaction Cost Analysis, TCA)은 더 이상 매월 말 PDF로 펀드매니저에게 보내는 사후 보고서가 아닙니다. 패시브 운용 비중이 글로벌 주식형 자산의 50%를 돌파하면서, 거래비용 1bp 차이가 수십억 달러 운용 수익률에 직결됩니다. 동시에 AI 기반 알고 휠(Algorithm Wheel) 이 보편화되어, 모든 주문은 과거 TCA 데이터로 학습된 모델에 의해 실시간으로 최적 브로커/알고에 자동 라우팅됩니다.

규제도 격변기입니다. EU MiFID II RTS 27(거래 장소)은 2021년 폐지됐지만, RTS 28(투자회사의 최선집행 보고)는 2024년 MiFIR 리뷰로 다시 강화 논의 중입니다. 미국 SEC Rule 605/606는 2024년 개정으로 리테일 주문 흐름 공개가 확대됐고, 한국 금융투자협회(KOFIA)는 2025년 최선집행 의무 가이드라인 을 개정하여 분기별 TCA 보고를 사실상 의무화했습니다. 일본 SESC(증권거래등감시위원회)는 알고 트레이딩 모니터링을 강화 중입니다.

이번 글에서는 IS(Implementation Shortfall) 공식, Almgren-Chriss 최적실행 궤적, Kissell-Glantz I-Star 모델, Bouchaud-Farmer 전파자(Propagator) 모델 등 학술적 토대부터, Bloomberg BTCA/Virtu Pre-Trade/J.P.Morgan SquareEdge/big xyt/BMLL/Tradeweb 같은 상용 플랫폼, 그리고 한국 미래에셋/한투/NH IB와 일본 SBI/Nomura의 실무까지 한 번에 정리합니다.

TCA 50년 약사 — Perold(1988)에서 Algo Wheel 2026까지

거래비용 측정의 역사는 1980년대 후반 학술 연구에서 시작됐습니다. 1988년 André Perold가 Journal of Portfolio Management 에 발표한 "The Implementation Shortfall: Paper vs. Reality" 가 이 분야의 출발점입니다. Perold는 "종이 포트폴리오"(paper portfolio)와 실제 체결가 사이의 차이를 IS로 정의했고, 이후 모든 TCA 프레임워크의 기준이 됐습니다.

2000년 Robert Almgren과 Neil Chriss가 Journal of Risk 에 "Optimal Execution of Portfolio Transactions" 를 발표하면서 평균-분산 최적화 기반 실행이 정립됐습니다. 2003년 Robert Kissell과 Morton Glantz가 Optimal Trading Strategies 를 출간해 I-Star 모델을 제시했고, 2013년 Anna Obizhaeva와 Jiang Wang이 "Optimal trading strategy and supply/demand dynamics" 에서 일시 충격과 영구 충격을 분리 모델링했습니다. 2018년 Jean-Philippe Bouchaud와 J. Doyne Farmer는 Trades, Quotes and Prices 에서 전파자(propagator) 모델로 시장충격의 비선형 시계열 구조를 설명했습니다.

1988: Perold "Implementation Shortfall" — IS 개념 정립
1995: Plexus Group 설립 — 최초의 상용 TCA 서비스
1998: ITG Plexus 매수 → Universal TCA Platform
2000: Almgren-Chriss "Optimal Execution" — 평균-분산 실행
2003: Kissell-Glantz "I-Star Model" — 시장충격 가격결정
2005: SEC Reg NMS → Best Ex 의무 강화
2007: MiFID I → EU Best Ex 도입
2013: Obizhaeva-Wang "Temporary/Permanent Impact"
2014: Bloomberg BTCA 출시
2018: MiFID II RTS 27/28 시행 (RTS 27은 2021 폐지)
2019: ITG → Virtu 인수 (TCA 시장 통합)
2020: big xyt 유럽 시장 데이터 플랫폼 확산
2022: BMLL Technologies Series B
2024: SEC Rule 605/606 개정 (리테일 주문흐름 공개 확대)
2025: KOFIA 최선집행 가이드라인 개정
2026: Algo Wheel 보편화, 실시간 TCA ← 현재

Implementation Shortfall(IS) — Perold(1988) 원전 공식

Implementation Shortfall은 "의사결정 시점 가격"과 "실제 체결 평균가격"의 차이로 정의됩니다. Perold의 원전 공식은 다음과 같습니다.

IS = (X · P_decision − Σ x_i · P_fill_i) + (n · P_close − n · P_decision) + opportunity_cost

여기서 첫째 항은 체결 비용(Execution Cost) — 의사결정가 대비 실제 체결가 차이, 둘째 항은 지연 비용(Delay Cost) — 의사결정과 주문 도착 사이 가격 변동, 셋째 항은 기회 비용(Opportunity Cost) — 미체결분의 가치 손실입니다. IS는 일반적으로 bp(basis point) 단위로 표현되며, 매수 주문의 경우 양수가 비용, 매도 주문의 경우 부호가 반전됩니다.

실무에서는 IS를 4-bucket 모델로 분해합니다. (1) 수수료(commission), (2) 스프레드 비용(spread cost = (Ask−Bid)/2), (3) 시장충격(market impact), (4) 타이밍 위험(timing risk). 이 중 (1)(2)는 명시적 비용(explicit), (3)(4)는 암묵적 비용(implicit)으로 구분됩니다.

비용 구성 요소설명통제 가능성일반 크기
Commission브로커 수수료사전 협상1-3 bps
Spread CostBid-Ask 절반시장조건 의존2-10 bps
Market Impact본인 주문이 가격을 미는 효과알고/속도로 통제5-50 bps
Timing Risk가격이 불리하게 움직일 위험실행 속도로 통제10-100 bps

Pre-Trade TCA vs Post-Trade TCA — 시점별 비교

Pre-Trade TCA는 주문 실행 에 예상 비용을 시뮬레이션합니다. 모델 인풋은 주문 규모, ADV(Average Daily Volume) 대비 비율, 변동성, 스프레드, 모멘텀 등이고, 아웃풋은 예상 IS bp 범위와 최적 실행 시간입니다. Bloomberg BTCA의 Pre-Trade는 30일 ADV의 5%를 넘는 대형 주문에 대해 시간대별 충격 예측치를 제공합니다.

Post-Trade TCA는 주문 실행 에 실제 비용을 측정합니다. Arrival Price, Interval VWAP, Closing Price 등 벤치마크 대비 슬리피지(slippage)를 계산하고, 시장충격과 타이밍 위험을 분해합니다. 일반적으로 T+1에 일별 보고서가 생성되고, 월말 누적 분석은 펀드 매니저의 분기 리뷰 자료로 활용됩니다.

In-Trade TCA(실시간)는 2020년대 들어 등장한 신영역입니다. 부모 주문(parent order)이 자식 주문(child order)으로 쪼개져 시장에 보내질 때, 누적 슬리피지를 실시간 추적하고 임계치 초과 시 알고 파라미터를 동적 조정합니다. Virtu의 Real-Time TCA는 <5ms 지연으로 슬리피지 알림을 트레이더 데스크에 전달합니다.

Almgren-Chriss 최적실행 모델 — 평균-분산 프레임워크

Almgren-Chriss(2000)는 거래자가 마주하는 trade-off를 명료하게 수식화했습니다. 빨리 체결하면 시장충격(impact)이 커지고, 느리게 체결하면 가격 변동성으로 인한 타이밍 위험(timing risk)이 커집니다. 이를 평균-분산 효용 함수로 표현하면:

min E[Cost] + λ · Var[Cost]

여기서 λ(람다)는 리스크 회피 계수입니다. 영구 충격을 선형(g(v) = γ · v), 일시 충격을 선형(h(v) = η · v)으로 가정하면, 최적 거래 궤적 X(t)는 쌍곡사인 함수 형태로 나타납니다.

X(t) = X · sinh(κ·(T−t)) / sinh(κ·T)

여기서 κ = sqrt(λ · σ² / η) 이고, T는 총 실행 시간, X는 총 거래량입니다. λ가 클수록(리스크 회피적) κ가 커지고 거래가 앞당겨집니다(front-loaded). λ가 0이면 균등분할 TWAP에 수렴합니다.

# Almgren-Chriss 최적 실행 궤적 R 샘플 코드
library(ggplot2)

almgren_chriss_trajectory <- function(X, T, sigma, eta, lambda, n_steps = 50) {
  # X: 총 거래량 (주식 수)
  # T: 총 실행 시간 (분)
  # sigma: 일일 변동성 (소수, 예: 0.02 = 2%)
  # eta: 일시 충격 계수
  # lambda: 리스크 회피 계수
  kappa <- sqrt(lambda * sigma^2 / eta)
  t_grid <- seq(0, T, length.out = n_steps + 1)
  x_remaining <- X * sinh(kappa * (T - t_grid)) / sinh(kappa * T)
  trades <- -diff(x_remaining)
  data.frame(
    time = t_grid[-1],
    cumulative_traded = X - x_remaining[-1],
    child_order = trades,
    pct_complete = (X - x_remaining[-1]) / X * 100
  )
}

# 예시: 백만 주를 30분에 걸쳐 실행, 변동성 2%, lambda 1e-6
traj <- almgren_chriss_trajectory(
  X = 1e6, T = 30, sigma = 0.02, eta = 2.5e-7, lambda = 1e-6
)
print(head(traj))

# 라이언+패시브 비교: lambda=0 → TWAP
traj_twap <- almgren_chriss_trajectory(
  X = 1e6, T = 30, sigma = 0.02, eta = 2.5e-7, lambda = 1e-9
)

ggplot() +
  geom_line(data = traj, aes(x = time, y = cumulative_traded), color = "red") +
  geom_line(data = traj_twap, aes(x = time, y = cumulative_traded),
            color = "blue", linetype = "dashed") +
  labs(title = "Almgren-Chriss: Aggressive (red) vs TWAP-like (blue)",
       x = "Minutes since arrival", y = "Cumulative shares traded")

Kissell-Glantz I-Star 모델 — 시장충격 가격결정

Robert Kissell과 Morton Glantz가 2003년 Optimal Trading Strategies 에서 제시한 I-Star(I*) 모델은 시장충격을 거래 규모, 변동성, 거래 강도(POV, Percentage of Volume)의 함수로 모델링합니다. 핵심 공식:

I* = a1 · (X/ADV)^a2 · σ^a3

여기서 a1, a2, a3는 시장 데이터로 추정되는 파라미터입니다. 미국 대형주의 경우 일반적으로 a1≈700-900, a2≈0.5(제곱근 법칙), a3≈0.75 정도로 보고됩니다. POV 비율 ρ에 따른 분할:

MI_temp = b1 · I* · ρ^b2 (일시충격) MI_perm = (1 − b1) · I* (영구충격)

b1은 일반적으로 0.95 정도로, 시장충격의 대부분(95%)이 일시적임을 의미합니다. 즉 거래 종료 후 가격은 영구 충격 부분만 남기고 회복됩니다.

Obizhaeva-Wang 모델 — 일시/영구 충격 분리

Anna Obizhaeva와 Jiang Wang(2013, Journal of Financial Markets)은 limit order book의 동학을 명시적으로 모델링하여, 충격이 어떻게 회복되는지 보였습니다. 그들의 핵심 발견은 충격이 지수 감쇠(exponential decay)한다는 것입니다.

Impact(t) = κ · X · exp(−ρ · t) + λ · X

첫째 항이 일시 충격(시간 t에 따라 감쇠), 둘째 항이 영구 충격(평형 가격 변동)입니다. ρ는 회복 속도이고, 미국 대형주 기준 반감기는 약 5-15분으로 보고됩니다. 이 모델은 large meta-order(여러 자식 주문으로 쪼개진 큰 부모 주문)의 영향 측정에 표준이 됐습니다.

Bouchaud-Farmer Propagator 모델 — 비선형 시계열

Jean-Philippe Bouchaud와 J. Doyne Farmer는 Trades, Quotes and Prices(2018, Cambridge University Press)에서 propagator 모델을 정립했습니다. 가격 변화를 과거 모든 거래의 가중합으로 표현합니다.

r(t) = Σ G(t − s) · ε(s) · v(s)^δ + noise

여기서 G(t)는 propagator 커널(거래 후 충격이 시간에 따라 어떻게 전파되는지), ε는 거래 방향(+1/−1), v는 거래량, δ≈0.5(제곱근 법칙)입니다. G(t)는 일반적으로 거듭제곱 법칙(power law) G(t) ~ t^(−γ) 으로 감쇠하며, γ≈0.5 정도입니다. 이 모델은 시장의 long memory를 설명합니다.

Almgren 제곱근 충격 모델 — Square-Root Impact Law

학계와 실무 모두 가장 광범위하게 검증된 경험 법칙은 square-root impact law 입니다. 충격 크기가 거래량의 제곱근에 비례한다는 것입니다.

MI(bps) = Y · σ_daily · sqrt(X / V_daily)

Y는 보통 1.0 근처(0.5-2.0 범위)로 보고됩니다. σ_daily는 일일 변동성, X는 거래량, V_daily는 일평균 거래량입니다. 이 법칙은 Almgren et al.(2005, "Direct estimation of equity market impact"), Tóth et al.(2011), Bershova-Rakhlin(2013, "The non-linear market impact of large trades") 등에서 다양한 자산군과 시장에서 일관되게 검증됐습니다.

벤치마크 4종 — Arrival Price vs VWAP vs TWAP vs Close

TCA 보고서에서 가장 흔히 사용되는 벤치마크는 4가지입니다. 각각 다른 목적과 게임 이론적 함의가 있습니다.

벤치마크정의적합 상황단점
Arrival Price주문 도착 시점의 mid-quoteIS 측정의 표준노이지함
Interval VWAP주문 실행 기간의 거래량 가중 평균알고 성과 평가본인 주문이 VWAP 자체에 영향
TWAP주문 실행 기간의 시간 가중 평균단순 비교거래량 분포 무시
Close (MOC)종가 (Market On Close)인덱스 펀드 리밸런싱클로징 옥션 변동성

Arrival Price 벤치마크는 Perold IS의 직접 측정 도구로, 펀드 매니저 의사결정 가격과의 일치도가 가장 높습니다. VWAP은 트레이더 성과 평가에 적합하지만, 본인 거래가 큰 비중을 차지하면 자기참조 문제가 발생합니다. TWAP은 단순하지만 거래량 패턴을 반영하지 못합니다. Close는 인덱스 추종 펀드의 표준이지만, MOC 옥션 자체의 변동성을 떠안아야 합니다.

4-Bucket Cost Model — 비용 분해 표준

업계 표준 4-bucket 분해는 다음과 같이 IS를 세분화합니다.

# Python TCA Implementation Shortfall 분해 예시
import pandas as pd
import numpy as np

def calculate_is_decomposition(parent_order):
    """
    parent_order 컬럼: side, qty_total, decision_price, arrival_price,
    fills (list of dict with timestamp, qty, price, venue),
    close_price, benchmark_vwap, spread_at_arrival, commission_bps
    """
    side_sign = 1 if parent_order['side'] == 'BUY' else -1
    X = parent_order['qty_total']
    P_decision = parent_order['decision_price']
    P_arrival = parent_order['arrival_price']

    fills = pd.DataFrame(parent_order['fills'])
    filled_qty = fills['qty'].sum()
    avg_fill_price = (fills['qty'] * fills['price']).sum() / filled_qty
    P_close = parent_order['close_price']

    # 4-bucket 분해
    commission_cost = parent_order['commission_bps']  # bp
    spread_cost_bps = (parent_order['spread_at_arrival'] / 2 / P_arrival) * 10000
    impact_cost_bps = (avg_fill_price - P_arrival) / P_arrival * 10000 * side_sign
    timing_cost_bps = (P_arrival - P_decision) / P_decision * 10000 * side_sign

    # 미체결분 기회비용
    unfilled = X - filled_qty
    opportunity_cost_bps = 0
    if unfilled > 0:
        opportunity_cost_bps = (P_close - P_decision) / P_decision * 10000 * side_sign * (unfilled / X)

    total_is_bps = commission_cost + spread_cost_bps + impact_cost_bps + timing_cost_bps + opportunity_cost_bps

    return {
        'commission_bps': round(commission_cost, 2),
        'spread_cost_bps': round(spread_cost_bps, 2),
        'market_impact_bps': round(impact_cost_bps, 2),
        'timing_cost_bps': round(timing_cost_bps, 2),
        'opportunity_cost_bps': round(opportunity_cost_bps, 2),
        'total_is_bps': round(total_is_bps, 2),
        'fill_rate': round(filled_qty / X * 100, 2)
    }

# 예시 호출
order = {
    'side': 'BUY', 'qty_total': 100000,
    'decision_price': 150.00, 'arrival_price': 150.05,
    'fills': [
        {'timestamp': '09:30:01', 'qty': 30000, 'price': 150.07, 'venue': 'NYSE'},
        {'timestamp': '09:32:14', 'qty': 40000, 'price': 150.12, 'venue': 'NASDAQ'},
        {'timestamp': '09:35:42', 'qty': 25000, 'price': 150.18, 'venue': 'IEX'}
    ],
    'close_price': 150.45, 'benchmark_vwap': 150.13,
    'spread_at_arrival': 0.02, 'commission_bps': 1.5
}
print(calculate_is_decomposition(order))

Pre-Trade Simulation — 주문 전 비용 예측

Pre-Trade TCA는 다음 인풋을 받아 예상 IS를 산출합니다: (1) 주문 사이즈 X, (2) 30일 ADV, (3) 21일 일일 변동성 σ, (4) 현재 스프레드, (5) 모멘텀(α), (6) 실행 시간 T. Bloomberg BTCA Pre-Trade는 주문 사이즈를 ADV 대비 1%/5%/10%/20% 시나리오로 시뮬레이션하여, 각 시나리오의 예상 IS 분포를 P25/P50/P75로 제공합니다.

J.P.Morgan SquareEdge는 같은 인풋에 대해 Almgren-Chriss + I-Star 하이브리드 모델로 최적 실행 곡선을 제시합니다. Virtu Pre-Trade Analytics는 ITG 전통의 ITG Logical Participant 알고와 함께 ITG ACE(Agency Cost Estimator) 모델을 사용하며, "이 사이즈 + 이 변동성에서 VWAP을 사용하면 예상 IS는 12.4bp, IS 알고는 8.7bp" 식의 비교를 제공합니다.

Sequence-of-Events 정규화 — Parent/Child 추적

대량 주문은 부모 주문(parent order)으로 시작해 알고리즘이 수많은 자식 주문(child order)으로 쪼개 시장에 보냅니다. TCA의 핵심 데이터 작업은 이 parent-child 매핑을 정확히 복원하는 것입니다. FIX 4.4 프로토콜에서는 Tag 11 (ClOrdID)Tag 41 (OrigClOrdID) 로 연결되고, Tag 528 (OrderCapacity), Tag 18 (ExecInst), Tag 851 (LastLiquidityInd) 가 메타데이터를 제공합니다.

FIX Tag → TCA 의미
========================================================
Tag 11   ClOrdID            자식 주문 ID
Tag 41   OrigClOrdID        부모 주문 ID (취소/대체 시)
Tag 17   ExecID             체결 ID
Tag 31   LastPx             체결 가격
Tag 32   LastQty            체결 수량
Tag 38   OrderQty           원 주문 수량
Tag 40   OrdType            1=Market, 2=Limit, 3=Stop
Tag 54   Side               1=Buy, 2=Sell
Tag 60   TransactTime       체결 시각 (UTC)
Tag 100  ExDestination      거래소 (NYSE, NASDAQ, ARCA, ...)
Tag 528  OrderCapacity      A=Agency, P=Principal
Tag 851  LastLiquidityInd   1=Added, 2=Removed, 3=Liquidity Routed
Tag 1057 AggressorIndicator Y=공격적, N=수동적

Tag 851 LastLiquidityInd는 특히 중요합니다. Maker(=1) vs Taker(=2)를 구분하여, 메이커 수수료 리베이트를 받았는지 vs 테이커 수수료를 냈는지 정확히 추적할 수 있습니다. 미국 메이커-테이커 거래소(NYSE Arca, NASDAQ)에서 이 정보는 직접적으로 수수료 비용에 반영됩니다.

Bloomberg BTCA — 글로벌 점유율 1위

Bloomberg BTCA(Bloomberg Transaction Cost Analysis)는 2014년 출시 이후 글로벌 셀-사이드 TCA 시장에서 점유율 1위를 유지하고 있습니다. 주요 기능은 (1) Pre-Trade 시뮬레이션(Bloomberg AIM과 통합), (2) Real-Time slippage 모니터링, (3) Post-Trade 일/월/분기 보고서, (4) Peer benchmarking — 익명화된 동종 펀드 평균과 비교, (5) 브로커 스코어카드입니다.

BTCA의 장점은 Bloomberg Terminal과의 완전 통합으로, 동일 화면에서 호가창, 체결, TCA를 동시에 볼 수 있다는 점입니다. 단점은 라이선스 비용이 높고(>$2,000/month per user), 미국/EU 시장 중심으로 아시아 커버리지가 상대적으로 약하다는 평가가 있습니다.

Virtu Pre-Trade Analytics — ITG 유산

2019년 Virtu Financial이 ITG(Investment Technology Group)를 약 10억 달러에 인수하면서, ITG의 30년 TCA/실행 알고 자산을 통합했습니다. 현재 Virtu Pre-Trade Analytics는 ITG ACE(Agency Cost Estimator) 모델을 기반으로 합니다. 특히 ITG가 자랑하던 Algo Wheel 은 Virtu 통합 후 자동 라우팅 엔진으로 확장됐습니다.

Algo Wheel의 핵심 원리: 각 브로커/알고 조합의 과거 6개월 TCA 데이터(IS bp, fill rate, reversion)를 학습하여, 새 주문이 도착하면 해당 종목/사이즈/시장조건에 최적인 브로커/알고로 자동 라우팅합니다. Tradeweb의 AiEX(Automated Intelligent Execution)도 동일 컨셉을 채택했고, 2026년 현재 글로벌 buy-side의 약 60%가 알고 휠을 사용한다고 추정됩니다(Greenwich Associates 2025 보고서).

big xyt — 유럽 시장 데이터 + 유동성 히트맵

big xyt(Frankfurt 본사, 2014 설립)는 유럽 전역 50+ 거래장소(Lit, Dark, SI, Periodic Auction)의 거래 데이터를 정규화하여 TCA용 시장 데이터를 제공합니다. 핵심 제품은 Liquidity Cockpit — 종목별 시간대별 유동성 히트맵 — 으로, 펀드매니저가 "이 종목, 이 사이즈, 이 시간대에 어디서 거래해야 슬리피지가 최소인지" 를 시각적으로 파악할 수 있습니다.

big xyt의 강점은 유럽 MiFID II 환경에서 LIS(Large In Scale) 면제, Reference Price Waiver, SI(Systematic Internaliser) 거래를 정확히 분류하여 통합 분석을 제공한다는 점입니다. 2023년 LSEG와 파트너십을 맺어 영국 거래소 커버리지가 강화됐습니다.

BMLL Technologies — 역사적 LOB 데이터

BMLL Technologies(London, 2014 설립)는 글로벌 60+ 거래소의 Level 3 order book 역사 데이터를 보유합니다. Level 3란 모든 주문의 추가/취소/체결 메시지를 마이크로초 단위로 보관하는 것으로, 역사적 backtest와 TCA 회고 분석에 필수입니다. BMLL Data Lab(Python/Jupyter 환경)은 quant 리서처가 자신의 알고를 과거 LOB에 대입해 테스트할 수 있게 합니다.

2022년 Series B로 약 2,600만 달러를 조달했고, J.P.Morgan, FactSet, Refinitiv 등을 고객으로 보유합니다. BMLL의 차별점은 데이터 깊이(>5 years of full L3 history)와 정확성(거래소 원본 메시지를 정규화 없이 보존)입니다.

Tradeweb AiEX + Best Ex — 채권/외환 TCA

Tradeweb은 채권/외환/ETF 거래 플랫폼으로 2025년 글로벌 채권 거래의 약 25%가 Tradeweb을 거쳤습니다. AiEX(Automated Intelligent Execution)는 채권 거래의 알고 휠 격으로, 과거 RFQ(Request For Quote) 응답 데이터를 학습하여 새 주문이 도착하면 가장 좋은 가격을 줄 가능성이 높은 딜러 3-5곳에만 RFQ를 보냅니다.

채권 TCA는 주식 TCA와 다른 점이 많습니다. (1) 호가창이 없거나 부분적임, (2) 거래가 RFQ 기반이라 부분 체결이 드묾, (3) 벤치마크가 트레이드 컴포지트(TRACE에서 직전 5분 거래 평균) 또는 ICE BAML composite price 같은 외부 데이터에 의존, (4) Best Ex 의무가 주식보다 모호함. Tradeweb의 TCA는 이런 채권 특성을 반영해 dealer-by-dealer hit rate, price-improvement bp, response-time을 핵심 KPI로 보고합니다.

MiFID II RTS 27/28 + SEC Rule 605/606

EU MiFID II는 2018년부터 RTS 27(거래장소의 가격/원가/속도 보고)과 RTS 28(투자회사의 최선집행 보고서)을 시행했습니다. RTS 27은 2021년 일시 중단됐고 2024년 MiFIR 리뷰로 폐지가 확정됐습니다. RTS 28은 분기별로 5대 거래장소(상위 5 venues by volume)를 공시하고, 각 자산군별 최선집행 정책의 결과를 정성/정량 분석으로 첨부해야 합니다.

미국 SEC Rule 605(2001 시행, 2024 개정)는 시장 메이커가 실행 품질 통계(effective spread, price improvement, fill rate)를 월별 공시하도록 합니다. SEC Rule 606(2018 개정)은 브로커-딜러가 분기별로 주문흐름의 라우팅 통계(어느 거래소로 얼마나 보냈는지, 어떤 인센티브를 받았는지)를 공시합니다. 2024년 개정으로 리테일 주문에 대한 공시가 강화됐습니다.

규제지역대상주기핵심 항목
MiFID II RTS 27EU거래장소분기 (2021 폐지)거래 비용, 속도
MiFID II RTS 28EU투자회사연간Top-5 venues, Best Ex
SEC Rule 605US시장메이커월별실효 스프레드, 가격개선
SEC Rule 606US브로커-딜러분기주문 라우팅, 인센티브
KOFIA 최선집행KR증권사분기 (2025~)거래장소, TCA
JSDA Best ExJP증권사연간거래장소 공시

한국 — 미래에셋/한투/NH IB TCA + KOFIA 가이드라인

한국 증권사의 TCA 도입은 2020년대 들어 본격화됐습니다. 미래에셋증권은 자체 개발한 MAE(Mirae Asset Execution) TCA 를 운영하며, 자사 트레이더와 외부 buy-side 양쪽에 보고서를 제공합니다. 한국투자증권은 Bloomberg BTCA를 도입했고, NH투자증권은 Liquidnet/ITG(Virtu) TCA를 사용합니다.

한국거래소(KRX) 거래는 단일 거래소 환경이라 미국/EU 대비 venue analysis가 단순합니다. 대신 호가창 깊이, MOC 옥션 참여 비율, 시간외 종가 매매 활용이 TCA 핵심 지표가 됩니다. KOFIA는 2025년 6월 최선집행 의무 가이드라인 을 개정하여, 자산운용사와 거래하는 증권사가 분기별 TCA 보고를 의무화했습니다. 위반 시 KOFIA 자율규제 절차에 따라 권고/주의/회원자격 정지가 가능합니다.

한국 증권사TCA 플랫폼강점비고
미래에셋증권자체 MAE TCA + Bloomberg BTCA국내외 통합자사 알고 휠
한국투자증권Bloomberg BTCABloomberg 통합글로벌 buy-side 대응
NH투자증권Liquidnet/Virtu외부 buy-side 협업다크풀 활용
삼성증권Bloomberg BTCA + 자체Best Ex 정책 강화2025 가이드라인 대응
KB증권Refinitiv Eikon TCA채권 강점외환/채권 통합
신한투자증권Bloomberg BTCA주식 중심알고 휠 시범

일본 — SBI/Nomura + JSDA/SESC 모니터링

일본 TCA 도입은 한국보다 약간 앞섭니다. Nomura는 자체 NX(Nomura Execution) TCA를 운영하며, 자회사 Instinet과 통합되어 글로벌 buy-side에 서비스합니다. SBI Securities는 Bloomberg BTCA를 도입했고, Daiwa는 Virtu Pre-Trade를 사용합니다. Mizuho와 SMBC Nikko도 각각 Bloomberg BTCA를 사용합니다.

일본 시장의 특이점은 PTS(Proprietary Trading System) — 일본판 dark pool/MTF — 인 Japannext PTS, Cboe Japan(전 Chi-X Japan)의 비중이 미국/EU 대비 작다는 것입니다(전체 거래의 약 5-7%). 그래서 TCA의 venue analysis 비중이 상대적으로 낮고, MOC 옥션 분석과 ToSTNeT-3(클로징 외 시간외) 활용 분석이 중요합니다. SESC(증권거래등감시위원회)는 2024년부터 알고리즘 트레이딩 모니터링을 강화하여, 대형 buy-side의 알고 사용 패턴을 분기별로 감시합니다.

브로커 스코어카드 — SQL 보고 쿼리

브로커 스코어카드는 분기별로 각 브로커의 성과를 슬리피지/체결율/리버전 등 다차원으로 평가합니다. 예시 SQL.

-- 브로커 스코어카드 분기 보고 쿼리 (PostgreSQL)
WITH parent_orders AS (
  SELECT
    p.parent_order_id,
    p.broker_id,
    p.symbol,
    p.side,
    p.qty_total,
    p.decision_price,
    p.arrival_price,
    p.close_price,
    DATE_TRUNC('quarter', p.decision_ts) AS quarter
  FROM parent_order p
  WHERE p.decision_ts >= '2026-01-01'
    AND p.decision_ts <  '2026-04-01'
),
fills_agg AS (
  SELECT
    f.parent_order_id,
    SUM(f.qty)                            AS filled_qty,
    SUM(f.qty * f.price) / NULLIF(SUM(f.qty), 0) AS avg_fill_price,
    COUNT(*)                              AS n_fills,
    MIN(f.exec_ts)                        AS first_fill_ts,
    MAX(f.exec_ts)                        AS last_fill_ts
  FROM child_fill f
  GROUP BY f.parent_order_id
),
scorecard AS (
  SELECT
    p.broker_id,
    p.quarter,
    COUNT(*)                              AS n_orders,
    SUM(p.qty_total)                      AS total_notional_qty,
    AVG(
      CASE WHEN p.side = 'BUY'
           THEN (fa.avg_fill_price - p.arrival_price) / p.arrival_price * 10000
           ELSE (p.arrival_price - fa.avg_fill_price) / p.arrival_price * 10000
      END
    )                                     AS avg_is_bps,
    AVG(fa.filled_qty / NULLIF(p.qty_total, 0)) * 100 AS avg_fill_rate_pct,
    AVG(EXTRACT(EPOCH FROM (fa.last_fill_ts - fa.first_fill_ts)))
                                          AS avg_execution_seconds,
    STDDEV(
      CASE WHEN p.side = 'BUY'
           THEN (fa.avg_fill_price - p.arrival_price) / p.arrival_price * 10000
           ELSE (p.arrival_price - fa.avg_fill_price) / p.arrival_price * 10000
      END
    )                                     AS is_volatility_bps
  FROM parent_orders p
  JOIN fills_agg fa ON p.parent_order_id = fa.parent_order_id
  GROUP BY p.broker_id, p.quarter
)
SELECT
  broker_id,
  quarter,
  n_orders,
  ROUND(avg_is_bps::numeric, 2)            AS avg_is_bps,
  ROUND(avg_fill_rate_pct::numeric, 2)     AS fill_rate_pct,
  ROUND(avg_execution_seconds::numeric, 0) AS exec_seconds,
  ROUND(is_volatility_bps::numeric, 2)     AS is_stddev_bps,
  RANK() OVER (PARTITION BY quarter ORDER BY avg_is_bps ASC) AS rank_by_is
FROM scorecard
ORDER BY quarter DESC, avg_is_bps ASC;

Execution Algo Wheel — 자동 브로커 라우팅

알고 휠은 buy-side의 OMS(Order Management System) 또는 EMS(Execution Management System)에 통합된 자동 라우팅 엔진입니다. 입력: 종목, 사이즈, 사이드, 긴급도. 출력: 최적 브로커/알고 조합. 학습 데이터: 과거 6-12개월의 자사 TCA 기록(IS bp, fill rate, reversion).

알고 휠의 운영 원리는 (1) 일별로 모든 자식 주문을 broker-algo-symbol-size-bucket-volatility-bucket 단위로 그룹화, (2) 각 그룹별 평균 IS bp를 계산, (3) 새 주문이 도착하면 해당 그룹의 베스트 K개(보통 3-5개) 후보로 좁힘, (4) Thompson sampling 또는 epsilon-greedy로 탐색-활용 균형을 잡으며 라우팅, (5) 새 체결 결과를 반영해 모델 업데이트. 2026년 글로벌 buy-side의 약 60%가 알고 휠을 사용한다고 추정됩니다.

MOC vs LOC vs Auction TCA — 클로징 메커니즘

마감 옥션(MOC = Market On Close, LOC = Limit On Close)은 일반 연속거래와 다른 TCA 처리가 필요합니다. NYSE Closing Cross, Nasdaq Closing Cross, LSE Closing Auction, KRX 종가 단일가매매, TSE Closing Auction은 각각 5-10분 동안 주문을 수집해 단일 가격으로 일괄 체결합니다.

MOC TCA의 핵심 벤치마크는 (1) 옥션 직전 mid-quote, (2) 옥션 첫 imbalance message, (3) 옥션 최종 출력가입니다. MOC 주문은 시장충격이 아니라 인밸런스 비용(imbalance cost) — 옥션 imbalance가 가격을 한 방향으로 미는 효과 — 가 주된 비용입니다. 인덱스 펀드 리밸런싱 데이를 분석하면, MOC 임밸런스 비용이 종일 IS의 80% 이상을 차지하는 경우도 흔합니다.

마치며 — 2026년 TCA, 어디로 가는가

2026년 TCA는 두 가지 큰 흐름이 있습니다. 첫째, AI 기반 알고 휠의 보편화 — buy-side 50% 이상이 자동 라우팅을 사용하고, 이는 사실상 셀-사이드의 알고 경쟁이 TCA 기록 경쟁으로 수렴함을 의미합니다. 둘째, 실시간 TCA — 사후 분석에서 in-trade 모니터링으로 무게중심이 이동합니다. <5ms latency 의 슬리피지 알림이 표준이 되고 있습니다.

규제도 변동기입니다. EU MiFIR 리뷰는 RTS 28의 강화 vs 완화 사이에서 결정이 임박했고, 미국 SEC는 PFOF(Payment For Order Flow) 규제 강화 + Reg Best Ex 신설을 추진 중입니다. 한국 KOFIA 가이드라인은 2026-2027년 더 정량적인 보고 의무로 확대될 전망이고, 일본 JSDA도 알고리즘 거래 가이드라인 개정 작업 중입니다.

실무자에게 권하는 다음 스텝: (1) 자사 4-bucket 비용 분해를 자동화하고, (2) Almgren-Chriss + Square-Root 모델로 pre-trade 시뮬레이션을 내재화하고, (3) 알고 휠을 단계적으로 도입(처음엔 그림자 모드, 나중에 실거래)하고, (4) 분기별 브로커 스코어카드를 표준화하는 것입니다. 이 4가지가 2026년 TCA 성숙도의 기본 측정 기준입니다.

References

  1. Perold, André F. "The Implementation Shortfall: Paper Versus Reality." Journal of Portfolio Management, Spring 1988.
  2. Almgren, Robert, and Neil Chriss. "Optimal Execution of Portfolio Transactions." Journal of Risk, Vol 3, 2000.
  3. Kissell, Robert, and Morton Glantz. Optimal Trading Strategies: Quantitative Approaches for Managing Market Impact and Trading Risk. AMACOM, 2003.
  4. Obizhaeva, Anna, and Jiang Wang. "Optimal Trading Strategy and Supply/Demand Dynamics." Journal of Financial Markets, Vol 16, 2013.
  5. Bouchaud, Jean-Philippe, J. Bonart, J. Donier, M. Gould. Trades, Quotes and Prices: Financial Markets Under the Microscope. Cambridge University Press, 2018.
  6. Almgren, Robert, Chee Thum, Emmanuel Hauptmann, and Hong Li. "Direct Estimation of Equity Market Impact." Risk Magazine, July 2005.
  7. Tóth, Bence et al. "Anomalous price impact and the critical nature of liquidity in financial markets." Physical Review X, 2011.
  8. Bershova, Nataliya, and Dimitri Rakhlin. "The non-linear market impact of large trades." Quantitative Finance, Vol 13, 2013.
  9. Bloomberg L.P. "BTCA — Bloomberg Transaction Cost Analysis." https://www.bloomberg.com/professional/product/transaction-cost-analysis/
  10. Virtu Financial. "Virtu Analytics — Pre-Trade and Post-Trade." https://www.virtu.com/products/analytics/
  11. J.P.Morgan. "SquareEdge — Execution Analytics." https://www.jpmorgan.com/markets/execution/algorithmic-trading
  12. big xyt GmbH. "Liquidity Cockpit and Trade Cost Analytics." https://www.bigxyt.com/
  13. BMLL Technologies. "Level 3 Order Book History and Analytics." https://www.bmlltech.com/
  14. Tradeweb Markets. "AiEX Automated Intelligent Execution." https://www.tradeweb.com/our-markets/data---reporting/ai-ex/
  15. European Securities and Markets Authority. "MiFID II RTS 28 — Annual Best Execution Disclosure." https://www.esma.europa.eu/
  16. U.S. Securities and Exchange Commission. "Rule 605 and Rule 606 — Disclosure of Order Execution and Routing Information." https://www.sec.gov/divisions/marketreg/rule605faq.htm
  17. 금융투자협회(KOFIA). "최선집행 의무 가이드라인 개정안 2025." https://www.kofia.or.kr/
  18. 日本証券業協会(JSDA). "最良執行方針に関するガイドライン." https://www.jsda.or.jp/
  19. Greenwich Associates / Coalition Greenwich. "2025 Equity Trading Trends — Algo Wheel Adoption Survey." 2025.
  20. Plexus Group / ITG. "Universal TCA Platform — Historical Background." (Acquired by Virtu 2019.)