A stock closes at 210 on Monday and does a 3 for 1 split overnight, opening at 70 on Tuesday with no other news. A backtest reads unadjusted closes. What one day return does it compute, and what does that do to a 12 month momentum signal ranked cross sectionally?
A stock closes at 210 on Monday and does a 3 for 1 split overnight, opening at 70 on Tuesday with no other news. A backtest reads unadjusted closes. What one day return does it compute, and what does that do to a 12 month momentum signal ranked cross sectionally?
Approach: Compute the raw price ratio the backtest sees, then ask where a return of that size lands in a cross sectional ranking and for how many days it stays there.
-2/3. The backtest computes 70/210 - 1 = -0.6667, a 66.67% loss that never happened, because the holder now owns three shares at 70. The correct split adjustment divides every price before the event by 3, so Monday's close becomes 70 and the return is 0. In a cross sectional rank the damage is larger than one bad number. The fake loss sits inside the momentum lookback for a full 12 months, so the stock is ranked at the bottom of the universe every day for a year, and the strategy shorts it on momentum or buys it on reversal for a reason that is an accounting artefact. Dividends do the same at smaller scale, so a total return series adds the dividend back before computing the return. The safe design stores raw prices alongside an adjustment factor table keyed by symbol and effective date and applies the factors at read time, because a new corporate action restates all earlier history and a materialised adjusted column would have to be rewritten for that symbol on every event.
Follow-up: How do you make the adjustment factor table point in time so a backtest cannot see a split before it was announced?
Key concepts: split adjustment, adjustment factor, total return series, cross sectional rank.