Skip to content

필사 모드: TCA(取引コスト分析)+ マーケットインパクトモデル 2026 ディープダイブ — Implementation Shortfall, Almgren-Chriss, Kissell-Glantz I-Star, Bouchaud-Farmer Propagator, Bloomberg BTCA, Virtu, big xyt, BMLL, Tradeweb 完全解説

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

はじめに — 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/野村の実務までを一気通貫で整理します。

TCA 50年小史 — Perold(1988)から2026年のアルゴホイールまで

取引コスト測定の歴史は1980年代後半の学術研究に始まります。1988年、André Peroldが *Journal of Portfolio Management* に発表した「The Implementation Shortfall: Paper vs. Reality」がこの分野の出発点です。Peroldは「ペーパーポートフォリオ」と実際の約定との差を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 → 最良執行義務の強化

2007: MiFID I → EU最良執行の導入

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 シリーズB

2024: SEC Rule 605/606 改正(リテール注文フロー開示拡大)

2025: KOFIA 最良執行ガイドライン改定

2026: アルゴホイール標準化、リアルタイム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`

第1項は **執行コスト(Execution Cost)** — 意思決定価格対比の実約定差、第2項は **遅延コスト(Delay Cost)** — 意思決定から注文到着までの価格変動、第3項は **機会コスト(Opportunity Cost)** — 未約定分の価値損失です。ISは通常bp(ベーシスポイント)で表現され、買い注文では正の値がコスト、売り注文では符号が反転します。

実務では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 Cost | Bid-Askの半分 | 市場条件依存 | `2-10 bps` |

| Market Impact | 自身の注文が価格を押す効果 | アルゴ/速度で制御 | `5-50 bps` |

| Timing Risk | 価格が不利に動くリスク | 執行速度で制御 | `10-100 bps` |

Pre-Trade TCA と 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

)

}

例: 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程度と報告されます。参加率ρによる分割:

`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*)はリミットオーダーブックの動学を明示的にモデル化し、インパクトがどのように回復するかを示しました。彼らの中心的発見は、インパクトが指数減衰(exponential decay)するということです。

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

第1項が一時インパクト(時間tに伴って減衰)、第2項が恒久インパクト(均衡価格の変化)です。ρは回復速度で、米国大型株では半減期は約5-15分と報告されます。このモデルは大規模なメタオーダー(複数の子注文に分割された大きな親注文)の影響測定の標準となりました。

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-quote | IS測定の標準 | ノイズが多い |

| 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 分解の例

def calculate_is_decomposition(parent_order):

