Quantitative Finance · Book 1 · Markets

Markets I: The Ecosystem and Exchange-Traded Markets

Markets I: The Ecosystem and Exchange-Traded Markets · Markets

8Shares, Corporate Actions and Indices

On Friday 7 June 2024 the shares of Nvidia closed at $1 208.88. On Monday morning they opened near $121. Nobody lost a cent: over the weekend each holder had received nine additional shares for every one held. A chart of the raw closing prices shows a 90% collapse; a backtest run on that chart discovers a wonderful short-selling strategy; an index that included the stock at its new price without further thought would have fallen with it. Shares are not static objects. They pay out, split, multiply, merge and disappear, and every system that stores a price must know what happened to the thing being priced. This chapter is about those events, the arithmetic that undoes them, and the indices that must be maintained through all of them.

8.1 What a share is

Definition 8.1 (Share and market capitalisation)

A share is a unit of ownership in a company, giving its holder a proportional claim on what the company distributes and, usually, a vote. With NN shares outstanding at price PP, the market capitalisation is NPNP.

Definition 8.2 (Free float)

The free float of a company is the fraction of its shares available to public investors, excluding holdings that are not for sale in the ordinary course: founders and other strategic holders, governments, cross-holdings, shares locked up after a listing.

A company may have several classes of shares with different votes or different dividends, each with its own price and ticker; the same share may also be listed on several exchanges in several currencies (Chapter 17). “The price of the company” is therefore a convention; the data structures of Chapter 28 exist to pin it down.

8.2 Dividends

Definition 8.3 (Dividend, record date and ex-dividend date)

A dividend is a distribution of cash (or shares) by a company to its shareholders, of a declared amount per share. It is paid to whoever is on the register at the close of the record date. The ex-dividend date is the first day on which a buyer of the share is no longer entitled to the dividend: trades made on or after it settle too late to reach the register in time.

As of September 2026 — Ex-date and record date in the United States

Since US settlement moved to one day on 28 May 2024, the ex-dividend date of an ordinary distribution is the record date itself: exchange rules now say so. Under two-day settlement the ex-date was one business day before the record date.

The dates of a dividend. With one-day settlement the ex-date coincides with the record date. Between the ex-date and the payment the holder’s wealth is the share plus the dividend owed: a P&L system that forgets the second part shows a loss that did not happen ().
Figure 8.1. The dates of a dividend. With one-day settlement the ex-date coincides with the record date. Between the ex-date and the payment the holder’s wealth is the share plus the dividend owed: a P&L system that forgets the second part shows a loss that did not happen (Method 7.14).

Proposition 8.4 (The ex-date drop)

Ignoring taxes and one night’s interest, and with no news between the two auctions, a share that closes cum-dividend at PP opens ex-dividend at P−DP - D.

Proof. A share bought at the cum close is worth, the next morning, one ex-dividend share plus a claim to DD payable in a few days. If it opened above P−DP - D, buying at the close and selling at the open would earn a riskless profit; below, the reverse trade would. ∎

In practice the drop is a little less than DD where dividends are taxed more heavily than capital gains, because the marginal holder values a dollar of dividend at less than a dollar; the difference, and the lending of shares across the ex-date that exploits it, return in Chapter 16.

8.3 Splits, rights issues and spin-offs

Definition 8.5 (Stock split)

In a kk-for-1 stock split every share becomes kk shares. The number of shares is multiplied by kk, the price is divided by kk, and nothing else changes. A reverse split has k<1k<1.

Definition 8.6 (Rights issue)

In a rights issue a company raises capital by giving its shareholders the right to buy nn new shares for every NN held, at a subscription price SS below the market price. The rights are usually tradable for a few weeks.

Proposition 8.7 (Theoretical ex-rights price)

If the share closes at PP before an nn-for-NN rights issue at SS, its theoretical price once the rights have detached is

TERP=NP+nSN+n,\mathrm{TERP} = \frac{NP + nS}{N+n},

and one right to subscribe one new share is worth TERP−S\mathrm{TERP} - S.

