取引コスト分解 — gross PnL と net PnL の間にある現実

TL;DR

  • gross PnL の Sharpe 1.5 が、commission + slippage で net Sharpe ゼロまで下がるのは普通
  • 取引コストは 3 成分: spread (bid/ask)、commission (broker)、slippage (market impact)
  • 月 X 回 trade × round-trip Y% で年率 X×Y×12% の drag
  • 高頻度ほど cost に殺される、低頻度ほど統計検定力が落ちる trade-off

Hook

「Sharpe 1.5 の戦略は、月 10 回 trade 時にゼロまで落ちる」

retail backtest の最大の落とし穴は「コストを甘く見積もる」こと。spread 0.05%、commission 0、slippage 0 と仮定すれば gross が綺麗な右肩上がり。net 計算した瞬間、edge が消える。

Background

Transaction Cost Analysis (TCA) は機関 trader の必須技能。Kissell (2013) “The Science of Algorithmic Trading” は TCA を体系化、retail にも応用可能なフレームワークを提示している。

LSE / NYSE が公開する TCA レポートでは、機関 trader の平均 round-trip cost が 5-15bp 程度。retail はそれより悪い (broker spread + commission の重なり)。

Theory — 3成分分解

取引コスト = Spread + Commission + Slippage

1. Spread (Bid/Ask)

bid/ask の中間で取引したいが、market order なら bid (買い) または ask (売り) を喰らう。

  • 流動性高い ETF (SPY): 0.5-1bp
  • 中流動性 ETF (sector ETF): 5-15bp
  • 個別株 (大型): 1-3bp
  • 個別株 (中小型): 10-50bp
  • option: 5-30bp (delta 依存)

2. Commission

broker が課す手数料。近年 retail は無料化進展。

  • US: 0 (Schwab, Fidelity, Robinhood) – 0.1% (older brokers)
  • UK: £0-£12 / trade (interactive investor £4.99 など)
  • option: 0-$0.65 / contract

3. Slippage / Market Impact

注文サイズが流動性を消費する量。retail サイズなら通常無視できるが、薄い market では発生。

  • 大型 ETF + retail size: ~0
  • 中流動性 ETF + 大きな注文: 5-30bp
  • 個別株 + サイズ大: order size の 10-50%

Concrete example

教科書的な計算。月 10 回 entry/exit で年 240 trades (round-trip)。各 trade の round-trip cost:

想定 spread commission slippage round-trip total
楽観 (大型 ETF, retail) 1bp 0 0 1bp
標準 (中流動性 ETF) 10bp 0 5bp 15bp
悲観 (中小型株 + サイズ大) 30bp 5bp 50bp 85bp

年間 drag = 240 × round-trip cost: – 楽観: 2.4% – 標準: 36% – 悲観: 200%+ (運用不可能)

つまり中流動性 ETF で月 10 回 trade なら、年 36% の cost drag。gross Sharpe 1.5 (= 年 15% / std 10%) なら、net は -21% / std 10% で 完全に負の戦略

Limitation / Counter-argument

1. ETF spread は時間帯で変動

朝の open / 終了直前は spread が広がる。day 中の安定時間帯で trade すれば spread が縮む。retail backtest が time-of-day を考慮するかが重要。

2. Limit order で spread を回避

market でなく limit で出せば、spread を払わずに済む可能性がある。ただし約定確率が落ちる (Quant 連載記事 8 で扱ったとおり)。約定確率込みの effective edge を見る必要がある。

3. 機関 vs retail の cost ギャップ

機関は dark pool、internalization、smart routing で round-trip 5bp 以下の世界。retail は同じ商品でも 10-20bp 喰らう。「機関で機能する戦略」を retail で再現すると、cost 差で edge が消える。

4. tax drag を含めると更に悪化

短期 capital gain は税率高め (US 39.6%, UK 20% basic + dividend tax)。月 10 回 trade なら 100% 短期。長期 capital gain と差は数 % 以上ある。

5. Leverage コスト

margin で leverage する場合、IBKR で年 5-7% (USD)、retail broker は更に高い。leverage 2x で機械的に年 5-7% の drag が加わる。

Practical takeaway

retail で取引コストを正しく扱う規律:

  1. gross と net の両方を保存: backtest output は常に「pre-cost」と「post-cost」を並記
  2. frequency × round-trip cost で drag を直計算: 戦略採用前にこの数字を見る
  3. liquidity-adjusted Sharpe を使う: cost を引いた net Sharpe で判断
  4. trade frequency を意識的に下げる: 戦略 redesign で月 10 → 月 3 に減らせると drag が大幅減
  5. spread / commission の安い broker を選ぶ: IBKR、Schwab、Fidelity (US)、interactive investor (UK)

ただし net コスト計算は historical の見積もりであり、実際の slippage は将来の市場環境次第。OOS 検証が future performance を保証するわけではない。

まとめ

retail backtest の Sharpe inflation は年率化バグ + 取引コスト軽視の合わせ技。gross Sharpe 1.5 が net で 0 になるのは普通。

「frequency × round-trip cost = annual drag」を機械的に計算する習慣がつくと、戦略開発の判断軸が変わる。「edge の magnitude」より「edge – cost」が question。低頻度戦略の方が long-run で勝ちやすい構造。

参考文献

  • Kissell, R. (2013). The Science of Algorithmic Trading and Portfolio Management. Academic Press.
  • Almgren, R., Chriss, N. (2001). Optimal Execution of Portfolio Transactions. Journal of Risk, 3(2), 5-39.
  • Frazzini, A., Israel, R., Moskowitz, T.J. (2018). Trading Costs. AQR Working Paper.
  • LSE / NYSE Public TCA Reports.
  • Harris, L. (2003). Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press.

コメントする