Overnight and Intraday Returns of Stocks
Introduction
This project attempts to answer the following broad question: on average, how much do stocks gain or lose during the intraday session as compared to the overnight session?
Regular trading hours for listed stocks, as defined by the Securities and Exchange Commission (SEC), are from 9:30 a.m. to 4 p.m. ET. Any activity that takes place outside of regular trading hours, whether in the pre-market, after-hours or overnight periods, is generally referred to as extended-hours trading.
- Pre-market is 7 a.m. – 9:30 a.m. ET
- After-hours trading is from 4 a.m. – 8 p.m. ET
- Overnight hours for trading is from 8 p.m. - 4 a.m. ET
For ease of reference herein intraday will refer to 9:30 a.m. ET - 4:00 p.m. ET and overnight will refer to all hours outside that time from 4:00 p.m. ET to 9:30 a.m. ET. The total return can then be calculated as the sum or the intraday and overnight sessions.
Summary of Results
Data on 483 stocks from 1993 to 2024 was analyzed, a brief summary of the results is as follows:
- Overnight Returns Dominate Overnight returns accounted for the majority of each individual stock’s total return 69.2% of the time. On a cumulative daily basis, overnight returns totaledx 1,349,271% compared to intraday total returns of 15,594%.
- Relatively Large Intraday Moves Precede Large Overnight Returns Intraday returns of plus or minus 2-standard deviations result in intraday moves of around 1% on average. Regardless of the direction of the move overnight, intraday returns were positive on average.
- Relatively Large Overnight Returns Followed By Flat Intraday Action Stocks that had large overnight moves tended to return close to 0% intraday regardless of the direction of the prior overnight change.
- Trading Simulations Reflect Same Results Entering at the close of the day following a large positive or negative intraday move proved profitable using Z-Score and Percentile Rank Bins. After simulating an account making 100 trades 50,000 times, the average total return far exceeded the baseline randomized strategy. The results are set forth more fully below.
Background
This project was motivated by several different sources.
First, the article Buy the Close, Sell the Open Strategy Generates +1,100% Gains From 1993 caught my attention.
Several other sources referenced the same Bespoke chart that is mentioned in the article (and is re-created below) that shows the cumulative returns of the S&P 500 both intraday and overnight. In no uncertain terms, the overnight returns smoke the intraday returns.
Chart - SPY - Cumulative Return Comparison 1993 to 2024
From January 1, 1993 to December 31, 2024, SPY cumulatively returned 1,078.91% overnight compared with 13.55% intraday.
period | percent return |
---|---|
total | 12.3877 |
overnight | 10.7891 |
intraday | 0.1356 |
This “overnight effect” research got so popular in 2021 and 2022 that it spurred the launch of (at least) 2 ETFs to only trade after-hours. These ETFs shutdown in August 2023 after being opened about a year.The CEO cited “colossal bad luck”. The funds did suffer from bad timing - from June 1, 2022 to August 1, 2023, SPY had a cumulative return of -9.7% overnight compared with 23.8% intraday.
On issue that was perplexing was the use of cumulative return to compare the intraday and overnight sessions. Cumulative return measures the total return on an investment over a specific period, expressed as a percentage of the initial investment. For example, if you started with $100 and bought SPY at the close then sold at the open the following day, then repeated this every day from 1993 to 2024, you would have $1078. If you did the opposite - buy at the open and sell at the close - you would have $135. But what if you just bought the SPY in 1993 and walked away? You would have $1238, which is well ahead of of the overnight approach. Plus, you don’t have any of the associated transaction costs of buying and selling so often intraday.
Why not just buy and hold then? There is some value to the overnight approach regarding volatility. Compare the standard deviation of the daily returns of each of the 3 approaches:
overnight | intraday | total |
---|---|---|
0.006674 | 0.009576 | 0.011746 |
The total (buy and hold) approach had 76% more volatility than the overnight returns. The intraday had 43.8% more volatility on average.
For the remainder of this report, I will utilize intraday and overnight returns calculated on a daily basis rather than a cumulative basis.
SPY daily returns were grouped by year and then divided into their intraday and overnight portions. The blue line is the average overnight return and the black line is the average intraday return. Areas shaded in red are where the intraday return was greater than the overnight. Areas in green are years the overnight return exceeded the intraday.
Chart - SPY - Averge Daily Return (%) Comparison
Below is a table with a yearly breakdown for SPY showing the average intraday and overnight percent returns. The diff
column shows the difference between the 2 columns. A positive diff
means that the overnight returns were higher than the intraday returns. A negative diff
means that the overnight returns were lower than the intraday.
In 22 out of the 33 years (66.7%), average overnight returns where higher than the average intraday returns for SPY.
Table - SPY - Averge Daily Return (%) Comparison
year | daily pct (%) | intraday pct (%) | overnight pct (%) | diff |
---|---|---|---|---|
1993 | 0.0269 | -0.0181 | 0.0450 | 0.0631 |
1994 | -0.0066 | -0.0301 | 0.0237 | 0.0538 |
1995 | 0.1205 | 0.1010 | 0.0196 | -0.0814 |
1996 | 0.0755 | 0.0120 | 0.0642 | 0.0522 |
1997 | 0.1161 | 0.0066 | 0.1106 | 0.1040 |
1998 | 0.1048 | 0.0094 | 0.0959 | 0.0866 |
1999 | 0.0759 | -0.0701 | 0.1462 | 0.2163 |
2000 | -0.0335 | -0.1257 | 0.0919 | 0.2175 |
2001 | -0.0459 | 0.0176 | -0.0615 | -0.0791 |
2002 | -0.0889 | -0.0449 | -0.0440 | 0.0009 |
2003 | 0.0975 | 0.0759 | 0.0223 | -0.0537 |
2004 | 0.0353 | 0.0176 | 0.0178 | 0.0003 |
2005 | 0.0139 | -0.0384 | 0.0523 | 0.0907 |
2006 | 0.0533 | 0.0217 | 0.0316 | 0.0098 |
2007 | 0.0177 | -0.0336 | 0.0507 | 0.0843 |
2008 | -0.1571 | -0.1004 | -0.0582 | 0.0422 |
2009 | 0.0978 | 0.0726 | 0.0238 | -0.0488 |
2010 | 0.0543 | 0.0303 | 0.0237 | -0.0066 |
2011 | 0.0097 | -0.0066 | 0.0149 | 0.0214 |
2012 | 0.0538 | 0.0384 | 0.0156 | -0.0228 |
2013 | 0.1057 | 0.0596 | 0.0460 | -0.0136 |
2014 | 0.0450 | 0.0106 | 0.0344 | 0.0238 |
2015 | 0.0016 | -0.0015 | 0.0032 | 0.0046 |
2016 | 0.0400 | 0.0599 | -0.0200 | -0.0799 |
2017 | 0.0715 | 0.0227 | 0.0488 | 0.0260 |
2018 | -0.0203 | -0.0684 | 0.0484 | 0.1168 |
2019 | 0.1036 | 0.0541 | 0.0492 | -0.0050 |
2020 | 0.0816 | 0.0205 | 0.0585 | 0.0380 |
2021 | 0.0984 | 0.0380 | 0.0601 | 0.0221 |
2022 | -0.0746 | -0.0149 | -0.0597 | -0.0448 |
2023 | 0.0904 | 0.0727 | 0.0179 | -0.0548 |
2024 | 0.0881 | 0.0078 | 0.0804 | 0.0726 |
The final important bit of research relates to measuring the magnitude of the overnight and intraday returns and the effect on future returns. In other words, does a relatively big return overnight mean a big return intraday? Or vice versa?
The staff for the Federal Reserve Bank of New York wrote a report on the phenomena of “overnight drift”. Among other things, the authors researched the relationship between the size of the intraday return and subsequent effect on overnight returns. They found that a large positive overnight return usually followed a large intraday sell-off. But the reverse was not always true; when markets rallied intraday, the price reversal overnight was much more modest. As the authors concluded:
Market selloffs generate robust positive overnight reversals, while reversals following market rallies are much more modest
See also The Overnight Drift in U.S. Equity Returns - Liberty Street Economics - Link - DB for a good summary of the staff paper.
As noted in the Financial Times article:
Returns that are realized in the the overnight period can be used to predict both the subsequent intraday and overnight returns. Specifically, high (low) overnight returns are followed by strong (weak) returns in next day’s trading session which are then followed by a reversal in the next overnight session. Crucially, this overnight signal is sufficiently strong to overcome the high turnover and the associated transaction costs, and is robust with respect to the actual implementation lag we need to consider between determining the signal and the actual implementation.
Assuming this is true, the foregoing tests the idea that intraday and overnight periodic returns are a signal for the other. The signal (the percentage change in the given period) remains relative to the history of the individual stock itself. What is “high” for one stock might be relatively “low” for another. To measure returns relative to a stock’s recent history, I use Z-Score and Percentile Rank throughout the analysis.
Returns on a relative basis for a given stock can then be classified as follows:
- High positive intraday returns
- High positive overnight returns
- High negative intraday returns
- High negative overnight returns
High positive returns will be denoted with “Plus”, and highly negative moves will be denoted with a “Minus”.
For example, dividing positive intraday returns into twenty separate “bins” of percentiles and comparing the subsequent overnight return will be referred to as “Intraday - Bin Plus”. Z-score based on a 20-day SMA and SD is also used as a way to measure the relative positive or negative move during a given session. A negative move overnight is referenced as “Overnight - Z-Score Minus. The term included in the label will refer to the signal and the return is calculated on the session immediately following the signal.
Label | Signal | Return Calculation |
---|---|---|
Intraday - Z-Score/Bin Plus | Intraday 20-day Z-Score is Greater than 2.0/Percentile is 95% or Greater | Next Overnight Session |
Intraday - Z-Score/Bin Minus | Intraday 20-day Z-Score is Less than -2.0/Percentile is 5% or Less | Next Overnight Session |
Overnight - Z-Score/Bin Plus | Overnight 20-day Z-Score is Greater than 2.0/Percentile is 95% or Greater | Next Intraday Session |
Overnight - Z-Score/Bin Minus | Overnight 20-day Z-Score is Less than -2.0/Percentile is 5% or Less | Next Intraday Session |
For SPY, as the average intraday return increases, the overnight return decreases. For example, the highest percentile returns for SPY (95th plus percentile defined as those returns above 2.7% intraday) were followed by the largest negative returns overnight. As explored in this post more fully below, this is not the case for every symbol.
Chart and Table - SPY - INTRADAY Returns
The chart and table below show average intraday returns grouped into percentiles and the subsequent overnight return.
The diff
column is calculated by taking the overnight percentage minus the intraday percentage. For example, the 1st percentile (bottom 5%) of intraday returns average -2.295% and are followed by average overnight returns of 0.003%. The 20th percentile (above the 95th percentile) intrday return for SPY averaged 2.175% and was followed by an overnight return of -0.019%.
percentile | intraday pct (%) | overnight pct (%) | diff |
---|---|---|---|
1 | -2.295 | 0.003 | 2.299 |
2 | -1.274 | 0.016 | 1.290 |
3 | -0.912 | 0.099 | 1.011 |
4 | -0.658 | 0.051 | 0.709 |
5 | -0.485 | -0.004 | 0.481 |
6 | -0.353 | 0.017 | 0.370 |
7 | -0.240 | 0.044 | 0.283 |
8 | -0.147 | 0.051 | 0.198 |
9 | -0.066 | 0.040 | 0.106 |
10 | 0.006 | 0.089 | 0.083 |
11 | 0.081 | 0.016 | -0.065 |
12 | 0.155 | 0.052 | -0.104 |
13 | 0.233 | 0.063 | -0.170 |
14 | 0.316 | -0.017 | -0.333 |
15 | 0.411 | 0.000 | -0.411 |
16 | 0.525 | 0.022 | -0.503 |
17 | 0.669 | 0.002 | -0.667 |
18 | 0.852 | 0.099 | -0.753 |
19 | 1.141 | 0.035 | -1.106 |
20 | 2.175 | -0.019 | -2.194 |
Chart and Table - SPY - OVERNIGHT Returns
percentile | overnight pct (%) | intraday pct (%) | diff |
---|---|---|---|
1 | -1.630 | 0.050 | 1.680 |
2 | -0.735 | -0.045 | 0.689 |
3 | -0.497 | -0.009 | 0.488 |
4 | -0.356 | -0.001 | 0.355 |
5 | -0.260 | -0.010 | 0.250 |
6 | -0.184 | 0.011 | 0.195 |
7 | -0.121 | 0.033 | 0.154 |
8 | -0.065 | 0.057 | 0.122 |
9 | -0.015 | 0.027 | 0.042 |
10 | 0.028 | -0.042 | -0.071 |
11 | 0.075 | 0.020 | -0.055 |
12 | 0.123 | -0.026 | -0.149 |
13 | 0.173 | -0.016 | -0.189 |
14 | 0.227 | -0.019 | -0.246 |
15 | 0.285 | -0.004 | -0.289 |
16 | 0.357 | -0.030 | -0.386 |
17 | 0.444 | -0.050 | -0.494 |
18 | 0.561 | -0.039 | -0.600 |
19 | 0.767 | 0.017 | -0.750 |
20 | 1.491 | 0.199 | -1.292 |
Analysis Overview
The introduction above offers a short overview of the relevant research and a breakdown of the S&P 500 as represented by the SPY ETF. More resources are provided below in the Notes & Research section at the end.
The remainder of this report will measure and report on the Top 500 symbols by total option volume from 2014 to 2023. A complete copy of the csv file with all of the symbols mentioned can be downloaded here.
For each of the symbols, I will measure:
- Absolute Price Change The absolute change in stock price intraday and overnight.
- Total Periodic Return Percentage (grouped by
symbol
) - Bin Percent Returns Grouped by Percentile (n=20)
- Z-Score (using a 20-period SMA and 20-period SD)
In addition, a basic trading strategy will be analyzed using the measurements above and bench marked against:
- Random Entry and Exit
Data Overview
- Symbols The top 500 symbols by volume from CBOE Historical Options Data Download.
- Start Date January 1, 2014
- End Date December 31, 2024
- Provider daily stock data is available for download through the
tidyquant
package. Stock data is sourced through Yahoo Finance.
Absolute Price Change - Overnight vs Intraday
The table below summarizes the price change as an absolute value (not percentage) for the intraday and overnight sessions and compares each with the total point change from close to close.
For reference the relevant columns are defined as
diff
= ratio of the overnight change to the intraday change. Calculated as the overnight price change divided by the intraday price change.diff_on
= portion of the total change that the overnight change accounts for - calculated as the overnight change divide by the total changediff_id
= portion of the total change that the intraday change accounts for - calculated by the intraday change divided by the total changediff_abs
=abs()
value of the overnight point change divided by theabs()
value of the intraday point change.
Table - Top 20 Stocks - Ranked By diff_on
Below is a table showing the top 20 stocks ranked by intraday versus overnight diff
:
symbol | count | total_pts | on_pts | id_pts | diff | diff_on | diff_id | diff_abs | diff_on_abs | diff_id_abs |
---|---|---|---|---|---|---|---|---|---|---|
GOLD | 8056 | 0.27 | 183.18 | -183.09 | -1.00 | 672.22 | -671.91 | 1.00 | 672.22 | 671.91 |
IAG | 5403 | 0.38 | 54.55 | -54.34 | -1.00 | 143.55 | -143.00 | 1.00 | 143.55 | 143.00 |
AU | 6644 | 1.51 | 118.61 | -116.97 | -1.01 | 78.29 | -77.21 | 1.01 | 78.29 | 77.21 |
MOS | 8056 | 2.44 | 176.47 | -173.78 | -1.02 | 72.40 | -71.30 | 1.02 | 72.40 | 71.30 |
HST | 8056 | -0.54 | -34.13 | 33.81 | -1.01 | 63.54 | -62.94 | 1.01 | 63.54 | 62.94 |
LVS | 5044 | 4.14 | 203.33 | -194.53 | -1.05 | 49.11 | -46.99 | 1.05 | 49.11 | 46.99 |
F | 8056 | 1.85 | 86.10 | -84.12 | -1.02 | 46.52 | -45.44 | 1.02 | 46.52 | 45.44 |
C | 8056 | 29.93 | 1262.24 | -1232.52 | -1.02 | 42.18 | -41.18 | 1.02 | 42.18 | 41.18 |
CLF | 8056 | 4.83 | 182.55 | -177.67 | -1.03 | 37.79 | -36.78 | 1.03 | 37.79 | 36.78 |
EWZ | 6154 | 3.74 | 128.82 | -124.96 | -1.03 | 34.49 | -33.46 | 1.03 | 34.49 | 33.46 |
HR | 7955 | -2.69 | -87.14 | 84.45 | -1.03 | 32.39 | -31.39 | 1.03 | 32.39 | 31.39 |
EGO | 5522 | 7.10 | 226.19 | -219.54 | -1.03 | 31.86 | -30.92 | 1.03 | 31.86 | 30.92 |
NEM | 8056 | 4.60 | 131.58 | -127.08 | -1.04 | 28.60 | -27.63 | 1.04 | 28.60 | 27.63 |
DDD | 8056 | 2.15 | 53.37 | -51.27 | -1.04 | 24.76 | -23.79 | 1.04 | 24.76 | 23.79 |
AGIO | 2879 | 1.75 | 43.14 | -39.11 | -1.10 | 24.65 | -22.35 | 1.10 | 24.65 | 22.35 |
SSYS | 7600 | 7.21 | 130.50 | -123.42 | -1.06 | 18.09 | -17.11 | 1.06 | 18.09 | 17.11 |
XME | 4662 | 11.20 | 193.79 | -181.99 | -1.06 | 17.30 | -16.25 | 1.06 | 17.30 | 16.25 |
SPX | 6247 | -2.75 | -47.55 | 45.52 | -1.04 | 17.28 | -16.55 | 1.04 | 17.28 | 16.55 |
PBR | 6135 | 5.59 | 96.56 | -90.12 | -1.07 | 17.26 | -16.11 | 1.07 | 17.26 | 16.11 |
APA | 8056 | 14.41 | 232.21 | -217.85 | -1.07 | 16.11 | -15.12 | 1.07 | 16.11 | 15.12 |
Overall for the 483 stocks analyzed, the results were as follows:
- 60% of the time, the overnight return accounted for the majority (more than 50%) of the total return
- 80% of overnight returns were positive
- 40% of intraday returns were positive
measure | value |
---|---|
ON Returns - Majority | 0.607 |
ON Returns - Positive | 0.816 |
ID Returns - Majority | 0.393 |
ID Returns - Positive | 0.398 |
Table - Bottom 20 Stocks - Ranked By diff_on
Below is a table showing the bottom 20 stocks ranked by intraday versus overnight diff
:
symbol | count | total_pts | on_pts | id_pts | diff | diff_on | diff_id | diff_abs | diff_on_abs | diff_id_abs |
---|---|---|---|---|---|---|---|---|---|---|
CX | 6364 | -3.10 | 53.35 | -56.43 | -0.95 | -17.22 | 18.22 | 0.95 | 17.22 | 18.22 |
KNDI | 4361 | -2.85 | 56.35 | -59.30 | -0.95 | -19.77 | 20.81 | 0.95 | 19.77 | 20.81 |
ONVO | 3240 | -32.64 | 667.65 | -700.29 | -0.95 | -20.45 | 21.45 | 0.95 | 20.45 | 21.45 |
HL | 8056 | -2.64 | 58.00 | -60.64 | -0.96 | -21.97 | 22.97 | 0.96 | 21.97 | 22.97 |
BABA | 2587 | -9.76 | 258.28 | -266.85 | -0.97 | -26.46 | 27.34 | 0.97 | 26.46 | 27.34 |
RIG | 7954 | -12.15 | 338.48 | -350.54 | -0.97 | -27.85 | 28.84 | 0.97 | 27.85 | 28.84 |
SAN | 8056 | 1.46 | -47.18 | 48.61 | -0.97 | -32.41 | 33.39 | 0.97 | 32.41 | 33.39 |
CSIQ | 4564 | -4.40 | 172.68 | -176.97 | -0.98 | -39.25 | 40.22 | 0.98 | 39.25 | 40.22 |
FCEL | 8056 | -11870.68 | 467489.51 | -479540.19 | -0.97 | -39.38 | 40.40 | 0.97 | 39.38 | 40.40 |
NBR | 8056 | -108.25 | 4743.34 | -4851.59 | -0.98 | -43.82 | 44.82 | 0.98 | 43.82 | 44.82 |
GDX | 4684 | -3.46 | 170.10 | -172.85 | -0.98 | -49.16 | 49.96 | 0.98 | 49.16 | 49.96 |
HIMX | 4719 | -0.63 | 36.15 | -37.15 | -0.97 | -57.38 | 58.97 | 0.97 | 57.38 | 58.97 |
GERN | 7152 | -3.93 | 250.55 | -254.71 | -0.98 | -63.83 | 64.89 | 0.98 | 63.83 | 64.89 |
AAL | 4847 | -1.68 | 114.92 | -118.35 | -0.97 | -68.40 | 70.45 | 0.97 | 68.40 | 70.45 |
XOP | 4662 | -7.29 | 566.74 | -573.71 | -0.99 | -77.74 | 78.70 | 0.99 | 77.74 | 78.70 |
SIRI | 7628 | -23.45 | 2185.94 | -2208.14 | -0.99 | -93.22 | 94.16 | 0.99 | 93.22 | 94.16 |
SLCA | 3144 | -0.51 | 56.21 | -57.97 | -0.97 | -110.21 | 113.66 | 0.97 | 110.21 | 113.66 |
X | 8056 | -2.09 | 282.87 | -285.59 | -0.99 | -135.02 | 136.32 | 0.99 | 135.02 | 136.32 |
BLDP | 7335 | -2.08 | 327.92 | -330.00 | -0.99 | -157.65 | 158.65 | 0.99 | 157.65 | 158.65 |
FOSL | 7989 | 0.14 | -83.44 | 83.55 | -1.00 | -594.41 | 595.24 | 1.00 | 594.41 | 595.24 |
Total Percent Return Change - Overnight vs Intraday
The table below summarizes the price change as an relative percentage value for the intraday and overnight sessions and compares each with the total percentage change from close to close.
For reference the relevant columns are defined as:
diff
= ratio of the overnight percentage change to intraday percentage change calculated as the overnight percentage change divided by the intraday percentage changediff_on
= portion of the total percentage change that the overnight percentage change accounts for - calculated by the overnight percentage change divded by the total percentage changediff_id
= portion of the total percentage change that the intraday percentage change accounts for - calculated by the intraday percentage change divided by the total percentage change
Note that all number are returned as absolute values.
Table - Top 20 Stocks - Ranked By Ratio of Overnight to Intraday Percent Return - diff
symbol | count | tot_pct_total | on_pct_total | id_pct_total | diff | diff_on | diff_id |
---|---|---|---|---|---|---|---|
XLB | 6547 | 2.129 | 2.139 | -0.001 | 2272.159 | 1.005 | 0.000 |
AMGN | 8056 | 5.107 | 5.233 | -0.009 | 579.832 | 1.025 | 0.002 |
EOG | 8056 | 5.950 | 5.942 | 0.019 | 314.298 | 0.999 | 0.003 |
UAL | 4757 | 4.886 | 4.829 | -0.023 | 209.043 | 0.988 | 0.005 |
PHM | 8056 | 6.405 | 6.514 | -0.046 | 142.467 | 1.017 | 0.007 |
SPX | 6247 | 693.568 | 689.369 | 5.122 | 134.599 | 0.994 | 0.007 |
OEX | 4810 | 12556.042 | 12473.380 | 94.884 | 131.459 | 0.993 | 0.008 |
DHI | 8056 | 7.913 | 8.226 | 0.087 | 94.336 | 1.040 | 0.011 |
MTW | 8056 | 5.551 | 5.586 | -0.070 | 79.984 | 1.006 | 0.013 |
GLNG | 5403 | 4.709 | 4.746 | -0.067 | 70.457 | 1.008 | 0.014 |
TSM | 6850 | 6.026 | 6.024 | 0.088 | 68.710 | 1.000 | 0.015 |
TRIP | 3286 | 0.984 | 1.019 | 0.016 | 64.375 | 1.035 | 0.016 |
TRN | 8056 | 4.404 | 4.442 | -0.093 | 47.644 | 1.009 | 0.021 |
GLW | 8056 | 4.451 | 4.506 | -0.115 | 39.238 | 1.013 | 0.026 |
XLV | 6547 | 2.119 | 2.112 | 0.058 | 36.159 | 0.997 | 0.028 |
LYB | 3694 | 2.123 | 2.139 | -0.063 | 34.116 | 1.007 | 0.030 |
SU | 8056 | 40.515 | 41.341 | -1.219 | 33.910 | 1.020 | 0.030 |
INFN | 4422 | 2.201 | 2.113 | 0.070 | 30.064 | 0.960 | 0.032 |
WSBF | 4841 | 2.384 | 2.680 | 0.100 | 26.930 | 1.124 | 0.042 |
XRT | 4662 | 2.140 | 2.077 | 0.084 | 24.787 | 0.970 | 0.039 |
Overall for the 483 stocks analyzed, the results were as follows:
- in 69% of the stocks (334 of 483), the total overnight total return accounted for the majority (more than 50%) of the total close to close percent return
- in 84% of the stocks (408 of 483), the overnight percent returns were positive
- in 60% of the stocks (292 of 483), the intraday percent returns were positive
measure | value |
---|---|
ON Returns - Majority | 0.696 |
ON Returns - Positive | 0.849 |
ON Returns - Total (pct) | 15095.532 |
ID Returns - Majority | 0.304 |
ID Returns - Positive | 0.592 |
ID Returns - Total (pct) | 222.413 |
Table - Bottom 20 Stocks - Ranked By Ratio of Overnight to Intraday Percent Return - diff
symbol | count | tot_pct_total | on_pct_total | id_pct_total | diff | diff_on | diff_id |
---|---|---|---|---|---|---|---|
BKLN | 3480 | -0.152 | -0.002 | -0.148 | 0.010 | -0.010 | -0.976 |
IPG | 8056 | 3.108 | -0.044 | 3.344 | 0.013 | 0.014 | 1.076 |
COST | 8056 | 6.048 | -0.097 | 6.182 | 0.016 | 0.016 | 1.022 |
EXC | 8056 | 2.410 | 0.041 | 2.397 | 0.017 | 0.017 | 0.995 |
DRI | 7463 | 5.346 | -0.168 | 5.620 | 0.030 | 0.031 | 1.051 |
MRK | 8056 | 2.684 | -0.083 | 2.772 | 0.030 | 0.031 | 1.033 |
BRFS | 6085 | 3.931 | 0.116 | 3.826 | 0.030 | 0.030 | 0.973 |
MAT | 8056 | 2.386 | -0.101 | 2.629 | 0.038 | 0.042 | 1.102 |
XOM | 8056 | 2.960 | -0.118 | 3.063 | 0.039 | 0.040 | 1.035 |
NKE | 8056 | 4.992 | 0.187 | 4.836 | 0.039 | 0.037 | 0.969 |
MCD | 8056 | 4.038 | 0.177 | 3.918 | 0.045 | 0.044 | 0.970 |
AFL | 8056 | 5.666 | 0.249 | 5.400 | 0.046 | 0.044 | 0.953 |
WDAY | 3072 | 2.587 | 0.121 | 2.495 | 0.048 | 0.047 | 0.964 |
PNC | 8056 | 3.817 | 0.189 | 3.675 | 0.051 | 0.049 | 0.963 |
HTZ | 880 | -1.259 | 0.052 | -0.992 | 0.052 | -0.041 | -0.788 |
CLX | 8056 | 3.569 | 0.180 | 3.396 | 0.053 | 0.050 | 0.952 |
IBM | 8056 | 4.121 | 0.216 | 3.852 | 0.056 | 0.052 | 0.935 |
USB | 8056 | 4.173 | -0.274 | 4.577 | 0.060 | 0.066 | 1.097 |
IRM | 7277 | 5.019 | -0.366 | 5.532 | 0.066 | 0.073 | 1.102 |
PBI | 8056 | 1.846 | 0.129 | 1.612 | 0.080 | 0.070 | 0.873 |
Bin Percentile Returns
Next, the stocks were grouped by symbol and the overnight and intraday returns were divided into 20 equal width bins based on their relative percentile rank for each stock’s available price history. Twenty separate bins representing 5 percentile points for both the intraday return and the overnight returns were analyzed.
The goal of this exercise was to see if the current period return affected a later period return. For example, when a stock had an intraday return that was in the 1st (lowest) percentile, what was the average overnight return? Or when a stock had an overnight return that was in the 20th (highest) percentile, what was the average intraday return?
Overnight percentile rank was higher when the prior intraday returns were lowest. For example, when intraday returns ranked in the 1st percentile, overnight returns averaged 11.1.
Similarly, intraday returns that were lowest were generally followed by higher than average overnight returns.
Intraday Bins
The table and charts below show the results grouped by intraday bins. Overall, relatively high intraday returns were followed by relatively lower overnight returns, and low intraday returns were followed by higher overnight returns.
I compared the z-scores of overnight and intraday returns. For example, when intraday returns were at their highest (20th bin or greater than 95th percentile) the mean Z-score was 1.25 while the mean overnight return had a Z-score of 0.009 for a diff_z
(overnight z-score minus intraday z-score) of -1.24.
bin_id | count | id_mean | on_mean | id_tot_z | on_tot_z | diff | diff_z |
---|---|---|---|---|---|---|---|
1 | 149834 | -0.053 | 0.008 | -1.156 | 0.006 | 0.060 | 1.162 |
2 | 149819 | -0.029 | 0.006 | -0.631 | 0.003 | 0.035 | 0.634 |
3 | 149800 | -0.021 | 0.005 | -0.465 | 0.001 | 0.026 | 0.466 |
4 | 149784 | -0.016 | 0.005 | -0.360 | -0.001 | 0.021 | 0.358 |
5 | 149765 | -0.013 | 0.004 | -0.281 | -0.003 | 0.016 | 0.278 |
6 | 149753 | -0.010 | 0.003 | -0.217 | -0.005 | 0.013 | 0.213 |
7 | 149728 | -0.007 | 0.001 | -0.163 | -0.010 | 0.008 | 0.153 |
8 | 149706 | -0.005 | 0.011 | -0.113 | 0.013 | 0.016 | 0.127 |
9 | 149696 | -0.003 | 0.005 | -0.067 | -0.001 | 0.008 | 0.067 |
10 | 149681 | -0.001 | 0.003 | -0.023 | -0.006 | 0.003 | 0.017 |
11 | 149668 | 0.001 | 0.003 | 0.013 | -0.005 | 0.002 | -0.018 |
12 | 149649 | 0.003 | 0.007 | 0.054 | 0.004 | 0.004 | -0.050 |
13 | 149636 | 0.005 | 0.006 | 0.100 | 0.002 | 0.001 | -0.098 |
14 | 149624 | 0.007 | 0.002 | 0.150 | -0.008 | -0.005 | -0.158 |
15 | 149605 | 0.009 | 0.005 | 0.205 | 0.001 | -0.004 | -0.204 |
16 | 149592 | 0.012 | 0.005 | 0.269 | 0.000 | -0.007 | -0.270 |
17 | 149403 | 0.016 | 0.005 | 0.350 | 0.000 | -0.011 | -0.350 |
18 | 149388 | 0.021 | 0.005 | 0.458 | -0.001 | -0.016 | -0.459 |
19 | 149381 | 0.029 | 0.006 | 0.633 | 0.001 | -0.023 | -0.632 |
20 | 149366 | 0.057 | 0.009 | 1.253 | 0.009 | -0.049 | -1.245 |
Overnight Bins
The table and charts below show the results grouped by overnight bins.
bin_on | count | id_mean | on_mean | id_tot_z | on_tot_z | diff | diff_z |
---|---|---|---|---|---|---|---|
1 | 149811 | 0.004 | -0.036 | 0.085 | -0.100 | -0.040 | -0.184 |
2 | 149793 | 0.001 | -0.016 | 0.021 | -0.051 | -0.017 | -0.071 |
3 | 149777 | 0.000 | -0.011 | 0.008 | -0.039 | -0.012 | -0.047 |
4 | 149759 | 0.001 | -0.008 | 0.010 | -0.031 | -0.008 | -0.041 |
5 | 149747 | 0.000 | -0.006 | 0.001 | -0.026 | -0.006 | -0.026 |
6 | 149722 | 0.000 | -0.004 | -0.002 | -0.022 | -0.004 | -0.020 |
7 | 149701 | 0.000 | -0.003 | -0.008 | -0.019 | -0.002 | -0.010 |
8 | 149690 | 0.000 | -0.001 | -0.007 | -0.016 | -0.001 | -0.008 |
9 | 149676 | 0.000 | 0.000 | -0.008 | -0.013 | 0.000 | -0.005 |
10 | 149663 | 0.000 | 0.000 | -0.003 | -0.012 | 0.000 | -0.009 |
11 | 149644 | 0.000 | 0.001 | -0.005 | -0.011 | 0.001 | -0.006 |
12 | 149632 | 0.000 | 0.002 | -0.002 | -0.008 | 0.002 | -0.006 |
13 | 149620 | 0.000 | 0.003 | -0.001 | -0.006 | 0.003 | -0.004 |
14 | 149600 | 0.000 | 0.004 | -0.005 | -0.003 | 0.004 | 0.002 |
15 | 149587 | 0.000 | 0.005 | -0.005 | 0.000 | 0.005 | 0.005 |
16 | 149398 | 0.000 | 0.007 | -0.008 | 0.004 | 0.007 | 0.012 |
17 | 149383 | 0.000 | 0.010 | -0.008 | 0.011 | 0.010 | 0.019 |
18 | 149375 | 0.000 | 0.021 | -0.012 | 0.039 | 0.022 | 0.051 |
19 | 149360 | -0.001 | 0.043 | -0.018 | 0.091 | 0.044 | 0.109 |
20 | 149343 | -0.001 | 0.092 | -0.033 | 0.210 | 0.094 | 0.243 |
Z-Score
As a final step I looked at all symbols and how often the Z-Score was greater than 2.0 (“Z-Score Plus”) and how often the Z-score was less than -2.0 (“Z-Score Minus”). This analysis was applied to both intraday and overnight returns.
Note that both Plus and Minus designations refer to when the stock returns (either intraday or overnight returns) were more (Plus) or less (Minus) than 2 standard deviations above or below the 20 period simple moving average.
As noted in the table below:
- There were 74,443 times when the stocks had returns greater than 2 standard deviations (Z-Score Plus) where the average move was 5.70%. This was followed by an overnight move of 1.20%.
- There were 65,959 intraday returns that were Z-Score Minus. The average intraday move was -4.70% followed by an average overnight move of 1.0%.
- Overnight Z-Score Plus - big upside overnight moves that averaged 3.90% - were followed by a relatively flat to slightly negative intraday returns.
- Overnight Z-Score Minus - big downisde overnight moves that averaged -3.40% - were followed by a relatively flat to slightly positive intraday returns.
measurement | count | on_mean | id_mean | diff |
---|---|---|---|---|
Intraday - Z-Score Plus | 74498 | 0.011 | 0.057 | 0.046 |
Intraday - Z-Score Minus | 67322 | 0.010 | -0.047 | -0.057 |
Overnight - Z-Score Plus | 75438 | 0.082 | -0.001 | -0.083 |
Overnight - Z-Score Minus | 82929 | -0.034 | 0.003 | 0.037 |
Trading Simulation
The next section analyzes the trading simulation using the trends noted above.
For each dataset, the entry and exit is simulated 50,000 times. Then the average of the results are compared to the benchmark. For example, the Z-score plus simulation enters short at the daily open if the z-score for the overnight return is greater than 2. It then exits at the close of the day. Each entry and exit is a position, and one simulation consists of 100 unique (but random) positions across all available stocks. Each simulation is repeated 50,000 and compared against a random entry and exit benchmark (which is repeated 50,000 times).
- Number of Positions Per Simulation 100 random positions per simulation
- Number of Monte Carlo Simulations 50,000 simulations
- Measure Sum of profit/loss at end of 100 trades
- Benchmark Random entry and exit
Z-Score Plus
- Entry
- Overnight Z-Score Plus Enter at open of intraday session if z-score of prior overnight return is greater than +2.0.
- Intraday Z-Score Plus Enter at close of intraday session if z-score of intraday return is greater than +2.0.
- Exit Exit stock at close (ie the end of the intraday session) or at the open (ie at the end of the overnight session).
Below is the performance summary for the average plus z-score simulation compared with the benchmark.
measure | Overnight - Z-Score Plus | Intraday - Z-Score Plus | benchmark |
---|---|---|---|
Net Profit | -0.0886 | 1.1220 | 0.0043 |
Gross Profit | 1.1266 | 1.7450 | 0.7924 |
Gross Loss | -1.2152 | -0.6229 | -0.7881 |
Profit Factor | 0.9757 | 3.2532 | 1.0578 |
No. of Wins | 47.4482 | 46.4708 | 48.1027 |
No. of Losses | 49.9139 | 43.4263 | 48.2516 |
No. of Even Trades | 2.6379 | 10.0921 | 3.1989 |
Total Trades | 100.0000 | 99.9891 | 99.5532 |
Winning Percentage | 0.4872 | 0.5169 | 0.4992 |
Avg Trade Net Profit | -0.0007 | 0.0110 | 0.0001 |
Average Win | 0.0236 | 0.0369 | 0.0167 |
Average Loss | -0.0241 | -0.0138 | -0.0167 |
Ratio Win/Loss | 1.0049 | 2.9647 | 1.0382 |
Largest Win | 0.1628 | 1.2204 | 0.1051 |
Largest Loss | -0.1484 | -0.1630 | -0.0923 |
Z-Score Minus
The Z-score minus system enters long if the z-score is less than -2. The entries below are divided up between when the z-score was less than -2; overnight z-score minus and intraday z-score minus.
- Entry
- Overnight Z-Score Minus Long at open of intraday session if z-score of prior overnight return is less than -2.0.
- Intraday Z-Score Minus Long at close of intraday session if z-score of return is less than -2.0.
- Exit Exit long position at the close of the intraday session or open of intraday session.
Below is the performance summary for the average minus z-score simulation compared with the benchmark.
measure | Overnight - Z-Score Minus | Intraday - Z-Score Minus | benchmark |
---|---|---|---|
Net Profit | 0.2882 | 0.9669 | 0.0043 |
Gross Profit | 1.2539 | 1.5097 | 0.7924 |
Gross Loss | -0.9657 | -0.5428 | -0.7881 |
Profit Factor | 1.3763 | 3.2035 | 1.0578 |
No. of Wins | 52.3861 | 52.1084 | 48.1027 |
No. of Losses | 45.2446 | 40.4689 | 48.2516 |
No. of Even Trades | 2.3693 | 7.4209 | 3.1989 |
Total Trades | 100.0000 | 99.9982 | 99.5532 |
Winning Percentage | 0.5371 | 0.5629 | 0.4992 |
Avg Trade Net Profit | 0.0026 | 0.0090 | 0.0001 |
Average Win | 0.0238 | 0.0284 | 0.0167 |
Average Loss | -0.0214 | -0.0129 | -0.0167 |
Ratio Win/Loss | 1.1613 | 2.4247 | 1.0382 |
Largest Win | 0.1681 | 0.9706 | 0.1051 |
Largest Loss | -0.1280 | -0.1310 | -0.0923 |
Bin Plus
The Bin Plus system enters at the open/close if the stock return is in the 95th or greater percentile of overnight/intraday returns. The 95th percentile is determined based on the entire available trading history of the stock.
- Entry Short stock at open/close if the overnight/intraday return is in the 95th+ percentile
- Exit Exit short stock at close/open (ie the end/beginning of the intraday session)
measure | Overnight - Bin Plus | Intraday - Bin Plus | benchmark |
---|---|---|---|
Net Profit | -0.1414 | 0.8812 | 0.0043 |
Gross Profit | 1.3134 | 1.5941 | 0.7924 |
Gross Loss | -1.4548 | -0.7129 | -0.7881 |
Profit Factor | 0.9459 | 2.4367 | 1.0578 |
No. of Wins | 46.9182 | 46.8042 | 48.1027 |
No. of Losses | 50.1164 | 44.7699 | 48.2516 |
No. of Even Trades | 2.9654 | 8.4192 | 3.1989 |
Total Trades | 100.0000 | 99.9933 | 99.5532 |
Winning Percentage | 0.4833 | 0.5111 | 0.4992 |
Avg Trade Net Profit | -0.0013 | 0.0084 | 0.0001 |
Average Win | 0.0280 | 0.0341 | 0.0167 |
Average Loss | -0.0291 | -0.0156 | -0.0167 |
Ratio Win/Loss | 0.9900 | 2.2678 | 1.0382 |
Largest Win | 0.1793 | 0.9230 | 0.1051 |
Largest Loss | -0.1615 | -0.1243 | -0.0923 |
Bin Minus
The Bin Minus system enters long at the open/close if the stock is in the 5th or less percentile of overnight/intraday returns. The 5th percentile is determined based on the entire available trading history of the stock.
- Entry Long stock at open/close if the overnight/intraday return is below the 5th percentile
- Exit Exit long stock at close/open (ie the end or beginning of the intraday session)
measure | Overnight - Bin Minus | Intraday - Bin Minus | benchmark |
---|---|---|---|
Net Profit | 0.3852 | 0.7613 | 0.0043 |
Gross Profit | 1.5838 | 1.4544 | 0.7924 |
Gross Loss | -1.1986 | -0.6931 | -0.7881 |
Profit Factor | 1.3934 | 2.2882 | 1.0578 |
No. of Wins | 51.7103 | 52.1091 | 48.1027 |
No. of Losses | 45.0758 | 40.2808 | 48.2516 |
No. of Even Trades | 3.2140 | 7.6058 | 3.1989 |
Total Trades | 100.0000 | 99.9957 | 99.5532 |
Winning Percentage | 0.5346 | 0.5641 | 0.4992 |
Avg Trade Net Profit | 0.0038 | 0.0070 | 0.0001 |
Average Win | 0.0307 | 0.0282 | 0.0167 |
Average Loss | -0.0265 | -0.0173 | -0.0167 |
Ratio Win/Loss | 1.1872 | 1.7189 | 1.0382 |
Largest Win | 0.2067 | 0.6846 | 0.1051 |
Largest Loss | -0.1460 | -0.1194 | -0.0923 |
Daily - ALL Z-Score Plus
The next trading simulation is to examine by date where overnight and intraday returns have a Z-Score greater than 2.0. Then enter all stocks at the open/close and exit at close/open.
The table below shows the average number of stocks available per day that satisfy the Daily Z-Score Plus requirement.
measure | number of stocks |
---|---|
Overnight - Daily - Z-Score Plus | 9.71 |
Intraday - Daily - Z-Score Plus | 9.64 |
The simulation standards are as follows:
- Entry ALL stock(s) that qualify as follows
- Intraday At open if z-score of overnight return(s) is greater than 2.0
- Overnight At close if z-score of intraday return(s) is greater than 2.0
- Exit Exit ALL stock(s) at close (ie the end of the intraday session) or the open (ie the end of the overnight session)
measure | Overnight - Daily Z-Score Plus | Intraday - Daily Z-Score Plus | benchmark |
---|---|---|---|
Net Profit | -0.2056 | 0.9355 | 0.0043 |
Gross Profit | 0.7401 | 1.5060 | 0.7924 |
Gross Loss | -0.9457 | -0.5705 | -0.7881 |
Profit Factor | 0.8181 | 3.0359 | 1.0578 |
No. of Wins | 45.3270 | 50.4366 | 48.1027 |
No. of Losses | 54.1368 | 47.2861 | 48.2516 |
No. of Even Trades | 0.5362 | 2.2773 | 3.1989 |
Total Trades | 100.0000 | 100.0000 | 99.5532 |
Winning Percentage | 0.4549 | 0.5164 | 0.4992 |
Avg Trade Net Profit | -0.0013 | 0.0094 | 0.0001 |
Average Win | 0.0163 | 0.0301 | 0.0167 |
Average Loss | -0.0183 | -0.0122 | -0.0167 |
Ratio Win/Loss | 0.9587 | 2.7785 | 1.0382 |
Largest Win | 0.1146 | 0.9757 | 0.1051 |
Largest Loss | -0.1053 | -0.1456 | -0.0923 |
Daily - ALL Z-Score Minus
The next trading simulation is to examine by date where overnight and intraday returns have a Z-Score less than -2.0. Then enter all stocks at the open/close and exit at close/open.
The table below shows the average number of stocks available per day that satisfy the Daily Z-Score Minus requirement.
measure | number of stocks |
---|---|
Overnight - Daily - Z-Score Minus | 10.81 |
Intraday - Daily - Z-Score Minus | 9.21 |
The simulation standards are as follows:
- Entry ALL stock(s) that qualify as follows
- Intraday At open if z-score of overnight return(s) is less than -2.0
- Overnight At close if z-score of intraday return(s) is less than -2.0
- Exit Exit ALL stock(s) at close (ie the end of the intraday session) or the open (ie the end of the overnight session)
measure | Overnight - Daily Z-Score Minus | Intraday - Daily Z-Score Minus | benchmark |
---|---|---|---|
Net Profit | 0.3494 | 1.4627 | 0.0043 |
Gross Profit | 0.9786 | 1.8868 | 0.7924 |
Gross Loss | -0.6292 | -0.4240 | -0.7881 |
Profit Factor | 1.6475 | 5.3046 | 1.0578 |
No. of Wins | 55.7566 | 59.1766 | 48.1027 |
No. of Losses | 43.5806 | 37.8066 | 48.2516 |
No. of Even Trades | 0.6627 | 3.0168 | 3.1989 |
Total Trades | 100.0000 | 100.0000 | 99.5532 |
Winning Percentage | 0.5623 | 0.6104 | 0.4992 |
Avg Trade Net Profit | 0.0027 | 0.0138 | 0.0001 |
Average Win | 0.0182 | 0.0319 | 0.0167 |
Average Loss | -0.0137 | -0.0120 | -0.0167 |
Ratio Win/Loss | 1.2568 | 3.2881 | 1.0382 |
Largest Win | 0.1162 | 1.2499 | 0.1051 |
Largest Loss | -0.0831 | -0.1225 | -0.0923 |
Daily - Z-Score - 5-Max Plus
The next trading simulation is the same as the daily Z-score Plus shown above with the exception that entries are limited to 5 stocks rather than ALL of the stocks that have a z-score greater than 2.0. Examine - by date - which stocks have an overnight/intraday return with a Z-score greater than 2.0. Then enter a maximum of 5 stocks at the open/close and exit at close/open. If there are fewer than 5 stocks that satisfy the entry rule, then the system enters those stocks. If there are no stocks that satisfy the entry rule, then the system is flat.
measure | Overnight - Daily Z-Score 5-Max Plus | Intraday - Daily Z-Score 5-Max Plus | benchmark |
---|---|---|---|
Net Profit | -0.3019 | 1.5424 | 0.0043 |
Gross Profit | 0.8805 | 2.2010 | 0.7924 |
Gross Loss | -1.1824 | -0.6586 | -0.7881 |
Profit Factor | 0.7743 | 3.7502 | 1.0578 |
No. of Wins | 43.8802 | 49.8798 | 48.1027 |
No. of Losses | 55.5676 | 47.8337 | 48.2516 |
No. of Even Trades | 0.5521 | 2.2865 | 3.1989 |
Total Trades | 100.0000 | 100.0000 | 99.5532 |
Winning Percentage | 0.4403 | 0.5107 | 0.4992 |
Avg Trade Net Profit | -0.0026 | 0.0155 | 0.0001 |
Average Win | 0.0204 | 0.0438 | 0.0167 |
Average Loss | -0.0211 | -0.0135 | -0.0167 |
Ratio Win/Loss | 0.9627 | 3.5143 | 1.0382 |
Largest Win | 0.1291 | 1.5759 | 0.1051 |
Largest Loss | -0.1153 | -0.1556 | -0.0923 |
Daily - Z-Score - 5-Max Minus
The next trading simulation is the same as the daily Z-score Minus shown above with the exception that entries are limited to 5 stocks rather than ALL of the stocks that have a z-score less than -2.0. Examine - by date - which stocks have an overnight/intraday return with a Z-score less than -2.0. Then enter a maximum of 5 stocks at the open/close and exit at close/open. If there are fewer than 5 stocks that satisfy the entry rule, then the system enters those stocks. If there are no stocks that satisfy the entry rule, then the system is flat.
measure | Overnight - Daily Z-Score 5-Max Minus | Intraday - Daily Z-Score 5-Max Minus | benchmark |
---|---|---|---|
Net Profit | 0.2858 | 1.0386 | 0.0043 |
Gross Profit | 0.8898 | 1.4523 | 0.7924 |
Gross Loss | -0.6040 | -0.4138 | -0.7881 |
Profit Factor | 1.5629 | 4.1950 | 1.0578 |
No. of Wins | 54.5377 | 57.4522 | 48.1027 |
No. of Losses | 44.7826 | 39.5027 | 48.2516 |
No. of Even Trades | 0.6797 | 3.0451 | 3.1989 |
Total Trades | 100.0000 | 100.0000 | 99.5532 |
Winning Percentage | 0.5500 | 0.5929 | 0.4992 |
Avg Trade Net Profit | 0.0019 | 0.0095 | 0.0001 |
Average Win | 0.0165 | 0.0256 | 0.0167 |
Average Loss | -0.0125 | -0.0115 | -0.0167 |
Ratio Win/Loss | 1.2533 | 2.8073 | 1.0382 |
Largest Win | 0.1126 | 0.9276 | 0.1051 |
Largest Loss | -0.0825 | -0.1241 | -0.0923 |
Conclusion & Next Steps
Across the 483 stocks analyzed, overnight returns account for the majority of the total return. The effect on the market - and particularly retail traders - is not insignificant. As the authors of the paper “Night Moves: Is the Overnight Drift the Grandmother of All Market Anomalies?” note, there are three valid concerns inherent in the “overnight effect”:
- Because retail traders are not allowed to trade outside of market hours, they “are potentially missing out on billions of dollars of returns due to mistimed trades”
- The overnight effect might have implications for the long-term valuation of the entire equity market
- Assuming our findings and those of others who have studied the effect are correct, this is one of the most consistent, significant and overlooked anomalies in finance, which can contribute to our understanding of the limits of market efficiency.
Further research and next steps:
- Long-Short Trading System It would be interesting to test a long-short trading system where you are long overnight and short during the day.
- Reporting in Context Create an automated report that identifies potential entry opportunities based on the preceding overnight or intraday returns.
- Effect of 24-Hour Exchange Major stock exchanges are moving toward 24-hour exchanges. The NYSE announced plans to allow trading 22-hours per day from Monday through Friday. Some individual brokerages allow 24-hour trading. Crypto markets already trade 24-hours. Will the overnight affect go away when the trading world embraces around the clock trading? Time will tell.
Notes & Research
- Buy the Close, Sell the Open Strategy Generates +1,100% Gains From 1993 - Link - DB
- The curious case of rising stocks in the night-time - Link - DB
- Exploiting the wonderfully weird overnight drift of stocks - Link - DB
- 2 NightShares ETFs Close After Struggling to Gain Traction | etf.com - Link - DB
- The Overnight Drift in U.S. Equity Returns - Liberty Street Economics - Link - DB
- Extended-Hours Trading: Know the Risks | FINRA - Link - DB
Stocks
- Paying Attention: Overnight Returns and the Hidden Cost of Buying at the Open - Link - DB
- Statistical analysis of the overnight and daytime return - Link - DB
- Overnight returns, daytime reversals, and future stock returns - Link - DB
- Overnight returns of stock indexes: Evidence from ETFs and futures - Link - DB
- A tug of war: Overnight versus intraday expected returns - Link - DB
- Overnight stock returns and realized volatility - Link - DB
- The relative importance of overnight sentiment versus trading-hour sentiment in volatility forecasting - Link - DB
- VIX to S&P 500 Correlation Over the Weekend: Are Market Makers Using S&P 500 Weekend Returns to Price VIX on Monday Morning? - Link - DB
- Forecasting realized volatility: The role of implied volatility, leverage effect, overnight returns, and volatility of realized volatility - Link - DB
- Modeling the Stock Relation with Graph Network for Overnight Stock Movement Prediction - Link - DB
- Night Moves: Is the Overnight Drift the Grandmother of All Market Anomalies? - Link - DB