Proof. After the issue, N+nN+n shares own the old company, worth NPNP, plus nSnS of new cash. A right lets its owner pay SS for something worth TERP\mathrm{TERP}. ∎

Example 8.8 (One for four at six)

A share trades at 10.00; the company issues 1 new share for 4 held at 6.00. TERP=(40+6)/5=9.20\mathrm{TERP} = (40 + 6)/5 = 9.20. A right to one new share is worth 3.203.20; a holder of 4 shares receives one right and owns 4×9.20+3.20=40.004 \times 9.20 + 3.20 = 40.00, as before. The share price falls 8% on the ex-date and nobody is poorer; a holder who ignores the rights, however, gives away 3.20.

Definition 8.9 (Spin-off)

In a spin-off a company distributes to its shareholders the shares of a subsidiary, which becomes a separately listed company. The parent’s price falls on the ex-date by about the value distributed per share.

Mergers complete the list: in a cash merger the share disappears against a payment; in a share merger it becomes a fixed number of the acquirer’s shares. For data purposes both end a price series, and the rule is the same as everywhere in this chapter: the holder’s wealth is continuous; the price is not.

8.4 Adjustment factors

Definition 8.10 (Adjustment factor)

The adjustment factor of a corporate action is the number ff by which every price before its ex-date is multiplied so that the adjusted series has no jump caused by the action. A back-adjusted price is the raw price times the product of the factors of all later actions.

Method 8.11 (The factor of each action)

With PP the last cum price:

  1. kk-for-1 split: f=1/kf = 1/k (volumes are multiplied by kk).
  2. Cash dividend DD: f=(P−D)/Pf = (P-D)/P.
  3. Rights issue: f=TERP/Pf = \mathrm{TERP}/P.
  4. Spin-off worth VV per parent share: f=(P−V)/Pf = (P-V)/P.

Store the raw prices and the actions; compute adjusted series on demand. Adjusted prices change every time a new action occurs, so a stored adjusted price is a number with an unstated date.

Proposition 8.12 (What the dividend factor does, exactly)

Let the share close cum at PP and ex at PexP_{\mathrm{ex}}. The return of the series adjusted with f=(P−D)/Pf = (P-D)/P is Pex/(P−D)−1P_{\mathrm{ex}}/(P-D) - 1, while the holder’s total return is (Pex+D)/P−1(P_{\mathrm{ex}}+D)/P - 1. They are equal when Pex=P−DP_{\mathrm{ex}} = P - D and differ at second order otherwise. The factor f⋆=Pex/(Pex+D)f^\star = P_{\mathrm{ex}}/(P_{\mathrm{ex}}+D), which assumes the dividend is reinvested at the ex price, reproduces the total return in every case.

Proof. The adjusted cum price is fP=P−DfP = P - D, giving the first return. With f⋆f^\star the adjusted cum price is PPex/(Pex+D)P P_{\mathrm{ex}}/(P_{\mathrm{ex}}+D) and the return is (Pex+D)/P−1(P_{\mathrm{ex}}+D)/P - 1. For the difference, write Pex=(P−D)(1+ε)P_{\mathrm{ex}} = (P-D)(1+\varepsilon): the two returns are ε\varepsilon and ε (P−D)/P\varepsilon\,(P-D)/P, which differ by εD/P\varepsilon D/P. ∎

Example 8.13 (Two basis points)

P=102P = 102, D=2D = 2, and the stock closes ex at 99, a 1% fall net of the dividend. The standard factor gives −1.000%-1.000\%; the holder earned 101/102−1=−0.980%101/102 - 1 = -0.980\%. The error, two basis points, is εD/P\varepsilon D/P. Vendors differ in which factor they publish: two “adjusted close” series for the same stock need not agree, and a research database must state its convention.

A simulated stock with a ten-for-one split on day 150 and dividends on days 60 and 200. The raw series shows a 90% fall that no holder experienced; the back-adjusted series is continuous, and all its values before day 200 differ from the prices that actually traded. Data: the chapter’s script.
Figure 8.2. A simulated stock with a ten-for-one split on day 150 and dividends on days 60 and 200. The raw series shows a 90% fall that no holder experienced; the back-adjusted series is continuous, and all its values before day 200 differ from the prices that actually traded. Data: the chapter’s script.

