SPB Git

spb/wp47_uqo

Public
7.3 KB · 70 lines markdown
1# Data dictionary (WP47)23Units: futures/ETF returns in **percent** (100 × log price change); factors and yields in **percentage points (pp)**; realized4variances in **pp²** per yield day (multiply by 1e4 for bp²); timestamps are tz-aware (`America/New_York` after conversion; stored5in UTC in Parquet). A "yield day" t runs from 15:30 ET on the previous FRED date to 15:30 ET on date t.67## `data/cache/contracts_1m/{ROOT}_{a}_{b}.parquet` (node only) — `01d_extract_contracts.py`8FinData export of `market_bars.futures_contracts.1m.raw` for every expiry of the root (`symbol_as_reported` = `ROOT_MYY`, e.g. `ZN_M22`); standard bar columns (`timestamp_utc`, `open`, `high`, `low`, `close`, `volume`, …). 18 files, 326 MB.910## `data/cache/returns_1m.parquet` (node only) — `03_returns.py`11| Column | Meaning |12|---|---|13| `ts` | bar open timestamp (UTC); the return accrues over [ts, ts+1 min] |14| `ZT, ZF, ZN, TN, US, UB` | one-minute close-to-close log return (%) of the session's most-traded contract, within a segment; NaN at segment breaks (gap > 5 min, 17:00–18:00 ET break, session change, bounce-filtered prints) or when no bar exists |15| `vol_<ROOT>` | bar volume (contracts) |16| `act_<ROOT>` | active flag: the contract has a bar within the previous 15 minutes (used by `06` to zero-fill missing minutes; inactive minutes are dropped from the cross-section) |17| `yday` | yield day the minute belongs to (date) |1819## `data/cache/returns_daily.parquet` — `03_returns.py`20`yday` (index) · `<ROOT>`: sum of minute returns within the yield day (%) · `n_<ROOT>`: number of non-missing minute returns · `nact_<ROOT>`: number of active minutes.2122## `data/cache/factors_1m.parquet` (node only) — `06_intraday_factors.py`23`ts` · `dL, dS, dC`: one-minute change in level, slope, curvature (pp), = Ŵ_q r_m with the quarter's OOS weights and no intercept;24NaN when any required contract is inactive (no trade in the previous 15 minutes) · `yday` · `n_roots`: number of contracts in Ŵ_q.2526## `data/cache/factors_daily_realized.parquet` (+ `results/metrics/factors_daily_realized.csv`) — `06_intraday_factors.py`27Index `yday`. For k ∈ {1, 5, 30} minutes: `RV_L_km, RV_S_km, RV_C_km` realized variance (pp²; sum of squared k-minute changes);28`cLS_km, cLC_km, cSC_km` realized covariances (pp²); `n_minutes` minutes with factors; `cum_dL, cum_dS, cum_dC` sum of minute29changes over the yield day (pp).3031## `data/cache/mimicking_oos_daily.parquet` — `04_mimicking.py`32`date` · `factor` ∈ {level, slope, curvature} · `actual` daily CMT factor change (pp) · `pred_oos` Ŵ r + intercept · `pred_oos_nocst`33Ŵ r (used for fidelity) · `quarter`. Variants: `mimicking_oos_daily_gsw.parquet`, `_sr3.parquet` (`04b`; columns `actual`, `pred`),34`mimicking_oos_daily_cmt2y.parquet` (`04c`).3536## `data/cache/har_preds_{L,S,C}_h{1,5,22}.parquet` — `08_har.py`37`date` forecast origin · `har`, `garch`, `roll22` forecasts of the cumulative h-day realized variance (bp², from 5-minute RV) ·38`y` realized value (bp²).3940## `results/metrics/events.csv` — `05_events_list.py`41`date` · `type` ∈ {FOMC, CPI, EMP} · `scheduled` (False for the four unscheduled FOMC actions) · `time` release time ET (rule-based42for FOMC; 08:30 for CPI/EMP) · `ts` tz-aware release timestamp.4344## `results/metrics/event_windows.csv` — `07_events.py`45One row per event with ≥ 80 % of the window minutes available. `regime` ∈ {2011_2015, 2016_2019, 2020_2021, 2022_2026} · `yday`.46`w_<c>` sum of minute changes over [−5, +25) minutes for c ∈ {dL, dS, dC, dSR (= dL + dS, short rate), dy3m, dy2, dy5, dy10, dy3047(implied yield changes from the NS loadings)} (pp) · `w15_<c>`, `w90_<c>` same over [−5, +15) and [−5, +90) for c ∈ {dL, dS, dC,48dSR, dy2, dy10} · `share_<c>` = w_c² / RV_c,1m of the yield day · `rvshare_<c>` = Σ (minute changes)² in the window / RV_c,1m ·49`pre24h_<c>`, `post24h_<c>` cumulative change from −24 h to −6 min and from +25 min to +24 h (pp), c ∈ {dL, dS, dC, dSR, dy10}.50`event_windows_placebo.csv`: `type`, `regime`, `w_<c>` for up to three matched non-event days per event (same clock time).5152## `results/metrics/*.json`53`daily_factors_summary.json` (fit RMSE, moments, λ̂), `returns_diagnostics.json` (per-contract bars, roll days, breaks, jumps),54`mimicking_weights_quarterly.json` (quarter, n_train, roots, weights incl. `const`, in-sample R²), `mimicking_fidelity.json`55(OOS R², slope, RMSE by period/year; six-root in-sample), `mimicking_fidelity_robustness.json` (GSW, CMT ≥ 1y, SR3),56`targets_and_spanning.json` (CMT ≥ 2y, cash ceiling, leave-one-out), `realized_correlations.json` (by period and sampling; FRED57daily; mean RV by sampling), `noise_benchmark.json`, `etf_crossval.json`, `event_summary.json` (per type × regime: n, SDs in bp,58SD ratios vs placebo with bootstrap CI, rvshare mean/CI/median, var_mix_LSC, var_dy_bp2, pre24h means), `event_paths.json`59(RMS cumulative change −60…+120 min), `har_forecasts.json` (QLIKE, MSE, log-R², DM statistics), `intraday_periodicity.csv`60(mean squared change by minute of day, bp² per minute, for all / non-event / event days and sub-periods).6162## `data/cache/lp_events.parquet` — `13_irf.py`63One row per scheduled event with a complete window and ≥ 10 subsequent yield days: `date`, `type`, `regime`, `shock_y2` (bp, implied 2-year change over [−5, +25)), `<v>_m<h>` cumulated change (bp) from −5 min to h ∈ {25, 60, 120, 240} min and `<v>_d<h>` to the end of yield day h ∈ {0, 1, 2, 5, 10} (pre-window part of day 0 removed), v ∈ {dL, dS, dC, dSR, dy2, dy10}.6465## `results/figdata/` (aggregates for figures; leave the node)66`sample_days.csv` (cumulative L/S/C/2y/10y in bp, minute by minute, four selected days) · `fidelity_by_year.csv` (OOS R² by year, CMT and GSW targets, 90 % day-resampling bands) · `event_paths_boot.csv` (RMS cumulative change −60…+120 min with 90 % event-bootstrap bands) · `event_heatmap_{FOMC,CPI,EMP}.csv` (rows = events, columns = minutes −30…+120, cumulative implied 2-year change in bp from −5 min) · `etf_fomc_pairs.csv` (FOMC-window L/S/C changes, ETF vs futures, bp) · `lp_irf.csv` (group, var, h, beta, lo, hi, se, n — local-projection coefficients) · `var_girf.csv` (regime, h, response, shock, cum, lo, hi — cumulative generalized IRFs in bp per one-SD shock) · `vol_connectedness_rolling.csv` (date, total, net_L, net_S, net_C — 250-day rolling Diebold–Yilmaz measures, %).6768## Additional `results/metrics/*.json`69`fidelity_cumulated_intraday.json` (R²/slope of daily CMT factor changes on the cumulated minute series: all days, ≥ 600 / < 600 minutes, by period; coverage shares) · `implied_yield_fidelity.json` (R² of implied Δy(τ) vs FRED CMT changes for 3m/1y/2y/5y/10y/30y; L+S vs 1-month bill; written by `12_text_macros.py`) · `irf.json` (`counts`: minutes/days with factors, SR3 median bars by year; `lp`: per type × regime and variable × horizon {beta, se_hc, ci, n, r2}; `var5m`: per regime lag order, n, residual SD/corr, FEVD, to/from/total connectedness, impact and 12-step cumulative GIRFs; `vol_connectedness`: FEVD, to/from/net/total, rolling summary) · `robustness_checks.json` (`rolling_3y_1530`, `expanding_1530`, `rolling_3y_1500`, `rolling_3y_1600` OOS R²; `rvshare_5m_denominator`; `fomc_time_check`). `returns_diagnostics.json` now reports `contracts_used`, `contract_switches` and `median_active_minutes_per_yday` instead of roll days.70
Files · main
Menu

Theme