Document cost bps as one-way per-trade, not round-trip

The simulator charges (cost_bps + slippage_bps) on each fill, so a full
round trip is charged twice. Correct the cost-model doc, the reversal_5d
report, and the report generator to state the rate is one-way per-trade
(~20 bps round trip for 5+5), rather than mislabeling it round-trip.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Yuxuan Yan
2026-06-11 21:46:41 +08:00
parent 2ceac82325
commit 2c0ca53bd6
3 changed files with 13 additions and 4 deletions
+7
View File
@@ -41,6 +41,13 @@ execution_price_i = open_price_i
rates are added linearly. The CLI options `--cost-bps` and `--slippage-bps`
both default to `0.0`.
Both rates are **one-way, per-trade**: the combined `(cost_bps + slippage_bps)`
is charged on the traded notional of *each* fill, buy and sell alike. A full
round trip (enter then exit a position) is therefore charged twice — e.g.
`5 + 5` bps becomes ~20 bps over a complete round trip, not 10. Quote any
round-trip figure by doubling, or convert a round-trip budget to a per-trade
rate by halving before passing it in.
Example:
```text
@@ -30,8 +30,9 @@ costless research cumulative return at Sharpe
54.31% daily hit rate.
The binding constraint is **cost, not signal**: at ~148×/year
turnover, a 10 bps round-trip (5 bps commission + 5 bps slippage) erases the
edge — every variant is negative after costs. A tradable 5-day reversal needs
turnover, a 10 bps one-way per-trade cost (5 bps commission + 5 bps slippage,
charged on each leg — so ~20 bps per round trip) erases the edge — every variant
is negative after costs. A tradable 5-day reversal needs
turnover control, not a different signal.
## Headline Metrics
+3 -2
View File
@@ -630,8 +630,9 @@ costless research cumulative return at Sharpe
{_pct(results['rank_liquid']['alpha_metrics']['hit_rate']) if rliq else 'n/a'} daily hit rate.
The binding constraint is **cost, not signal**: at ~{results['rank_liquid']['alpha_metrics']['turnover_annual']:.0f}×/year
turnover, a 10 bps round-trip (5 bps commission + 5 bps slippage) erases the
edge — every variant is negative after costs. A tradable 5-day reversal needs
turnover, a 10 bps one-way per-trade cost (5 bps commission + 5 bps slippage,
charged on each leg — so ~20 bps per round trip) erases the edge — every variant
is negative after costs. A tradable 5-day reversal needs
turnover control, not a different signal.
## Headline Metrics