I have SPY tick data starting with January 22, 2020, and only round lot trades (no odd lots).
For the period between 2020-01-22 and 2021-01-22, the intraday return was actually negative. I am surprised myself at such a large difference.
| total_return | overnight_return | intraday_return |
|-------------:|-----------------:|----------------:|
| 1.157266 | 1.221520 | 0.946561 |
SELECT EXP(SUM(LN(r_open_prev_open))) AS total_return,
EXP(SUM(LN(r_open_prev_close))) AS overnight_return,
EXP(SUM(LN(r_close_open))) AS intraday_return
FROM (
SELECT symbol, datetime, open() AS open, close() AS close,
lag(open) AS prev_open, lag(close) AS prev_close,
open/prev_open AS r_open_prev_open, open/prev_close AS r_open_prev_close,
close/open AS r_close_open
FROM atsd_trade
WHERE symbol = 'SPY' AND exchange = 'NYSE'
AND datetime BETWEEN '2020-01-22' AND '2021-01-22'
AND date_format(time, 'HH:mm') BETWEEN '09:30' AND '16:00'
GROUP BY exchange, class, symbol, period(1 DAY)
ORDER BY exchange, class, symbol, datetime
)
WITH TIMEZONE = 'US/Eastern', WORKDAY_CALENDAR = 'nyse'
If aggregated by calendar month, the overnight returns look equally convincing.
| datetime | total_return | overnight_return | intraday_return |
|----------|-------------:|-----------------:|----------------:|
| 2020-02 | 0.882875 | 0.951986 | 0.957978 |
| 2020-03 | 0.907309 | 0.874644 | 1.004299 |
| 2020-04 | 1.114797 | 1.094290 | 1.029876 |
| 2020-05 | 1.032704 | 1.049549 | 0.998744 |
| 2020-06 | 1.012900 | 1.031547 | 0.983585 |
| 2020-07 | 1.056605 | 1.037498 | 1.018330 |
| 2020-08 | 1.084898 | 1.047615 | 1.023042 |
| 2020-09 | 0.959388 | 0.992556 | 0.962858 |
| 2020-10 | 0.968266 | 1.004340 | 0.972955 |
| 2020-11 | 1.115508 | 1.113467 | 0.995743 |
| 2020-12 | 1.024667 | 1.026078 | 1.005985 |
| 2021-01 | 1.010356 | 1.007456 | 0.982219 |