Skip to content
All library documents

Handling First-Minute Returns and Overnight Gaps in Intraday Data

Article Quant Q&A · Author: s5s

Summary

The document considers how to calculate returns from one-minute price bars when a trading session begins after a long market closure. The first observed price of a session and the prior session’s final price produce a return spanning far more than one minute, so treating it as an ordinary intraday observation can distort analyses that assume uniform sampling intervals.

Three practical choices are given: exclude the first return of each session, retain it in a separate dataset, or leave it in the main series while accepting the mismatch. Keeping these observations separately allows overnight gap volatility to be studied on its own. The example uses EUR/USD prices across a weekend closure, but it does not compare the choices empirically or prescribe one for all research goals. It also flags bid-ask bounce and sampling effects as concerns for volatility estimates from frequent price observations, pointing readers toward established work on volatility signature plots and high-frequency estimation.

Key ideas

  • The first return after a market closure spans a different interval from ordinary one-minute returns.
  • Researchers can exclude session-opening returns or analyze them separately to estimate gap volatility.
  • The appropriate treatment depends on whether the study concerns intraday variation or overnight moves.
  • Bid-ask bounce and frequent-sampling effects can complicate volatility estimation from minute prices.

Tags

Full text
# Working with 1 minute bar returns - do I throw out the first return of the day?


# Working with 1 minute bar returns - do I throw out the first return of the day?












I am doing some academic work and using 1 minute bar data. I am wondering if when calculating the return time series, do I need to throw out the first return of the day because it is the return calculated from first bar today and last bar yesterday? My reasoning is that this return is not calculated over 1 minute time frame. It makes sense to me to throw this return out as "atypical".

for example you can see the jump from 2017-01-06 to 2017-01-08 here (6th being Friday and 8th being Sunday - this is an FX market)

```
df = data_fx['EURUSD']
df[df.index >  '2017-01-06 21:55:00'].head()

date
2017-01-06 21:56:00    1.053315
2017-01-06 21:57:00    1.053320
2017-01-06 21:58:00    1.053455
2017-01-06 21:59:00    1.053380
2017-01-08 22:00:00    1.053050
2017-01-08 22:01:00    1.053040
Name: close, dtype: float64
```

## Answer by kurtosis (score 0, accepted)

https://quant.stackexchange.com/a/57075

You could ignore the problem, throw away returns for the first minute in each trading session, or you could keep those first-minute returns in a second dataset and analyze that to estimate the overnight gap volatility.

Also, since you are an academic and using minute bars, I'm sure you are aware of the issues with bid-ask bounce and volatility estimation for frequently-sampled prices. If not, look for work by Andersen on volatility signature plots as well as work by Aït-sahalia, Mykland, and Zhang plus Podolskij and Vetter.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.