Remark 8.14 (Three uses, three series)

Use raw prices for anything that touches an order: limit prices, tick sizes, fills, fees, the simulator. Use adjusted prices for returns, volatilities and signals computed across an ex-date. And in a backtest, use the adjusted series as it was known on each date: a signal computed today from back-adjusted prices of 2019 has seen the split of 2024. That discipline, called point-in-time data, is the subject of One Quant Book 7.

8.5 Indices

An index is a portfolio defined by a rule, whose value is published as a single number. Two design choices define it: how constituents are weighted, and how the number is kept continuous when the portfolio changes.

Definition 8.15 (Index divisor)

A capitalisation-weighted index with constituents ii of price pip_i, shares outstanding sis_i and float factor ϕi∈[0,1]\phi_i \in [0,1] has level

I=1Δ∑ipi si ϕi,I = \frac{1}{\Delta}\sum_i p_i\,s_i\,\phi_i ,

where the index divisor Δ\Delta is chosen at inception to give a round starting level and is thereafter changed only to offset changes in the numerator that are not price moves.

Proposition 8.16 (Divisor adjustment)

When, at given prices, a change of constituents, shares or float moves the index market value from MM to M′M', the level is unchanged if and only if the divisor becomes Δ′=Δ M′/M\Delta' = \Delta\,M'/M.

Proof. I=M/Δ=M′/Δ′I = M/\Delta = M'/\Delta'. ∎

A split changes pip_i and sis_i in opposite proportions and leaves MM unchanged: a capitalisation-weighted index needs no adjustment for it. A price-weighted index, I=∑ipi/ΔI = \sum_i p_i/\Delta, does: the split constituent’s weight falls tenfold and the divisor must shrink to compensate. The best-known price-weighted index, the Dow Jones Industrial Average, has been adjusted so many times that its divisor is well below one: a one-dollar move in any of its thirty stocks moves the index by several points.

Definition 8.17 (Total return index)

A price index reflects only price changes: on an ex-date it falls with its constituent. A total return index reinvests every dividend in the index on its ex-date (a net total return index after deducting a withholding tax), and is the correct benchmark for a fund that receives the dividends.

Five illustrative stocks under three weighting rules. Stock D, the smallest company, dominates the price-weighted index because its share price is 900; stock B, one of the largest companies, nearly vanishes from it. Data: the chapter’s script.
Figure 8.3. Five illustrative stocks under three weighting rules. Stock D, the smallest company, dominates the price-weighted index because its share price is 900; stock B, one of the largest companies, nearly vanishes from it. Data: the chapter’s script.
On day 30 stock B leaves a five-stock index and a larger company enters. With  the level is continuous; without it the index “gains” a third in a day in which no price moved. Data: the chapter’s script.
Figure 8.4. On day 30 stock B leaves a five-stock index and a larger company enters. With Proposition 8.16 the level is continuous; without it the index “gains” a third in a day in which no price moved. Data: the chapter’s script.

8.6 Tutorial: adjusting a series and maintaining an index

