% ============================================================================= % Author: Simon-Pierre Boucher % Contact: contact@spboucher.ai % ============================================================================= % ============================================================================ % Data and Variable Construction % ============================================================================ \section{Data and Variable Construction}\label{sec:data} \subsection{Data Sources} \paragraph{Options.} I use a comprehensive end-of-day options database containing 3,831,907,488 records covering 11,077 underlyings from January~4, 2010 to December~31, 2025 (4,025 trading days). Each record includes trade date, strike, expiry, call/put flag, bid/ask prices, bid/ask implied volatilities, open interest, volume, and the full Greek sensitivities ($\delta$, $\Gamma$, $\mathcal{V}$, $\Theta$, $\rho$). Data quality is high: 92--95\% of records contain valid Greeks. \paragraph{Intraday OHLCV.} I use 5-minute OHLCV data across six asset classes: 7,789 US equities (1.23B bars), 4,302 ETFs (301M bars), 125 indices, 131 futures, 78 FX pairs, and 74 cryptocurrencies. Total: approximately 11.5~billion intraday observations. \begin{table}[H] \centering \caption{Data coverage.} \label{tab:data} \begin{threeparttable} \begin{tabular}{@{}lrrrl@{}} \toprule Asset class & Symbols & Rows (millions) & Freq.\ & Period \\ \midrule \multicolumn{5}{@{}l}{\textit{Panel A: Options}} \\ Option contracts & 11,077 & 3,832 & Daily & 2010--2025 \\[6pt] \multicolumn{5}{@{}l}{\textit{Panel B: Intraday OHLCV}} \\ US equities & 7,789 & 1,225 & 5-min & 2000--2026 \\ ETFs & 4,302 & 301 & 5-min & 2000--2026 \\ Equity indices & 125 & 40 & 5-min & 2008--2026 \\ Futures & 131 & 73 & 5-min & 2008--2026 \\ FX & 78 & 83 & 5-min & 2010--2026 \\ Crypto & 74 & 39 & 5-min & 2013--2026 \\ \midrule \textbf{Total} & & \textbf{$\approx$11,500} & & \\ \bottomrule \end{tabular} \end{threeparttable} \end{table} \subsection{Sample Construction} The analysis sample consists of 69 underlyings with overlapping options and OHLCV coverage: 49 major US stocks, 17 ETFs, and 3 broad market indices (SPX, NDX, RUT). After merging option-derived features with realized volatility, the sample comprises \textbf{264,383 ticker-day observations} (January 2010--December 2025). \subsection{Variable Definitions} \subsubsection{Option-Implied Features} I construct ten daily features for each underlying from the raw option chain: \begin{table}[H] \centering \caption{Option-implied variables.} \label{tab:variables} \begin{threeparttable} \small \begin{tabular}{@{}lp{10cm}@{}} \toprule Variable & Definition \\ \midrule $IV_{ATM,30d}$ & Average mid-IV of calls with $|\delta - 0.5| < 0.10$, 20--40 DTE \\ $IV_{ATM,90d}$ & Same, 80--100 DTE \\ IV term slope & $IV_{ATM,90d} - IV_{ATM,30d}$ \\ Skew$_{25\delta}$ & $IV_{25\delta P,30d} - IV_{25\delta C,30d}$ \\ Implied skewness & $(IV_{10\delta P} - IV_{10\delta C})/IV_{ATM}$ \\ Implied kurtosis & $\overline{IV}_{wings} / IV_{ATM}$, with $0.03 < |\delta| < 0.15$ \\ PC vol.\ ratio & $\sum V^{put} / \sum V^{call}$ \\ PC OI ratio & $\sum OI^{put} / \sum OI^{call}$ \\ Net gamma exp.\ & $\sum \Gamma^{call} \cdot OI^{call} - \sum \Gamma^{put} \cdot OI^{put}$ \\ \bottomrule \end{tabular} \end{threeparttable} \end{table} \subsubsection{Realized Volatility Measures} Following \citet{andersen2003modeling}, daily realized variance is: \begin{equation}\label{eq:rv} RV_t = \sum_{i=1}^{N_t} r_{t,i}^{2}, \qquad r_{t,i} = \ln\!\bigl(P_{t,i}\,/\,P_{t,i-1}\bigr). \end{equation} I also compute the weekly and monthly rolling averages $RV_t^{(w)}$ and $RV_t^{(m)}$, as well as forward targets $RV_{t+1}$ (1-day) and $\sum_{j=1}^{5}RV_{t+j}$ (5-day). \subsection{Descriptive Statistics} Table~\ref{tab:desc_groups} presents summary statistics by asset group. \begin{table}[H] \centering \caption{Descriptive statistics by asset group.} \label{tab:desc_groups} \begin{threeparttable} \begin{tabular}{@{}ld{3.4}d{3.4}d{3.4}d{3.4}@{}} \toprule & \multicolumn{1}{c}{Stocks} & \multicolumn{1}{c}{ETFs} & \multicolumn{1}{c}{Indices} & \multicolumn{1}{c}{All} \\ \midrule $N$ (ticker-days) & 188093 & 64256 & 12034 & 264383 \\ $N$ tickers & 49 & 17 & 3 & 69 \\ Mean $IV_{ATM,30d}$ & 0.2664 & 0.1784 & 0.1823 & 0.2406 \\ Mean skew$_{25\delta}$ & 0.0361 & 0.0425 & 0.0562 & 0.0387 \\ Mean PC vol.\ ratio & 0.890 & 2.345 & 1.754 & 1.283 \\ Mean RV (daily) & 0.0005 & 0.0002 & 0.0001 & 0.0004 \\ Mean daily return (\%) & 0.054 & 0.035 & 0.047 & 0.049 \\ Std daily return (\%) & 1.90 & 1.25 & 1.29 & 1.74 \\ \bottomrule \end{tabular} \begin{tablenotes}[flushleft]\footnotesize \item \textit{Notes.} Sample period: January 2010--December 2025. $IV_{ATM}$ is the 30-day at-the-money call implied volatility. Skew is the 25-delta put minus 25-delta call IV. PC vol.\ ratio is total put volume divided by total call volume. RV is realized variance from 5-minute returns. \end{tablenotes} \end{threeparttable} \end{table} Stocks exhibit higher ATM implied volatility (26.6\%) and return volatility (1.90\% daily) than ETFs (17.8\%, 1.25\%) and indices (18.2\%, 1.29\%). The put-call volume ratio is notably higher for ETFs (2.35) and indices (1.75) than for stocks (0.89), consistent with institutional portfolio hedging. Table~\ref{tab:autocorr} reports the average autocorrelation structure. ATM implied volatility is highly persistent (lag-1: 0.959, lag-22: 0.538), while daily returns exhibit slight negative autocorrelation ($-0.062$). \begin{table}[H] \centering \caption{Average autocorrelation structure.} \label{tab:autocorr} \begin{threeparttable} \begin{tabular}{@{}ld{1.3}d{1.3}d{1.3}d{1.3}@{}} \toprule Variable & \multicolumn{1}{c}{Lag 1} & \multicolumn{1}{c}{Lag 5} & \multicolumn{1}{c}{Lag 10} & \multicolumn{1}{c}{Lag 22} \\ \midrule ATM IV (30d) & 0.959 & 0.861 & 0.753 & 0.538 \\ Skew (25$\delta$) & 0.832 & 0.711 & 0.593 & 0.416 \\ Realized variance & 0.320 & 0.211 & 0.139 & 0.057 \\ Daily return & -0.062 & -0.010 & -0.006 & -0.030 \\ PC vol.\ ratio & 0.299 & 0.218 & 0.172 & 0.118 \\ \bottomrule \end{tabular} \begin{tablenotes}[flushleft]\footnotesize \item \textit{Notes.} Cross-sectional average of within-ticker autocorrelations. \end{tablenotes} \end{threeparttable} \end{table}