Markets: A Rigorous Course

5.9 The mathematics of cost drag

Core about 15 min

Motivation

M01 computed the cost of one trade. Here we compute what costs do to a strategy over a year, and why the same cost per trade is far more damaging intraday than in swing trading (holding for days to weeks; M04).

5.9.1Net expectancy and Sharpe drag#

Setup

A strategy makes NN non-overlapping trades a year. Trade ii returns ri=e−c+ϵir_i = e - c + \epsilon_i, where ee is the gross edge (expected gross return per trade), cc the round-trip cost (charges plus spread plus impact, as a fraction of notional), and ϵi\epsilon_i i.i.d. with mean 0 and standard deviation σt\sigma_t. Position size is constant.

Proposition 5.7net expectancy and Sharpe drag

The annual expected return, standard deviation and Sharpe ratio are

μA=N(e−c),σA=N σt,SRA=N e−cσt=SRAgross−N cσt.(5.25)\mu_A = N(e - c), \qquad \sigma_A = \sqrt N\,\sigma_t, \qquad \text{SR}_A = \sqrt N\,\frac{e - c}{\sigma_t} = \text{SR}_A^{\text{gross}} - \sqrt N\,\frac{c}{\sigma_t}. \tag{5.25}

If the holding period is hh (in days), N=H/hN = H/h trades fit in HH trading days, σt=σDh\sigma_t = \sigma_D\sqrt h for a random-walk price, and the edge scales as e=ahe = a h (a drift-like edge of aa per day), then

SRA(h)=HσD(a−ch).(5.26)\text{SR}_A(h) = \frac{\sqrt H}{\sigma_D}\Big(a - \frac{c}{h}\Big). \tag{5.26}
Proof

Sums of NN i.i.d. trade returns have mean N(e−c)N(e - c) and variance Nσt2N\sigma_t^2; divide. For (5.26), substitute N=H/hN = H/h, σt=σDh\sigma_t = \sigma_D\sqrt h and e=ahe = ah: H/h (ah−c)/(σDh)=H(ah−c)/(σDh)\sqrt{H/h}\,(ah - c)/(\sigma_D\sqrt h) = \sqrt H(ah - c)/(\sigma_D h).∎

The cost term Nc/σt\sqrt N c/\sigma_t is the Sharpe drag. Equation (5.26) shows that for a drift-like edge, the cost penalty is c/hc/h per day: it falls in inverse proportion to the holding period. Short holding periods are viable only if the edge per unit time is much larger at short horizons, which is what intraday traders implicitly claim.

5.9.2Intraday versus swing#

Worked example: intraday versus swing on a large-cap with σD=1.8%\sigma_D = 1.8\%

Intraday Swing
Holding period ~1 hour of a 6.25-hour session 10 trading days
σt\sigma_t 1.8%×1/6.25=0.72%1.8\% \times \sqrt{1/6.25} = 0.72\% 1.8%×10=5.69%1.8\% \times \sqrt{10} = 5.69\%
Cost cc per round trip 10 bp (8.3 bp charges on ₹1 lakh, plus ~2 bp spread) 25 bp (24 bp delivery charges incl. DP, plus ~1 bp spread)
c/σtc/\sigma_t (per-trade Sharpe needed to break even) 0.139 0.044
Trades a year NN 500 (2 a day) 25
Sharpe drag Nc/σt\sqrt N c/\sigma_t 3.1 0.22
Annual cost NcNc (on notional) 50% 6.25%

(Volatility is assumed uniform across the session; the U-shape makes the opening hour more volatile and the midday hour less.)

An intraday strategy trading twice a day must have a gross annualised Sharpe above 3.1 just to break even; at 250 trades a year the hurdle is 2.2. The swing strategy's hurdle is 0.22. The intraday trader's cost per trade is 40% of the swing trader's, but relative to the risk taken per trade it is three times larger, and it is paid 20 times as often.

5.9.3Statistical power of frequency#

The counterpoint: intraday edges are faster to verify The number of years needed for a strategy with net per-trade Sharpe st=(e−c)/σts_t = (e-c)/\sigma_t to reach a t-statistic of 2 is T2=4/(Nst2)T_2 = 4/(N s_t^2). An intraday strategy with a net edge of 5 bp per trade and σt=0.72%\sigma_t = 0.72\% at 500 trades a year needs 1.7 years; a swing strategy with a net edge of 50 bp and σt=5.69%\sigma_t = 5.69\% at 25 trades a year needs 21 years. High frequency gives statistical power. It does not give edge.

Practitioner notes

  • Costs are known in advance and certain; edges are estimated and uncertain. A backtest that clears costs by a small margin is a strategy that probably loses.
  • Leverage scales ee, cc and σt\sigma_t together and does not change c/σtc/\sigma_t. It cannot rescue a strategy with negative net Sharpe.
  • Annual cost NcNc is on notional, not on capital. At 5× intraday notional per unit of capital, 50% of notional is 250% of capital a year.

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.