Goal. Back-adjust a price series through a split and two dividends, then carry an index through a constituent change. End state: Figure 8.2 and the two index paths of the last figure.

  1. Factors and back-adjustment. Each action multiplies every earlier price by its factor.

    def split_factor(new_for_old: float) -> float:
        """k-for-1 split: prices before the ex-date are multiplied by 1/k."""
        return 1.0 / new_for_old
    
    
    def dividend_factor(cum_price: float, dividend: float) -> float:
        """Cash dividend D on a stock closing cum-dividend at P: (P - D) / P."""
        return (cum_price - dividend) / cum_price
    Listing 8.1. Split and dividend factors. code/markets-1/08-shares-corporate-actions-indices/python/corpact.py
    def back_adjust(raw: np.ndarray, events: dict[int, float]) -> np.ndarray:
        """Back-adjusted series. events[i] = factor of an action whose ex-date is day i:
        every price strictly before day i is multiplied by it."""
        adj = np.asarray(raw, dtype=float).copy()
        for i, f in events.items():
            adj[:i] *= f
        return adj
    Listing 8.2. Back-adjustment: one line per action. code/markets-1/08-shares-corporate-actions-indices/python/corpact.py
  2. Check. The figure script builds the raw series from a known total-return path and asserts that the adjusted series has exactly that path’s returns.
  3. The index. The divisor moves only inside rebase, and only by the ratio of market values at unchanged prices.

    class CapIndex:
        """Float-adjusted capitalisation-weighted index maintained with a divisor."""
        shares: dict[str, float]          # shares outstanding
        floats: dict[str, float]          # investable weight factors in [0, 1]
        divisor: float
    
        def market_value(self, prices: dict[str, float]) -> float:
            return sum(prices[s] * self.shares[s] * self.floats[s] for s in self.shares)
    
        def level(self, prices: dict[str, float]) -> float:
            return self.market_value(prices) / self.divisor
    
        def rebase(self, prices: dict[str, float], change) -> None:
            """Apply `change(self)` (add/remove a constituent, change shares or float) at the
            given prices, and move the divisor so that the level is unchanged."""
            before = self.market_value(prices)
            change(self)
            self.divisor *= self.market_value(prices) / before
    Listing 8.3. A float-adjusted capitalisation-weighted index with divisor maintenance. code/markets-1/08-shares-corporate-actions-indices/python/corpact.py
  4. Break it. Replace the constituent without calling rebase: the level jumps from 981 to 1 320.

What to change next. Add a total-return version of the index: on each ex-date increase the level by the dividend’s index points. Then apply the ten-for-one split to a price-weighted version and compute the new divisor by hand.

8.7 Build: the corporate-action adjuster

Purpose. One service in the miniature firm answers “what is the adjusted price of this symbol on this date, as known on that date?”. Research, risk and the P&L keeper all call it; none of them stores adjusted prices.

Interface. Action(symbol, ex_date, kind, params, announced) with kind in split, cash_dividend, rights, spinoff; Adjuster.add(action); factor(symbol, date, as_of) returning the product of the factors of actions with date < ex_date <= as_of; adjust_position( position, action) for the keeper of Chapter 7.

Rules. Factors follow Method 8.11; the dividend convention is a constructor argument and is recorded in every output. An action is invisible to queries whose as_of precedes its announcement. A split multiplies a position’s quantity by kk and divides its average cost by kk, leaving cash untouched; a cash dividend posts qDqD to the ledger on the ex-date as a receivable.

Acceptance tests. code/firm/corpactions/tests/: continuity through a split; the as-of rule; position invariance (quantity times average cost unchanged by a split); the one-for-four rights example.

Stretch. Mergers: map a position in the target into cash or into shares of the acquirer and close the price series.

Sources and further reading

  • CNBC, “Nvidia announces 10-for-1 stock split”, 22 May 2024; Yahoo Finance, “Nvidia stock rises after 10-for-1 stock split”, 10 June 2024.
  • US Securities and Exchange Commission, Release 34-99881 (NYSE Arca rule change on ex-dividend dates under the one-day settlement cycle), 2024.
  • S&P Dow Jones Indices, Index Mathematics Methodology, April 2026; Dow Jones Averages Methodology, May 2026; How the Dow Works (education paper).
  • E. Elton and M. Gruber, “Marginal stockholder tax rates and the clientele effect”, Review of Economics and Statistics 52 (1970) — the classic study of the ex-date drop.

8.8 Exercises

Exercise 8.1 ★

A company has 800 million shares at $65 and a free float of 70%. Give its market capitalisation and its float-adjusted capitalisation.

Solution

Solution of Exercise 8.1.

$52 billion; float-adjusted $36.4 billion.

Exercise 8.2 ★

A stock closes at $240 before a 3-for-2 split. Give the theoretical opening price, the adjustment factor, and the new position of a holder of 500 shares.

Solution

Solution of Exercise 8.2.

Each share becomes 1.5 shares: opening price 240/1.5=$160240/1.5 = \$160, factor 2/32/3, position 750 shares (still worth $120 000).

Exercise 8.3 ★