"""

parent_order キー: side, qty_total, decision_price, arrival_price,

fills(timestamp, qty, price, venue を持つ dict のリスト),

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 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)対Taker(=2)を区別することで、メイカー手数料リベートを受けたか対テイカー手数料を支払ったかを正確に追跡できます。米国のメイカー-テイカー取引所(NYSE Arca、NASDAQ)ではこの情報が直接手数料経済に反映されます。

Bloomberg BTCA — グローバル市場シェア1位

Bloomberg BTCA(Bloomberg Transaction Cost Analysis)は2014年リリース以降、グローバルセルサイドTCA市場でシェア1位を維持しています。主な機能は(1)Pre-Tradeシミュレーション(Bloomberg AIMと統合)、(2)Real-Timeスリッページモニタリング、(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が誇った **アルゴホイール** はVirtu統合後、自動ルーティングエンジンへ拡張されました。

アルゴホイールの中核原理:各ブローカー/アルゴの組み合わせの過去6ヶ月のTCAデータ(IS bp、約定率、reversion)を学習し、新規注文が到着したらその銘柄/サイズ/市場条件に最適なブローカー/アルゴへ自動ルーティングします。TradewebのAiEX(Automated Intelligent Execution)も同じコンセプトを採用しており、2026年現在、グローバルのバイサイドのおよそ60%がアルゴホイールを使用していると推定されます(Greenwich Associates 2025レポート)。

big xyt — 欧州マーケットデータ + 流動性ヒートマップ

big xyt(本社フランクフルト、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(ロンドン、2014年設立)はグローバル60超の取引所のLevel 3 order book履歴データを保有します。Level 3とは全ての注文の追加/取消/約定メッセージをマイクロ秒単位で保存することを意味し、歴史的バックテストとTCA回顧分析に不可欠です。BMLL Data Lab(Python/Jupyter環境)はクオンツリサーチャーが自身のアルゴを過去のLOBに対して再生してテストできるようにします。

2022年のシリーズ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)最良執行義務が株式より曖昧。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取引会場(top-5 venues by volume)を開示し、各資産クラスごとの最良執行ポリシーの結果を定性/定量分析で添付する必要があります。

米国SEC Rule 605(2001年施行、2024年改正)はマーケットメイカーが執行品質統計(実効スプレッド、価格改善、約定率)を月次で開示することを要求します。SEC Rule 606(2018年改正)はブローカーディーラーが四半期ごとに注文フローのルーティング統計(どの取引所にどれだけ送ったか、どのインセンティブを受けたか)を開示するよう要求します。2024年改正でリテール注文に対する開示が強化されました。

| 規制 | 地域 | 対象 | 周期 | 中核項目 |

|------|------|------|------|----------|

| MiFID II RTS 27 | EU | 取引会場 | 四半期(2021廃止) | 取引コスト、速度 |

| MiFID II RTS 28 | EU | 投資会社 | 年次 | Top-5取引会場、Best Ex |

| SEC Rule 605 | US | マーケットメイカー | 月次 | 実効スプレッド、価格改善 |

| SEC Rule 606 | US | ブローカーディーラー | 四半期 | 注文ルーティング、インセンティブ |

| KOFIA最良執行 | KR | 証券会社 | 四半期(2025~) | 取引会場、TCA |

| JSDA Best Ex | JP | 証券会社 | 年次 | 取引会場開示 |

韓国 — ミレアセット/韓投/NH IB TCA + KOFIAガイドライン

韓国証券会社のTCA導入は2020年代に本格化しました。ミレアセット証券は自社開発の **MAE(Mirae Asset Execution)TCA** を運用し、自社トレーダーと外部バイサイドの両方にレポートを提供しています。韓国投資証券はBloomberg BTCAを導入し、NH投資証券はLiquidnet/ITG(Virtu)TCAを使用しています。

韓国取引所(KRX)取引は単一取引所環境のため、米国/EUに比べてvenue analysisがシンプルです。代わりに板の深さ、MOCオークション参加率、時間外終値取引活用率がTCAコア指標となります。KOFIAは2025年6月に **最良執行義務ガイドライン** を改定し、運用会社と取引する証券会社に四半期ごとのTCA報告を義務化しました。違反時はKOFIA自主規制手続きに従い、勧告/注意/会員資格停止が可能です。

| 韓国証券会社 | TCAプラットフォーム | 強み | 備考 |

|--------------|---------------------|------|------|

| ミレアセット証券 | 自社MAE TCA + Bloomberg BTCA | 国内外統合 | 自社アルゴホイール |

| 韓国投資証券 | Bloomberg BTCA | Bloomberg統合 | グローバルバイサイド対応 |

| NH投資証券 | Liquidnet/Virtu | 外部バイサイド協業 | ダークプール活用 |

| サムスン証券 | Bloomberg BTCA + 自社 | 最良執行ポリシー強化 | 2025ガイドライン対応 |

| KB証券 | Refinitiv Eikon TCA | 債券に強み | 為替/債券統合 |

| 新韓投資証券 | Bloomberg BTCA | 株式中心 | アルゴホイール試験 |

日本 — SBI/野村 + JSDA/SESCモニタリング

日本のTCA導入は韓国より少し先行しています。野村は自社の **NX(Nomura Execution)TCA** を運用し、子会社Instinetと統合してグローバルバイサイドにサービスを提供します。SBI証券はBloomberg BTCAを導入し、大和はVirtu Pre-Tradeを使用しています。みずほとSMBC日興もそれぞれBloomberg BTCAを使用します。

日本市場の特徴は **PTS**(Proprietary Trading System) — 日本版のダークプール/MTF — であるJapannext PTS、Cboe Japan(旧Chi-X Japan)のシェアが米国/EU比で小さい点です(全取引のおよそ5-7%)。そのためTCAのvenue analysisウェイトが相対的に低く、MOCオークション分析とToSTNeT-3(クロージング以外の時間外)活用分析が重要となります。SESC(証券取引等監視委員会)は2024年からアルゴリズム取引モニタリングを強化し、大手バイサイドのアルゴ使用パターンを四半期ごとに監視しています。

ブローカースコアカード — SQL報告クエリ

ブローカースコアカードは四半期ごとに各ブローカーの成果をスリッページ/約定率/reversionなど多次元で評価します。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 — 自動ブローカールーティング

アルゴホイールはバイサイドのOMS(Order Management System)またはEMS(Execution Management System)に統合された自動ルーティングエンジンです。入力:銘柄、サイズ、サイド、緊急度。出力:最適なブローカー/アルゴの組み合わせ。学習データ:自社の過去6-12ヶ月のTCA記録(IS bp、約定率、reversion)。

アルゴホイールの運用原理は(1)日次で全子注文をbroker-algo-symbol-size-bucket-volatility-bucket単位でグループ化、(2)各グループごとの平均IS bpを計算、(3)新規注文到着時に該当グループのベストK個(通常3-5個)候補に絞り込み、(4)Thompson samplingまたはepsilon-greedyで探索-活用バランスを取りながらルーティング、(5)新しい約定結果を反映してモデルを更新する、というものです。2026年現在、グローバルバイサイドのおよそ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コスト**(imbalance cost) — オークションimbalanceが価格を一方向に押す効果 — です。インデックスファンドのリバランスデーを分析すると、MOC imbalanceコストが全日ISの80%以上を占める場合もしばしば見られます。

おわりに — 2026年のTCA、どこへ向かうのか

2026年のTCAには大きな2つの流れがあります。第一に **AI駆動アルゴホイールの主流化** — バイサイドの50%以上が自動ルーティングを使用し、これはセルサイドのアルゴ競争が実質的にTCA記録の競争に収束することを意味します。第二に **リアルタイムTCA** — 事後分析からin-tradeモニタリングへ重心が移動します。`<5ms latency` のスリッページアラートが標準になりつつあります。

規制も変動期です。EU MiFIRレビューはRTS 28の強化対緩和の間で決定が間近に迫っており、米国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.)

현재 단락 (1/275)

2026年、取引コスト分析(Transaction Cost Analysis, TCA)はもはや月末にPDFでポートフォリオマネージャーに送る事後報告書ではありません。パッシブ運用がグローバル株式の...

작성 글자: 0원문 글자: 19,551작성 단락: 0/275