Markets: A Rigorous Course

2.1 Prices, returns and the two aggregation rules

Foundation about 15 min

Motivation

A price level carries little information on its own: Nifty at 24,000 and a stock at ₹240 are not comparable, but their percentage changes are. Every model in this course (Kelly sizing in M03, Black–Scholes in M08, GARCH in M13) is written in returns, and choosing the wrong kind of return produces errors that are small on a quiet day and large in a crash.

2.1.1Two definitions of return#

Setup

Let PtP_t be the price of an asset at the close of day tt and DtD_t any cash distribution (dividend) with ex-date in (t−1,t](t-1, t]. Define

Rt=Pt+DtPt−1−1(simple, or arithmetic, return),rt=ln⁡(1+Rt)(log, or continuously compounded, return).(2.1)\begin{aligned} R_t &= \frac{P_t + D_t}{P_{t-1}} - 1 &&\text{(simple, or arithmetic, return)}, \\ r_t &= \ln(1 + R_t) &&\text{(log, or continuously compounded, return).} \end{aligned} \tag{2.1}

An index such as the Nifty 50 is a free-float market-capitalisation-weighted average of 50 large NSE stocks. The quoted Nifty 50 is a price index: dividends are not reinvested. NSE Indices also publishes the Nifty 50 Total Return Index (TRI), which reinvests dividends and is the right series for long-run return comparisons. Corporate actions (splits, bonuses, rights issues) change PtP_t mechanically, so single-stock series must be adjusted (rescaled backwards) before computing returns. Yahoo's "adjusted close" does this, with known errors on Indian stocks; verify against NSE's corporate-action records before trusting a large one-day return on a single stock.

2.1.2Aggregation over time and assets#

Proposition 2.1aggregation

(a) Over time, for one asset with no distributions, 1+Rt→t+k=∏j=1k(1+Rt+j)1 + R_{t \to t+k} = \prod_{j=1}^{k} (1 + R_{t+j}) and rt→t+k=∑j=1krt+jr_{t \to t+k} = \sum_{j=1}^{k} r_{t+j}. (b) Across assets, if a portfolio holds weights wiw_i (fractions of value, ∑iwi=1\sum_i w_i = 1) at time t−1t-1 and does not trade during the period, its simple return is Rp,t=∑iwiRi,tR_{p,t} = \sum_i w_i R_{i,t}, while its log return satisfies rp,t=ln⁡∑iwieri,t≥∑iwiri,tr_{p,t} = \ln \sum_i w_i e^{r_{i,t}} \ge \sum_i w_i r_{i,t}.

Proof

(a) Pt+k/Pt=∏j=1kPt+j/Pt+j−1P_{t+k}/P_t = \prod_{j=1}^{k} P_{t+j}/P_{t+j-1}; take logs. (b) Let Vt−1V_{t-1} be portfolio value and nin_i the units of asset ii, so wi=niPi,t−1/Vt−1w_i = n_i P_{i,t-1}/V_{t-1}. Then 1+Rp,t=∑iniPi,t/Vt−1=∑iwi(1+Ri,t)1 + R_{p,t} = \sum_i n_i P_{i,t}/V_{t-1} = \sum_i w_i (1 + R_{i,t}), and ∑iwi=1\sum_i w_i = 1 gives the first claim. For the second, 1+Rp,t=∑iwieri,t1 + R_{p,t} = \sum_i w_i e^{r_{i,t}}; since exp⁡\exp is convex and the wiw_i (if non-negative) form a probability vector, Jensen's inequality gives ∑iwieri,t≥e∑iwiri,t\sum_i w_i e^{r_{i,t}} \ge e^{\sum_i w_i r_{i,t}}.∎

The rule is: log returns add over time; simple returns add across assets. A second-order expansion quantifies the error from mixing them up. Writing rˉ=∑iwiri\bar r = \sum_i w_i r_i,

rp−rˉ=ln⁡∑iwieri−rˉ≈12∑iwi(ri−rˉ)2,(2.2)r_p - \bar r = \ln \sum_i w_i e^{r_i - \bar r} \approx \tfrac12 \sum_i w_i (r_i - \bar r)^2, \tag{2.2}

half the cross-sectional variance of the constituents' log returns. On an ordinary day this is a fraction of a basis point. On 23 Mar 2020, when Nifty constituents fell by amounts ranging over tens of percent, it was not.

2.1.3Size of the log–simple gap#

The two kinds of return are related by r=ln⁡(1+R)=R−R2/2+R3/3−…r = \ln(1+R) = R - R^2/2 + R^3/3 - \dots, so r<Rr < R for every R≠0R \ne 0, and the gap grows with ∣R∣|R|:

RR +1%+1\% −1%-1\% +10%+10\% −12.98%-12.98\% −20.47%-20.47\% −50%-50\%
r=ln⁡(1+R)r=\ln(1+R) 0.995%0.995\% −1.005%-1.005\% 9.53%9.53\% −13.90%-13.90\% −22.90%-22.90\% −69.3%-69.3\%

The −12.98%-12.98\% column is Nifty on 23 Mar 2020 and −20.47%-20.47\% is the S&P 500 on 19 Oct 1987 (2.10).

Worked exampleasymmetry

A stock rises 10% and then falls 10%: 1.1×0.9=0.991.1 \times 0.9 = 0.99, a 1% loss. In log terms 0.0953−0.1054=−0.01010.0953 - 0.1054 = -0.0101. A 50% fall needs a 100% rise to recover, because ln⁡0.5=−ln⁡2\ln 0.5 = -\ln 2. This asymmetry is pure arithmetic, but it governs everything about drawdowns and position sizing in M03.

Practitioner notes

  • Use log returns for anything indexed by time: volatility estimation, autocorrelation, GARCH, horizon scaling. Use simple returns for anything indexed by assets: portfolio returns, attribution, P&L in rupees.
  • Index-level analysis on the price index understates long-run returns by the dividend yield, historically about 1–1.5% a year for the Nifty (NSE Indices factsheets publish the current yield; check the as-of date). Use the TRI for anything longer than a year.
  • Daily closes in India changed definition in 2026: from 3 Aug 2026 the closing price of F&O stocks comes from a Closing Auction Session rather than the 15:00–15:30 VWAP (M01). A long return series therefore splices two closing mechanisms. For daily statistics this is negligible; for close-to-close microstructure studies around 15:30 it is not.

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.