A stock closes cum at $80.00 with a dividend of $1.20. Give the theoretical ex price, the adjustment factor, and the back-adjusted value of a price of $76.00 observed a month earlier.

Solution

Solution of Exercise 8.3.

Ex price $78.80; f=78.80/80.00=0.985f = 78.80/80.00 = 0.985; 76.00×0.985=$74.8676.00 \times 0.985 = \$74.86.

Exercise 8.4 ★★

A company at € 25 announces a 2-for-7 rights issue at € 16. Compute the TERP, the value of one right, the adjustment factor, and check that a holder of 700 shares who sells all the rights is as wealthy as before.

Solution

Solution of Exercise 8.4.

TERP=(7×25+2×16)/9=23.00\mathrm{TERP} = (7\times25 + 2\times16)/9 = 23.00; one right is worth 23−16=7.0023 - 16 = 7.00; f=0.92f = 0.92. A holder of 700 shares receives rights to 200 new shares, sells them for € 1 400, and holds 700×23=16 100700 \times 23 = 16\,100: € 17 500, as before.

Exercise 8.5 ★★

A price-weighted index of three stocks at $50, $120 and $330 has a divisor of 0.5. Give its level. The third stock splits 3-for-1: give the new divisor and the new weight of each stock.

Solution

Solution of Exercise 8.5.

Level 500/0.5=1 000500/0.5 = 1\,000. After the split the third price is 110 and the sum 280, so Δ′=280/1 000=0.28\Delta' = 280/1\,000 = 0.28. Weights go from 10%, 24%, 66% to 17.9%, 42.9%, 39.3%: the index is now a different portfolio, by a decision of the company’s board and not of the index provider.

Exercise 8.6 ★★

A stock closes cum at $50.00 with a dividend of $2.50 and closes on the ex-date at $48.45. Compute the ex-date return with the standard factor, the holder’s total return, and the difference. Check it against the formula of Proposition 8.12.

Solution

Solution of Exercise 8.6.

Standard factor: 48.45/47.50−1=+2.00%48.45/47.50 - 1 = +2.00\%. Total return: (48.45+2.50)/50−1=+1.90%(48.45 + 2.50)/50 - 1 = +1.90\%. Difference 0.10%, equal to εD/P=0.02×0.05\varepsilon D/P = 0.02 \times 0.05.

Exercise 8.7 ★★★

Coding. A capitalisation-weighted index has two stocks: X with 100 million shares at $20 and Y with 50 million at $60, floats of 1, and an initial level of 1 000. Using CapIndex: (a) give the divisor; (b) Y buys back 10 million shares at unchanged prices: give the new divisor; (c) prices then move to $22 and $57: give the level.

Solution

Solution of Exercise 8.7.

(a) Market value $5 billion, divisor 5 000 000. (b) Market value falls to 2.0+2.4=$4.42.0 + 2.4 = \$4.4 billion at unchanged prices: divisor 4 400 000, level still 1 000. (c) (100×22+40×57)/4.4=1 018.2(100\times22 + 40\times57)/4.4 = 1\,018.2.

Exercise 8.8 ★★★

Find the flaw. A researcher downloads today’s back-adjusted daily closes for 3 000 stocks over twenty years and tests the rule “buy stocks whose price is below $5”. The backtest is excellent. Identify two distinct ways in which the adjusted prices have contaminated the test.

Solution

Solution of Exercise 8.8.

First, the adjusted price of a stock twenty years ago is its raw price times every later factor: a stock that has since split many times shows an old adjusted price below $5 although it traded at $80 that day. The rule therefore selects, in the past, precisely the stocks that later rose enough to split: the future is in the filter. Second, a downloaded list of today’s 3 000 stocks contains only survivors; the low-priced stocks that went to zero are absent. Both errors flatter the rule; the test needs raw prices as of each date and a universe as of each date.

8.9 Problem: Maintaining an Index Through a Bad Week

Problem 8.1

Weekend problem — five days at an index provider

You maintain a float-adjusted capitalisation-weighted index of four stocks. On Friday’s close:

StockPriceShares (millions)Float
P40.005001.00
Q150.002000.80
R12.001 0000.50
S75.004000.90

The index closed at 2 500.00.

Part I — Friday.

  1. Compute each stock’s float-adjusted capitalisation and the index market value.
  2. Give the divisor.
  3. Give each stock’s weight.
  4. By how many index points does the index move if Q rises 1%?

Part II — Monday: a split and a dividend.

  1. Q splits 3-for-1 before the open. What happens to its price, its shares and the divisor?
  2. P goes ex a dividend of 1.00 and opens at its theoretical ex price; nothing else moves. Give the price index. Is the divisor adjusted?
  3. Give the level of the total return version of the index, which also closed Friday at 2 500.00.
  4. A fund tracking the price index received the dividend. Which index should it be compared with?

Part III — Wednesday: a rights issue. Prices are those of Monday’s open.

  1. R announces a 1-for-4 rights issue at 8.00, effective Wednesday. Give the TERP and R’s new share count.
  2. Treating the issue as fully subscribed, give R’s new float-adjusted capitalisation at the TERP and the new index market value.
  3. Give the new divisor.
  4. A tracking fund holds R at index weight. What must it do, in words, to stay in line?

Part IV — Friday: a replacement. Prices are unchanged since Wednesday.

  1. S is acquired for cash and leaves the index at 75.00. It is replaced by T: price 30.00, 600 million shares, float 0.75. Give the new market value and divisor.
  2. Give the new weights.
  3. A fund with $2 billion tracking the index must sell its S and buy T. How many dollars of each?
  4. T trades $150 million a day. Express the purchase in days of volume and estimate its cost with Method 2.6 for a daily volatility of 2%.
  5. Who is on the other side of that purchase, and when did they buy?
  6. The index provider announced the change five days earlier. Why not announce and implement on the same day?
  7. State the named result: the index divisor at the end of the week.
  8. In one sentence: what is the one thing a divisor adjustment must never do?
Solution

Solution of Problem 8.1.

1. P 20.0, Q 24.0, R 6.0, S 27.0: $77.0 billion. 2. 77×109/2 500=30 800 00077\times10^9/2\,500 = 30\,800\,000. 3. 26.0%, 31.2%, 7.8%, 35.1%. 4. 0.01×24×109/30.8×106=7.80.01 \times 24\times10^9/30.8\times10^6 = 7.8 points. 5. Price 50.00, shares 600 million; the capitalisation and hence the divisor are unchanged. 6. Market value falls by 500×1.00=$0.5500 \times 1.00 = \$0.5 billion: the index is 76.5×109/30.8×106=2 483.7776.5\times10^9/30.8\times10^6 = 2\,483.77, down 16.23 points. No adjustment: in a price index an ordinary dividend is a price move. 7. It adds the 16.23 points back: 2 500.00. 8. The total return index (net of withholding tax if the fund suffers it); against the price index the fund would appear to outperform by every dividend. 9. TERP=(4×12+8)/5=11.20\mathrm{TERP} = (4\times12 + 8)/5 = 11.20; 1 250 million shares. 10. 11.20×1 250×0.5=$7.011.20 \times 1\,250 \times 0.5 = \$7.0 billion; market value 76.5−6.0+7.0=$77.576.5 - 6.0 + 7.0 = \$77.5 billion. 11. Δ′=30.8×77.5/76.5=31 202 614\Delta' = 30.8 \times 77.5/76.5 = 31\,202\,614; the level stays 2 483.77. 12. R’s weight rises because the company is larger: the fund subscribes its rights (or sells some rights and buys shares to the same effect), investing new money in R financed by selling a little of everything else. 13. 77.5−27.0+13.5=$64.077.5 - 27.0 + 13.5 = \$64.0 billion; Δnew=31 202 614×64/77.5=25 767 320\Delta_{\text{new}} = 31\,202\,614 \times 64/77.5 = 25\,767\,320. 14. P 30.5%, Q 37.5%, R 10.9%, T 21.1%. 15. S is 27/77.5=34.8%27/77.5 = 34.8\% of the fund: it receives $697 million in cash from the acquirer and must invest it across the new index, of which $422 million in T; the remaining $275 million is spread over P, Q and R. 16. 422/150=2.8422/150 = 2.8 days of volume; cost 0.7×0.02×2.8=2.3%0.7\times0.02\times \sqrt{2.8} = 2.3\%, about $9.9 million — for one fund. 17. Traders who bought T when the change was announced, and arbitrageurs who buy during the week in order to sell at the effective close: the fund’s cost is their revenue (One Quant Book 8). 18. Trackers need time to arrange the trade, and an unannounced change would let the provider’s own leak be the only information: the delay trades a known cost (front-running) against fairness and orderly execution. Some providers use longer notice and staggered implementation to spread the impact. 19. 25 767 320. 20. Change the level of the index.

8.10 Interview questions

Interview question 8.1 ★ researcher, developer, trader

A stock’s price drops 50% overnight and the company’s value is unchanged. What happened, and what must your data pipeline do about it?

Solution

Solution of Interview question 8.1.

A 2-for-1 split (or a large special dividend or spin-off). The pipeline must ingest corporate actions from a reference source, keep raw prices and actions separately, serve back-adjusted series for return computation, and adjust open positions, open orders and reference prices at the same moment. A large overnight move with no action on file should raise an alert before it reaches a strategy.

What the interviewer is looking for: positions and orders, not only price history.

Interview question 8.2 ★ trader, researcher

By how much should a stock fall on its ex-dividend date? Why might it fall by less?

Solution

Solution of Interview question 8.2.

By the dividend, absent taxes and news, by no-arbitrage between the cum close and the ex open. By less when dividends are taxed more than capital gains for the marginal investor, and measured drops are also blurred by the overnight market move and by the tick size.

What the interviewer is looking for: the arbitrage argument, then the tax clientele effect.

Interview question 8.3 ★★ researcher, mle

When should you use raw prices and when adjusted prices? Give one bug caused by each wrong choice.

Solution

Solution of Interview question 8.3.

Raw for anything the exchange sees: limit prices, tick rules, fill simulation, fees. Adjusted for returns and indicators across ex-dates. Raw used for returns: a split appears as a −90%-90\% day and the risk model explodes. Adjusted used for orders or filters: a backtest “buys” at prices that never traded, or selects stocks using information from later splits.

What the interviewer is looking for: the look-ahead in adjusted prices.

Interview question 8.4 ★★ trader, researcher

Why does a stock split change the weights of a price-weighted index and not those of a capitalisation-weighted one?

Solution

Solution of Interview question 8.4.

A capitalisation weight is price times shares, which a split leaves unchanged. A price weight is the price alone, which the split divides; the divisor restores the level but cannot restore the weights.

What the interviewer is looking for: one sentence each; bonus for “the divisor fixes the level, not the composition”.

Interview question 8.5 ★★ developer

Design the storage of prices and corporate actions for a research database. What do you store, what do you compute on read, and why?

Solution

Solution of Interview question 8.5.

Store: raw prices and volumes as traded, immutable; corporate actions with ex-date, terms and announcement timestamp; identifier history. Compute on read: adjustment factors and adjusted series for a given as-of date, so that point-in-time queries are possible and a late correction to one action fixes every series at once. Never store adjusted prices as primary data: they go stale with each new action and hide the convention used.

What the interviewer is looking for: as-of queries and immutability.

Interview question 8.6 ★★★ trader, researcher

A company announces a 1-for-3 rights issue at a 40% discount. The shares fall 12% on the announcement. Is that “because of the dilution”?

Solution

Solution of Interview question 8.6.

No. The mechanical effect of a 1-for-3 issue at a 40% discount is a TERP 10% below the cum price, and it appears on the ex-date, with the holder compensated by the rights. A fall on the announcement is information: the company needs capital, perhaps urgently, and management chose to issue equity at this price; holders who cannot subscribe must sell rights into a market that knows it. A 12% fall on announcement is a loss of value; the later 10% ex-date drop is not.

What the interviewer is looking for: separating the announcement effect from the ex-rights adjustment.

Terms defined in this chapter

See all 2333 terms in the glossary