révision scientifique complète (editorial board, 2026-10-17)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
51 changed files +3,646 −1,145
modified
README.md
+63 −46
@@ -1,16 +1,16 @@ | ||
| 1 | 1 | <!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca --> |
| 2 | 2 | # 🎯 Prediction Markets as Arrow–Debreu Securities: Evidence from Polymarket |
| 3 | 3 | |
| 4 | −**UQO Working Paper No. 8** — *Price Discovery, Market Completeness, and Information Aggregation in Blockchain-Based State-Contingent Claims* | |
| 4 | +**UQO Working Paper No. 8** — *State Prices, No-Arbitrage Bounds and Macroeconomic News in Blockchain-Based Contingent Claims* | |
| 5 | 5 | |
| 6 | −[-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) | |
| 6 | +[-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) | |
| 7 | 7 | [](pyproject.toml) |
| 8 | 8 | [](data/raw/README.md) |
| 9 | 9 | [](scripts/) |
| 10 | 10 | [](https://uqo.ca) |
| 11 | 11 | [](mailto:simon-pierre.boucher@uqo.ca) |
| 12 | 12 | |
| 13 | −> **TL;DR** — Polymarket binary contracts are modelled as Arrow–Debreu state-contingent claims. On the Fed June 2026 rate-decision neg-risk group (five mutually exclusive outcomes) and the 2024 U.S. Presidential Election markets, state prices sum to **1.02 on average** (146 obs., mean deviation 0.025) with no persistent arbitrage; prediction-market prices move **15–45 minutes ahead** of Treasury futures around FOMC and CPI releases; and Roll spreads / Amihud ratios of high-profile contracts rival those of established markets. Decentralized prediction markets behave as effective Arrow–Debreu economies. | |
| 13 | +> **TL;DR** — Polymarket negative-risk events list one binary contract per outcome and settle exactly one at \$1, so their prices are observable Arrow–Debreu state prices. On the five-outcome June 2026 FOMC market (146 daily closes) and the seventeen-contract 2024 presidential election market (304 daily closes), the complete set of claims is priced at **1.017** and **1.015** on average: a small positive overround of the order of the half-spreads of the low-priced legs, that shrinks towards resolution, reverts in two days and is bracketed by the bid- and ask-side sums of the order book (0.999 / 1.004). The time value of money would put the set *below* one, so the deviation is a last-price artefact, not an arbitrage. The implied risk-neutral expected policy change moves 2–5× more (in variance) on FOMC and employment-report days than on other days; weekend trading carries about one third of weekday variance. With calendars aligned and lag orders chosen by information criteria, there is **no** daily lead or lag between the Polymarket measure and the 10-year yield, S&P 500, VIX or Bitcoin. | |
| 14 | 14 | |
| 15 | 15 | --- |
| 16 | 16 | |
@@ -18,94 +18,109 @@ | ||
| 18 | 18 | |
| 19 | 19 | | Item | Value | |
| 20 | 20 | |---|---| |
| 21 | −| Version | 1.0 (May 2026) | | |
| 21 | +| Version | **1.1 (October 2026)** — revised 2026-10-17 after a full editorial-board review (see `docs/`) | | |
| 22 | +| Previous version | 1.0 (May 2026), preserved as git tag `pre-revision-20261017` and `docs/main_pre-revision-20261017.pdf` | | |
| 22 | 23 | | SSRN | not yet submitted | |
| 23 | −| Journal | — | | |
| 24 | −| Code & data | reproducible from `scripts/run_analysis.py` (public APIs; FRED key required) | | |
| 24 | +| Journal | — (target: Journal of Financial Markets / Journal of Prediction Markets; see `docs/REVIEW-REPORT.md`) | | |
| 25 | +| Code & data | reproducible offline from the raw snapshot with `scripts/02_revision_analysis.py` (≈ 1 min); raw download needs a FRED key | | |
| 25 | 26 | |
| 26 | 27 | ## 🎯 What this paper does |
| 27 | 28 | |
| 28 | −The paper asks whether blockchain prediction markets satisfy the textbook properties of complete Arrow–Debreu markets: (i) completeness and no-arbitrage — do state prices of mutually exclusive outcomes sum to the discount factor and stay positive? (ii) price discovery — do state prices incorporate macro news before conventional markets? (iii) microstructure quality — are these contracts liquid enough to be used as state-contingent claims? | |
| 29 | +The paper asks how the Arrow–Debreu pricing restrictions fare in a blockchain prediction market. Because spanning is built into the negative-risk contract design, the testable content is (i) the law of one price for the complete set of claims, whose *executable* no-arbitrage bounds are derived from the platform's minting and conversion mechanics, | |
| 29 | 30 | |
| 30 | 31 | ``` |
| 31 | −Σ_s π_s = 1/(1+r_f) (completeness) π_s > 0 ∀s (no arbitrage) | |
| 32 | +e^{-r_t τ_t} − c_t ≤ Σ_t = Σ_j p_{j,t} ≤ 1 + c_t | |
| 32 | 33 | ``` |
| 33 | 34 | |
| 34 | −Tests combine completeness and arbitrage-violation statistics, risk-neutral densities and moments, event studies around FOMC/CPI announcements, Hasbrouck information shares, VAR/Granger causality between Polymarket and Treasury futures, and GARCH/HAR-RV volatility models. | |
| 35 | +(ii) the behaviour of the risk-neutral distribution q_j = p_j / Σ and of its mean, the implied expected June 2026 policy change, around scheduled FOMC statements, CPI releases and employment reports, and (iii) daily lead–lag relations with the Treasury, equity, volatility and crypto markets. | |
| 35 | 36 | |
| 36 | 37 | ## 🏆 Headline results |
| 37 | 38 | |
| 38 | 39 | | Object | Estimate | |
| 39 | 40 | |---|---| |
| 40 | −| Mean sum of state prices (Fed neg-risk group) | 1.0205 (sd 0.053, n = 146) | | |
| 41 | −| Mean deviation from unity | 0.0248; max 0.570; all state prices positive | | |
| 42 | −| Lead of Polymarket over Treasury futures around FOMC/CPI | 15–45 minutes | | |
| 43 | −| Liquidity (Roll spread, Amihud) of high-profile contracts | comparable to established markets | | |
| 41 | +| Mean Σ, Fed group (5 claims, T = 146, listing day excluded) | 1.0167 (SD 0.0261; median 1.0093); HAC t of overround = 3.8 | | |
| 42 | +| Mean Σ, election group (17 claims, T = 304) | 1.0146 (SD 0.0313; median 1.0105) | | |
| 43 | +| Overround, first 30 days → last 30 days (Fed) | 5.1 pp → 0.4 pp; slope on time-to-resolution 0.11/yr (t = 4.9) | | |
| 44 | +| Half-life of Σ − 1 (Fed / election) | 2.1 days / 0.25 day | | |
| 45 | +| Order book 22 May 2026: Σ best bids / Σ best asks | 0.999 / 1.004 (no executable round trip) | | |
| 46 | +| Mean discounted lower bound e^{−rτ} (Fed) | 0.989 — the time value of money cannot explain Σ > 1 | | |
| 47 | +| ‖ΔE^Q[Δr]‖ on 13 release days vs 132 other days | 1.15 vs 0.51 bps; variance ratio 4.9 (Brown–Forsythe p = 0.008) | | |
| 48 | +| ‖Δp(No change)‖ release vs other days | 5.5 vs 1.4 pp; variance ratio 14.2 (p < 0.001); FOMC 30.4, employment 4.5, CPI 0.9 | | |
| 49 | +| Weekend / weekday variance ratio (non-release days) | 0.33 (expected change), 0.34 (modal state price) | | |
| 50 | +| Granger tests Polymarket ↔ TNX, SPY, VIX, BTC (VAR(1), 110 trading days) | all p > 0.18 in both directions | | |
| 51 | +| Contemporaneous correlation ΔE^Q[Δr] with Δ10-year yield | 0.26 | | |
| 44 | 52 | |
| 45 | 53 | ## 🗂 Repository layout |
| 46 | 54 | |
| 47 | 55 | ``` |
| 48 | 56 | polymarket-arrow-debreu/ |
| 49 | 57 | ├── data/ |
| 50 | −│ ├── raw/ # Polymarket / FRED / Yahoo snapshots (see data/raw/README.md) — not committed | |
| 51 | −│ └── processed/ # cleaned parquet panels (committed) | |
| 58 | +│ ├── raw/ # Polymarket / FRED / Yahoo snapshot (see data/raw/README.md) — not committed | |
| 59 | +│ └── processed/ # parquet panels regenerated by the scripts — not committed | |
| 52 | 60 | ├── src/ |
| 53 | 61 | │ ├── config.py # paths, API endpoints, market registry, event dates |
| 54 | 62 | │ ├── api/ # polymarket.py, fred.py, yahoo.py, runner.py |
| 55 | −│ ├── cleaning/ # polymarket_cleaner, macro_cleaner, yahoo_cleaner | |
| 63 | +│ ├── cleaning/ # polymarket_cleaner (close-of-day labelling), macro_cleaner, yahoo_cleaner | |
| 56 | 64 | │ ├── features/ # engineering.py, event_windows.py |
| 57 | 65 | │ ├── models/ # arrow_debreu, event_study, price_discovery, liquidity, volatility |
| 58 | −│ └── plots/ # figures.py, tables.py, style.py | |
| 66 | +│ └── plots/ # figures.py, tables.py, style.py (v1.0 outputs) | |
| 59 | 67 | ├── scripts/ |
| 60 | −│ └── run_analysis.py # master pipeline: data → cleaning → models → figures/tables | |
| 61 | −├── results/tables/ # table1…table8 (.tex fragments input by the paper) | |
| 68 | +│ ├── run_analysis.py # v1.0 pipeline: download → cleaning (→ v1.0 models/figures) | |
| 69 | +│ └── 02_revision_analysis.py # v1.1: all tables, figures and results/revision_stats.json (offline) | |
| 70 | +├── results/ | |
| 71 | +│ ├── tables/ # table1…table9 (.tex fragments input by the paper) | |
| 72 | +│ └── revision_stats.json # every number quoted in the paper | |
| 62 | 73 | ├── figures/ # fig1…fig12 (PDF/PNG) |
| 74 | +├── docs/ # REVIEW-REPORT.md, CHANGELOG-REVISION.md, main_pre-revision-20261017.pdf | |
| 63 | 75 | └── paper/ # main.tex + sections/ + appendix/ + references.bib → main.pdf |
| 64 | 76 | ``` |
| 65 | 77 | |
| 66 | 78 | ## 🚀 Quick start |
| 67 | 79 | |
| 68 | 80 | ```bash |
| 69 | −python3 -m pip install -e . # dependencies from pyproject.toml | |
| 70 | −cp .env.example .env # set FRED_API_KEY | |
| 71 | −python3 scripts/run_analysis.py # --skip-data / --skip-models / --skip-paper | |
| 72 | −cd paper && make # latexmk → main.pdf | |
| 81 | +python3 -m pip install -e . # dependencies from pyproject.toml | |
| 82 | +cp .env.example .env # set FRED_API_KEY (download only) | |
| 83 | +python3 scripts/run_analysis.py --skip-models --skip-paper # phase 1-2: download + clean (network) | |
| 84 | +python3 scripts/02_revision_analysis.py # all tables/figures of v1.1 from data/raw (offline, ≈ 1 min) | |
| 85 | +cd paper && make # latexmk → main.pdf | |
| 73 | 86 | ``` |
| 74 | 87 | |
| 75 | 88 | ## 🗃 Data |
| 76 | 89 | |
| 77 | −Minute-level price histories, order books and metadata for the Fed June 2026 rate-decision markets (event 101772, 5 outcomes), four closed Fed markets and the 2024 Presidential Election markets (Trump / Harris) from the Polymarket Gamma and CLOB APIs; fed funds rate, CPI and unemployment from FRED; Treasury futures and benchmarks from Yahoo Finance. Snapshot 2026-05-22. See `data/raw/README.md`. | |
| 90 | +Daily price histories (one point per calendar day, stamped 00:00 UTC of the following day and relabelled to the day they close), order-book snapshots and metadata for the Fed June 2026 negative-risk group (event 101772, 5 outcomes, \$37.8 M volume) and the 2024 Presidential Election Winner event (903193, 17 contracts, \$3.7 B volume) from the Polymarket Gamma and CLOB APIs; effective federal funds rate (DFF), CPI and unemployment from FRED; SPY, ^VIX, ^TNX, BTC-USD from Yahoo Finance. Snapshot 2026-05-22. No intraday data, no Treasury futures, no daily Polymarket volume. See `data/raw/README.md`. | |
| 78 | 91 | |
| 79 | 92 | ## 🔬 Methodology |
| 80 | 93 | |
| 81 | −1. **Completeness & no-arbitrage** — sum of state prices, positivity, implied discount factor, arbitrage-violation detection (`src/models/arrow_debreu.py`). | |
| 82 | −2. **Risk-neutral density & moments** extracted from the neg-risk group. | |
| 83 | −3. **Event studies** around FOMC and CPI releases with cumulative abnormal state-price responses (`event_study.py`). | |
| 84 | −4. **Price discovery** — Hasbrouck information shares, VAR and Granger causality vs Treasury futures (`price_discovery.py`). | |
| 85 | −5. **Liquidity** — Roll spreads, Amihud illiquidity (`liquidity.py`). | |
| 86 | −6. **Volatility** — realized measures, GARCH and HAR-RV (`volatility.py`). | |
| 94 | +1. **Pricing of the complete set** — Σ_t, HAC test of the overround, shares within ±0.5/1/2/5 pp, executable bounds with e^{−rτ} from DFF, AR(1)/half-life, ADF, term-structure regression on time to resolution; order-book bid/ask sums and depth (`02_revision_analysis.py`, Tables 3–4, Figs 2, 3, 8). | |
| 95 | +2. **Risk-neutral distribution** — q_j = p_j/Σ, E^Q[Δr] and SD^Q with states valued at (−50, −25, 0, 25, 50) bps (Figs 4–5). | |
| 96 | +3. **Announcement-day analysis** — day-0 and cumulative changes for each of the 13 releases; release vs other days by variance ratio, Brown–Forsythe and one-sided Mann–Whitney; weekend vs weekday (Table 5, Fig 6). | |
| 97 | +4. **Lead–lag** — bivariate Granger tests and five-variable VAR(1) on the U.S. trading-day grid, lag order by AIC/BIC/HQIC on the system, HAC Wald tests, fixed-lag sensitivity (Tables 6–7, Fig 7). | |
| 98 | +5. **Volatility (appendix)** — ARCH-LM, GARCH/GJR with normal and Student-t innovations (QML), HAR on |r| and r² (Tables 8–9, Fig 10). | |
| 87 | 99 | |
| 88 | 100 | ## 🖼 Figures & tables inventory |
| 89 | 101 | |
| 90 | 102 | | Figure | Content | |
| 91 | 103 | |---|---| |
| 92 | −| `fig1_state_prices` | state-price dynamics, Fed June 2026 group | | |
| 93 | −| `fig2_completeness_test` | sum of state prices over time | | |
| 94 | −| `fig3_risk_neutral_density` | implied risk-neutral density | | |
| 95 | −| `fig5_event_study_cars` | cumulative abnormal responses around FOMC/CPI | | |
| 96 | −| `fig7_granger_heatmap` | Granger-causality matrix | | |
| 97 | −| `fig9_volatility` | realized volatility measures | | |
| 98 | −| `fig10_liquidity` | Roll spread and Amihud ratios | | |
| 99 | −| `fig11_election_case_study` | 2024 election markets | | |
| 100 | −| `fig12_arbitrage_violations` | arbitrage-violation episodes | | |
| 101 | − | |
| 102 | −Tables (`results/tables/`): descriptive statistics, summary statistics, completeness tests, event study, Granger, VAR, GARCH, HAR-RV. | |
| 104 | +| `fig1_state_prices` | five state prices, FOMC days marked | | |
| 105 | +| `fig2_completeness_test` | Σ_t with discounted lower bound and upper bound 1 | | |
| 106 | +| `fig3_risk_neutral_density` | q_j at five dates | | |
| 107 | +| `fig4_expected_policy_change` | E^Q[Δr] path and daily changes, release days marked | | |
| 108 | +| `fig5_event_study_cars` | distributions of absolute changes by day type | | |
| 109 | +| `fig7_granger_heatmap` | Granger p-values, VAR(1), five variables | | |
| 110 | +| `fig9_volatility` | returns and GARCH/GJR conditional SD (appendix) | | |
| 111 | +| `fig10_liquidity` | Roll spread estimates; order-book depth curves | | |
| 112 | +| `fig11_election_case_study` | 2024 election claims and Σ over 17 contracts | | |
| 113 | +| `fig12_arbitrage_violations` | distribution of Σ − 1, both groups | | |
| 114 | + | |
| 115 | +Tables (`results/tables/`): markets analysed (1), summary statistics (2), law-of-one-price tests (3), order-book snapshot (9 → Table 4 in the paper), releases (4 → Table 5), Granger (5 → 6), VAR(1) (6 → 7), GARCH (7 → 8), HAR (8 → 9). | |
| 103 | 116 | |
| 104 | 117 | ## ⚠️ Limitations |
| 105 | 118 | |
| 106 | −- Two event families (one Fed neg-risk group, one election) — a small set of high-profile markets. | |
| 107 | −- Polymarket order-book snapshots are point-in-time; depth over the full sample is not observed. | |
| 108 | −- Price-discovery leads are measured at the minute frequency on days with scheduled announcements only. | |
| 119 | +- Two negative-risk groups at daily frequency; 13 scheduled releases and 110 common trading days limit the power of the announcement and lead–lag tests. | |
| 120 | +- Pricing tests use recorded daily prices (last trade/midpoint), not executable quotes; only one order-book snapshot is available. | |
| 121 | +- A residual 3–4 hour window separates the Polymarket close (00:00 UTC) from the U.S. cash close. | |
| 122 | +- Normalised prices are risk-neutral, not physical, probabilities; no futures/OIS benchmark was collected. | |
| 123 | +- Volatility models are fragile (no ARCH effects by the LM test; boundary estimates). | |
| 109 | 124 | |
| 110 | 125 | ## 📝 Citation |
| 111 | 126 | |
@@ -117,7 +132,8 @@ Tables (`results/tables/`): descriptive statistics, summary statistics, complete | ||
| 117 | 132 | type = {Working Paper}, |
| 118 | 133 | number = {8}, |
| 119 | 134 | year = {2026}, |
| 120 | − month = {May} | |
| 135 | + month = {October}, | |
| 136 | + note = {Version 1.1} | |
| 121 | 137 | } |
| 122 | 138 | ``` |
| 123 | 139 | |
@@ -129,4 +145,5 @@ Université du Québec en Outaouais (UQO), Gatineau, QC. | ||
| 129 | 145 | |
| 130 | 146 | ## 🗒 Notes |
| 131 | 147 | |
| 132 | −- Harmonisation 2026-10-17: `tables/` moved to `results/tables/` (paths updated in `src/config.py` and the paper), `run_analysis.py` moved to `scripts/`, empty `logs/`/`notebooks/` removed; `fig5_event_study_cars` is included as PNG (the PDF export was missing). | |
| 148 | +- **Revision 2026-10-17 (v1.0 → v1.1)**: complete scientific review by the editorial board. Report: `docs/REVIEW-REPORT.md`; audit trail of every corrected statement and number: `docs/CHANGELOG-REVISION.md`. Main corrections: Polymarket daily points relabelled to the day they close (the v1.0 panel was one day late); listing-day seeded quotes excluded (v1.0's "max deviation 0.57"); v1.0 Granger results (min-p lag search + misalignment) do not survive; v1.0 abstract claims (Hasbrouck shares, Treasury futures, 15–45 min lead, Amihud) were never computed and are withdrawn; election "post-resolution convergence to 0.58" was a misreading (sample ends on election evening); robustness analyses that were not executed were removed. Paper reduced from 58 to 44 pages. | |
| 149 | +- Harmonisation 2026-10-17: `tables/` moved to `results/tables/`, `run_analysis.py` moved to `scripts/`, empty `logs/`/`notebooks/` removed. | |
modified
data/raw/README.md
+7 −5
@@ -1,11 +1,13 @@ | ||
| 1 | 1 | # Raw data — WP 8 |
| 2 | 2 | |
| 3 | −Downloaded by `scripts/run_analysis.py` (phase 1, `src/api/runner.py`); ≈ 2 MB, **not committed** (reproducible from the public APIs, snapshot taken 2026-05-22). | |
| 3 | +Downloaded by `scripts/run_analysis.py` (phase 1, `src/api/runner.py`); ≈ 2 MB, **not committed** (reproducible from the public APIs; snapshot taken 2026-05-22, 08:51 UTC). | |
| 4 | 4 | |
| 5 | 5 | | Directory | Source | Content | |
| 6 | 6 | |---|---|---| |
| 7 | −| `polymarket/` | Polymarket Gamma API (`https://gamma-api.polymarket.com`) and CLOB API (`https://clob.polymarket.com`) | market metadata (`market_<id>.json`, `discovered_markets.json`), minute-level price histories (`price_history_<token>.json`) and order-book snapshots (`order_book_<token>.json`) for the Fed June 2026 rate-decision neg-risk group (5 outcomes), closed Fed markets and the 2024 U.S. Presidential Election markets (Trump / Harris) — IDs in `src/config.py` | | |
| 8 | −| `fred/` | FRED (`fredapi`, key in `.env` as `FRED_API_KEY`) | `fed_funds_rate.csv`, `cpi.csv`, `unemployment.csv` | | |
| 9 | −| `yahoo/` | Yahoo Finance (`yfinance`) | Treasury futures and benchmark price series for the price-discovery tests | | |
| 7 | +| `polymarket/` | Polymarket Gamma API (`https://gamma-api.polymarket.com`) and CLOB API (`https://clob.polymarket.com`) | event metadata (`event_101772.json` = "Fed decision in June?", 5 outcomes; `event_903193.json` = "Presidential Election Winner 2024", 17 contracts), market metadata (`market_<id>.json`, `discovered_markets.json`), **daily** price histories (`price_history_<token16>.json`, one point per calendar day stamped 00:00 UTC of the following day; 10 Dec 2025 – 22 May 2026 for the Fed group, 4 Jan – 6 Nov 2024 for the election group) and order-book snapshots for the five active Fed contracts (`order_book_<token16>.json`) | | |
| 8 | +| `fred/` | FRED (`fredapi`, key in `.env` as `FRED_API_KEY`) | `fed_funds_rate.csv` (DFF, daily), `cpi.csv` (CPIAUCSL), `unemployment.csv` (UNRATE) | | |
| 9 | +| `yahoo/` | Yahoo Finance (`yfinance`) | daily OHLCV for SPY, ^VIX, ^TNX (CBOE 10-year yield index), BTC-USD, ETH-USD, 2024-01-01 – 2026-05-21 | | |
| 10 | 10 | |
| 11 | −Cleaned panels are written to `data/processed/` (`fed_june2026_panel.parquet`, `fed_june2026_state_prices.parquet`, `election_2024_panel.parquet`, `financial_data.parquet`, `fred_data.parquet`, `macro_events.parquet`), which are committed. | |
| 11 | +Notes (revision 2026-10-17): the histories are daily, not minute-level; no Treasury futures and no daily Polymarket volume are included. The daily point must be labelled by the UTC day it closes (see `scripts/02_revision_analysis.py`, `load_history`). | |
| 12 | + | |
| 13 | +Cleaned panels are written to `data/processed/` by `scripts/run_analysis.py --skip-models --skip-paper` (`fed_june2026_state_prices.parquet`, `fed_june2026_panel.parquet`, `election_2024_panel.parquet`, `financial_data.parquet`, `fred_data.parquet`, `macro_events.parquet`) and by `scripts/02_revision_analysis.py` (`*_aligned.parquet`, `trading_day_panel.parquet`). They are **not committed** (`.gitignore`) and are regenerated from the raw files. | |
added
docs/CHANGELOG-REVISION.md
+58 −0
@@ -0,0 +1,58 @@ | ||
| 1 | +# CHANGELOG — révision scientifique complète (editorial board, 2026-10-17) | |
| 2 | + | |
| 3 | +WP 8 — *Prediction Markets as Arrow–Debreu Securities: Evidence from Polymarket*. Version 1.0 (May 2026, 58 p.) → **1.1 (October 2026, 44 p.)**. | |
| 4 | +État avant révision : tag git `pre-revision-20261017`, `docs/main_pre-revision-20261017.pdf`. Toute statistique nouvelle provient de `scripts/02_revision_analysis.py` (sortie `results/revision_stats.json`, tables `results/tables/*.tex`, figures `figures/`), exécuté hors ligne sur `data/raw/` (≈ 1 min). | |
| 5 | + | |
| 6 | +## 1. Corrections majeures (où / avant / après / pourquoi / preuve) | |
| 7 | + | |
| 8 | +| # | Où | Avant (v1.0) | Après (v1.1) | Pourquoi | Preuve | | |
| 9 | +|---|---|---|---|---|---| | |
| 10 | +| 1 | Données, toutes analyses | Les points quotidiens de `prices-history` (horodatés 00:00 UTC du jour t+1) étaient étiquetés jour t+1. | Étiquetés jour t (le jour UTC qu'ils clôturent) ; `src/cleaning/polymarket_cleaner.py` et `02_revision_analysis.load_history`. | La clôture Polymarket du jour t est observée ~3–4 h après la clôture US du jour t ; l'ancien étiquetage décalait d'un jour toutes les comparaisons avec SPY/VIX/TNX/BTC et avec les dates d'annonce (le FOMC de 14 h ET tombait au « jour −1 »). | Horodatages bruts : `2025-12-11 00:00:17 UTC`, pas médian 86 401 s (`data/raw/polymarket/price_history_*.json`). | | |
| 11 | +| 2 | Tableau 3 (complétude) | Moyenne Σ = 1,0205, écart-type 0,0527, « max absolute deviation » 0,5700, 146 obs. | Moyenne **1,0167**, ÉT **0,0261**, médiane 1,0093, max 1,108, T = 146 (jour de cotation initiale exclu). Avec le jour initial : 1,0204 / 0,0525 / 0,570 (= v1.0). | Le 10 déc. 2025 (création du marché, 21:45 UTC) porte des cotes amorcées (0,15/0,50/0,575/0,25/0,095, Σ = 1,57) avant toute transaction : artefact, pas une violation d'arbitrage. | `revision_stats.json → completeness.fed / fed_incl_listing`. | | |
| 12 | +| 3 | §Théorie, §Résultats | « Σ > 1 attribuable aux coûts de transaction et à la valeur temps de l'argent » ; « implied discount factor 1.0205 ». | La valeur temps **abaisse** Σ sous 1 (borne basse e^{−rτ}, moyenne 0,989) ; bornes exécutables asymétriques e^{−rτ}−c ≤ Σ ≤ 1+c dérivées des mécanismes mint/convert ; ligne « implied discount factor » supprimée. | Erreur de signe économique ; un facteur d'actualisation > 1 n'a pas de sens. | Carnet d'ordres 22 mai 2026 : Σ bids 0,999, Σ asks 1,004, Σ mids 1,0015 = clôture enregistrée (`orderbook`). | | |
| 13 | +| 4 | §Données, Annexe A | Taux des fonds fédéraux « 4,25–4,50 % » sur l'échantillon. | DFF 3,89 % → 3,64 % le 11 déc. 2025, 3,62 % en mai 2026 (borne haute de la fourchette 3,75 %). | Vérifié sur `data/raw/fred/fed_funds_rate.csv`. | idem | | |
| 14 | +| 5 | Résumé, intro, conclusion | « Hasbrouck information shares », « Treasury futures », « 15–45 minutes ahead », « Amihud illiquidity ratios rival established markets ». | Retirés. Données quotidiennes, pas de futures (TNX = indice de rendement 10 ans), pas de volume quotidien ; séries non cointégrées ⇒ parts d'information non définies. | Aucun de ces calculs n'existait dans le code ni dans les résultats. | `src/models/price_discovery.hasbrouck_information_shares` jamais appelée ; `data/raw/yahoo/` = SPY, VIX, TNX, BTC, ETH. | | |
| 15 | +| 6 | Tableau 4 / étude d'événements | CAR par contrat (rendements simples), K = 2 FOMC / 3 CPI, t à 1–2 ddl ; libellés du texte ≠ libellés du tableau (« 50+ bps decrease −0,615 » vs tableau « 25 bps decrease » ; « 25 bps decrease −0,999 » vs tableau « 25 bps increase »). | Analyse « jour d'annonce » : ΔE^Q[Δr] (pb) et Δp(No change) (pp) pour **13** publications (4 FOMC, 4 CPI, 5 emploi) ; ratios de variance, Brown–Forsythe, Mann–Whitney ; week-end vs semaine. | Puissance nulle de l'ancien test ; fenêtre d'estimation de 60 jours excluait 2 FOMC et 2 CPI ; rendements simples sur des contrats à 0,005 $ dominés par le tick. | `events.records`, `announcement`. Résultats : VR 4,85 (p_BF 0,008) pour ΔE^Q ; 14,2 (p < 0,001) pour Δp. | | |
| 16 | +| 7 | Tableau 5 (Granger) | Fed→VIX F = 4,96 (p = 0,001), VIX→Fed F = 2,73 (p = 0,049), Fed→SPY F = 2,42 (p = 0,072), « lag selected by AIC ». | Avec calendrier corrigé, grille des jours de bourse US, ordre choisi par AIC/BIC/HQIC (= 0 ⇒ p = 1), tests HAC : **aucun rejet** à 10 % (p de 0,19 à 0,90). Avec le calendrier corrigé mais l'ancienne sélection « p minimal sur 1–5 » : p = 0,064 / 0,370 / 0,258. | Le code (`granger_causality_matrix`) choisissait le retard au **p-value minimal** (data mining) ; décalage d'un jour ; rendements Polymarket calculés sur 7 jours et fusionnés avec une grille de 5 jours (changement du lundi = dimanche→lundi). | `granger.pairs`, `granger.min_p_over_lags_aligned`. Code corrigé : sélection par AIC. | | |
| 17 | +| 8 | Tableau 6 (VAR) | Seule la constante figurait (l'AIC avait choisi 0 retard, non signalé). | VAR(1) à 5 variables (ajout du rendement 10 ans), t HAC, R². | Table inexploitable en v1.0. | `table6_var.tex`. | | |
| 18 | +| 9 | §7.5 élection | « Trump converged to a final price of 0.58 … post-resolution … settlement delay … oracle ». | L'échantillon s'arrête à la clôture du 5 nov. 2024 (00:00 UTC 6 nov. = 19 h ET, avant les résultats) ; 0,58 = dernier prix pré-résultat. Ajout de Σ sur 17 contrats (moy. 1,0146), faits datés (14–15 juil., 21 juil., 10 sept.). | Lecture erronée des données. | `price_history_2174263314346390.json` dernier point 2024-11-06 00:00:02 UTC ; `election`. | | |
| 19 | +| 10 | Tableau 1 | 20 marchés sans rapport (Rubio 2028, PSG, Stranger Things…), Obs = 0, prix vides (issu de `discovered_markets.json[:20]`). | Les 5 contrats Fed + 17 contrats élection réellement analysés (volume, liquidité, T, premier/moyen/min/max/dernier prix). | Table hors sujet. | `table1_descriptive_stats.tex`. | | |
| 20 | +| 11 | §Robustesse (v1.0) | Market model, Patell, fenêtres étroites, sous-échantillons, Student-t, EGARCH, « cross-market arbitrage », Johansen, GMM de Hansen, VIF, Ljung–Box décrits avec résultats chiffrés (p = 0,082 ; γ 0,28–0,32 ; VIF 1,34/2,87/2,41 ; kurtosis 4,2 ; ADF −7,2 à −11,4). | Supprimés. Remplacés par des vérifications **exécutées** : Student-t (Tableau 8), ordres de retard fixes, ±75 pb, jour initial, coût 1 ¢, Roll comme coût, demi-échantillons, Δp(No change) comme variable Polymarket. | Aucun de ces calculs n'était produit par le code ; chiffres non reproductibles. | `sensitivity` dans `revision_stats.json`. | | |
| 21 | +| 12 | Tableau 7 (GARCH) | « Strong evidence » d'effet de levier, γ₁ = 0,304, « negative shocks increase variance by 30 % more » ; AIC 940,7 → 894,2. | Jour initial exclu, rendements log, erreurs QML : ARCH-LM(5) = 4,92 (p = 0,43) — pas d'effet ARCH ; estimations en bord d'espace (ω ≈ 0, α = 0, persistance 1) ; γ₁ = 0,304 (ET robuste 0,72, normal) ; Student-t ν < 3. Interprétation « 30 % de plus » corrigée (α = 0 ⇒ seuls les chocs négatifs alimentent la variance). Déplacé en annexe. | Inférence non fondée ; sur-interprétation. | `garch`. | | |
| 22 | +| 13 | Tableau 8 (HAR) | RV^(w), RV^(m) décrits comme moyennes mais codés comme racines de sommes de carrés ; R² 0,106. | Définitions standard de Corsi (moyennes sur 5 et 22 jours), |r| et r² ; R² 0,152 (|r|), 0,021 (r²) ; β_w = 0,63 (t = 2,24). | Incohérence code/texte. | `har`. | | |
| 23 | +| 14 | §Données | « log returns » ; « trading days » ; « 17 contrats sur 307 trading days ». | Le code utilisait `pct_change` (rendements simples) ; jours **calendaires** (Polymarket cote 7 j/7, 42 week-ends) ; 304 jours complets après exclusion du premier. | Cohérence code/texte. | — | | |
| 24 | +| 15 | Métadonnées, p. titre | Version 1.0, May 2026 ; sous-titre « Price Discovery, Market Completeness, and Information Aggregation… » ; JEL G13, G14, D47, D53, C58. | Version 1.1, October 2026 ; sous-titre « State Prices, No-Arbitrage Bounds and Macroeconomic News in Blockchain-Based Contingent Claims » ; mots-clés 7 ; JEL G13, G14, E52, D47, C58. Résumé réécrit. | Conformité aux résultats. | `paper/main.tex`. | | |
| 25 | +| 16 | Structure | 58 pages ; revue de littérature de 8 sous-sections ; 4 hypothèses dont volatilité en résultat principal. | 44 pages ; littérature resserrée + cadre institutionnel ; 3 hypothèses ; volatilité en Annexe A ; Annexe C « Reconciliation with the Earlier Version ». | Longueur et hiérarchie des résultats. | — | | |
| 26 | + | |
| 27 | +## 2. Données : point à signaler | |
| 28 | +- Contrat « AOC » (élection) : un unique print à 0,50 le 9 avril 2024 (clôtures voisines 0,0015–0,0020) ⇒ Σ = 1,515 ce jour-là ; conservé, signalé dans la note du Tableau 3 et de la Fig. 10, statistiques médianes insensibles. | |
| 29 | +- `src/config.py` : le marché 253596 (Ron DeSantis) était étiqueté « Kamala Harris » (Harris = 253597) ; le nettoyeur utilisait les jetons de l'événement et n'était pas affecté. Corrigé. | |
| 30 | +- `data/processed/` n'est pas commité (`.gitignore`) contrairement à ce qu'affirmait le README ; corrigé dans le README. | |
| 31 | + | |
| 32 | +## 3. Références | |
| 33 | +**Avant : 50 entrées** (8 non citées : cong2021, diebold2012, engle2002, fama1993, hansen1997, petersen2009, makarov2020, wolfers2006 ; `harvey2021defi` typée `@article` avec `publisher`). **Après : 62 entrées, toutes citées, toutes vérifiées** (Crossref `api.crossref.org/works` ou page éditeur, DOI inscrit sauf AER 1945/1980, JEL 1997, livres sans DOI). | |
| 34 | + | |
| 35 | +Retirées (tests non exécutés ou non pertinents) : johansen1991, hansen1982, patell1976, boehmer1991, cong2021tokenomics, diebold2012, engle2002dynamic, fama1993, hansen1997, petersen2009, barndorff2002 (non cité après réécriture). | |
| 36 | + | |
| 37 | +Ajoutées (29, vérification Crossref sauf mention) : wolfers2006interpreting (NBER w12200, 10.3386/w12200) ; wolfers2006theory (NBER w12083) ; snowberg2007partisan (QJE 122(2), 10.1162/qjec.122.2.807) ; page2013calibrated (EJ 123(568), 10.1111/j.1468-0297.2012.02561.x) ; rothschild2009forecasting (POQ 73(5), 10.1093/poq/nfp082) ; rhode2004historical (JEP 18(2), 10.1257/0895330041371277) ; ottaviani2015price (AER 105(1), 10.1257/aer.20120881) ; hanson2003combinatorial (ISF 5(1), 10.1023/A:1022058209073) ; hanson2006manipulation (JEBO 60(4), 10.1016/j.jebo.2004.09.011) ; tetlock2008liquidity (SSRN 10.2139/ssrn.929916) ; croxson2014information (EJ 124(575), 10.1111/ecoj.12033) ; ng2025price (SSRN 5331995, 10.2139/ssrn.5331995) ; chernov2025comovement (NBER w33339, 10.3386/w33339) ; reichenbach2025exploring (SSRN 5910522) ; kuttner2001monetary (JME 47(3), 10.1016/S0304-3932(01)00055-1) ; gurkaynak2005actions (IJCB 1(1) — vérifié sur ijcb.org/journal/ijcb05q2a2.htm, version FEDS 10.17016/feds.2004.66 dans Crossref) ; bernanke2005explains (JF 60(3), 10.1111/j.1540-6261.2005.00760.x) ; piazzesi2008futures (JME 55(4), 10.1016/j.jmoneco.2008.04.003) ; nakamura2018high (QJE 133(3), 10.1093/qje/qjy004) ; rigobon2004impact (JME 51(8), 10.1016/j.jmoneco.2004.02.004) ; ederington1993markets (JF 48(4), 10.1111/j.1540-6261.1993.tb04750.x) ; andersen2003micro (AER 93(1), 10.1257/000282803321455151) ; french1986stock (JFE 17(1), 10.1016/0304-405X(86)90004-8) ; gonzalo1995estimation (JBES 13(1), 10.1080/07350015.1995.10524576) ; baillie2002price (JFM 5(3), 10.1016/S1386-4181(02)00027-7) ; yan2010structural (JFM 13(1), 10.1016/j.finmar.2009.09.003) ; cong2023wash (Mgmt Sci 69(11), 10.1287/mnsc.2021.02709) ; lutkepohl2005new (Springer, 10.1007/978-3-540-27752-1) ; dickey1979distribution (JASA 74(366), 10.1080/01621459.1979.10482531) ; jarque1980efficient (Econ. Letters 6(3), 10.1016/0165-1765(80)90024-5). | |
| 38 | + | |
| 39 | +Corrigées : harvey2021defi → `@book` ; snowberg2013prediction → `@incollection` vol. 2A, DOI 10.1016/B978-0-444-53683-9.00011-6 ; DOI ajoutés et vérifiés pour 23 entrées existantes (Arrow 1964, Ross 1976, Fama 1970, Kyle 1985, Glosten–Milgrom 1985, Roll 1984, Amihud 2002, Madhavan 2000, Hasbrouck 1995/2003, Engle 1982, Bollerslev 1986, GJR 1993, Nelson 1991, Corsi 2009, ABDL 2001/2003, Granger 1969, Sims 1980, Newey–West 1987, White 1980, Akaike 1974, Schwarz 1978, Makarov–Schoar 2020, Manski 2006, Berg et al. 2008, Arrow et al. 2008, Wolfers–Zitzewitz 2004). | |
| 40 | + | |
| 41 | +Écartée faute de source vérifiable : Gjerstad (2005) « Risk aversion, beliefs, and prediction market equilibrium » (absente de Crossref) ; Forsythe et al. (1992, AER) non retrouvée dans Crossref, non ajoutée. | |
| 42 | + | |
| 43 | +## 4. Réanalyses exécutées | |
| 44 | +| Script | Durée | Sortie | | |
| 45 | +|---|---|---| | |
| 46 | +| `scripts/02_revision_analysis.py` (nouveau) | ≈ 11 s | `results/tables/table1…table9.tex`, `results/revision_stats.json`, `figures/fig1,2,3,4,5,7,9,10,11,12` (PDF+PNG), `data/processed/*_aligned.parquet`, `trading_day_panel.parquet` | | |
| 47 | + | |
| 48 | +Contenu : panels Fed/élection ré-étiquetés ; statistiques de Σ (avec/sans jour initial, bornes actualisées via DFF, ADF, AR(1), pente sur τ) ; carnet d'ordres ; densité risque-neutre et E^Q[Δr] ; analyse des 13 publications ; Granger/VAR (5 variables, grille jours de bourse, AIC/BIC/HQIC, HAC) + réplication de l'ancienne procédure min-p sur données alignées ; GARCH/GJR normal et Student-t (QML), ARCH-LM, Ljung–Box ; HAR |r| et r² ; Roll ; sensibilités (§7.2–7.3). | |
| 49 | + | |
| 50 | +## 5. Modifications du code source | |
| 51 | +- `src/cleaning/polymarket_cleaner.py` : étiquetage par jour de clôture. | |
| 52 | +- `src/models/price_discovery.py` : sélection du retard par AIC (plus de min-p). | |
| 53 | +- `src/config.py` : correction identifiant/jeton Harris. | |
| 54 | +- `scripts/run_analysis.py` : docstring (phase 3 = v1.0, remplacée par `02_revision_analysis.py`). | |
| 55 | +- `paper/main.tex` : `algorithm2e` retiré (inutilisé). | |
| 56 | + | |
| 57 | +## 6. Non modifié faute de données (analyses recommandées, non exécutées) | |
| 58 | +Voir `docs/REVIEW-REPORT.md` §6 : historiques intraday (fidelity 1/60 min) et futures fed funds / OIS pour la découverte des prix ; carnets d'ordres historiques pour tester les bornes jour par jour ; coupe transversale de groupes neg-risk (autres réunions FOMC) ; test d'étalonnage sur marchés résolus ; parts d'information Hasbrouck entre prix direct et prix synthétique (1 − Σ autres) au sein d'un groupe. | |
added
docs/REVIEW-REPORT.md
+71 −0
@@ -0,0 +1,71 @@ | ||
| 1 | +# REVIEW REPORT — editorial board (microstructure, prediction markets, financial economics, time-series econometrics), 2026-10-17 | |
| 2 | + | |
| 3 | +**WP 8 — Prediction Markets as Arrow–Debreu Securities: Evidence from Polymarket.** Version reviewed: 1.0 (May 2026, 58 p., never audited). Version produced: 1.1 (October 2026, 44 p.). Audit trail: `docs/CHANGELOG-REVISION.md`. Reference PDF: `docs/main_pre-revision-20261017.pdf`. | |
| 4 | + | |
| 5 | +## 1. Overall diagnosis | |
| 6 | + | |
| 7 | +The v1.0 manuscript had a sound idea — negative-risk groups on Polymarket are complete sets of state claims and their prices can be confronted with Arrow–Debreu pricing restrictions — but the execution did not support the text. The board found (a) a systematic one-day misalignment between Polymarket closes and U.S. market data and announcement dates; (b) a lag-selection procedure that minimised the p-value; (c) an abstract and conclusion describing analyses that were never run (Hasbrouck information shares, Treasury futures, "15–45 minutes" lead, Amihud ratios); (d) a robustness section reporting numerical results that no code produced; (e) factual errors about the data (federal funds rate 4.25–4.50 %, "post-election convergence to 0.58", 17 contracts "over 307 trading days"); (f) a Table 1 listing twenty unrelated markets; (g) a VAR table containing only intercepts; (h) event-study text whose contract labels did not match the table. The conceptual framing also conflated spanning (true by construction) with a test of completeness, and attributed a positive overround to the time value of money, which has the opposite sign. | |
| 8 | + | |
| 9 | +The revised paper keeps the author's genuine contribution — the Arrow–Debreu lens on negative-risk groups, the two markets, the pricing and announcement questions — and rebuilds the empirical work from the raw snapshot with corrected calendars, honest inference, and a reconciliation appendix. Several v1.0 "findings" do not survive; the paper now says so. | |
| 10 | + | |
| 11 | +## 2. Section-by-section diagnosis | |
| 12 | + | |
| 13 | +**Abstract / Introduction (v1.0).** Strengths: clear motivation, correct identification of the neg-risk structure as the object of interest. Weaknesses: claims not supported by any analysis (information shares, Treasury futures, intraday lead, Amihud); "first formal test of completeness" when completeness is by construction; promotional tone ("comprehensive framework", "novel", "establish"). Rewritten around three results actually obtained; the misalignment and lag-search artefacts are disclosed. | |
| 14 | + | |
| 15 | +**Literature (v1.0, 8 subsections).** Serviceable but generic textbook summaries (GARCH history, Kyle, O'Hara) with no link to the hypotheses; key prediction-market references missing (Wolfers–Zitzewitz 2006 "Interpreting…", Ottaviani–Sørensen 2015, Page–Clemen 2013, Rothschild 2009, Rhode–Strumpf 2004); no monetary-policy-expectations literature (Kuttner, GSS, Bernanke–Kuttner, Piazzesi–Swanson, Nakamura–Steinsson); no discussion of why Hasbrouck shares require cointegration (Yan–Zivot, Baillie et al.); no Polymarket-specific work (Ng et al. 2025, Chernov et al. 2025, Reichenbach–Walther 2025); 8 bib entries never cited; bib errors. Rewritten as "Institutional Setting and Related Literature" with the neg-risk mechanics, UMA resolution, fee status, and five focused strands; 62 verified references. | |
| 16 | + | |
| 17 | +**Theory (v1.0).** Correct definitions, but the hypothesis "Σ ≈ 1 ⇒ completeness" is a category error; positivity is mechanically ensured by the price grid; "transaction costs and time value explain Σ > 1" is wrong in sign. Rewritten: spanning by construction; the testable content is the law of one price for the complete set with **executable, asymmetric bounds** e^{−rτ} − c ≤ Σ ≤ 1 + c derived from split/convert mechanics; E^Q[Δr] defined; three falsifiable hypotheses. | |
| 18 | + | |
| 19 | +**Data (v1.0).** Wrong frequency description (minute-level in README, daily in fact), wrong rate level, wrong day counts, "log returns" vs `pct_change` in code, calendar vs trading days, election "post-resolution" misreading. Rewritten with the alignment subsection, listing-day treatment, event dates and their mapping. | |
| 20 | + | |
| 21 | +**Methodology (v1.0).** Event study with K = 2–3 and 60-day estimation windows that excluded half the events; Granger lag "selected by AIC" but coded as min-p; HAR components mis-described; Amihud described but not computable. Rewritten; design choices justified; limitations of daily data stated. | |
| 22 | + | |
| 23 | +**Results (v1.0).** Table/text label mismatches; interpretation of γ₁ ("30 % more") mathematically wrong given α₁ = 0; "strong evidence" from an AIC gap with robust SE 0.37–0.72; Granger results artefactual; liquidity figure mislabelled ("Daily Trading Volume" panel was the price). Rewritten around Tables 3–7 and Figures 1–8; all numbers from `revision_stats.json`. | |
| 24 | + | |
| 25 | +**Robustness (v1.0).** Almost entirely unsupported (see CHANGELOG #11). Replaced by the election market as a second state space (with Σ over 17 contracts) and by executed sensitivity checks; a "Checks not performed" subsection lists honest recommendations. | |
| 26 | + | |
| 27 | +**Conclusion (v1.0).** Overstated ("the experiment is succeeding", "reliable sources of information", "rival established financial markets"). Rewritten; adds manipulation/oracle/wash-trading risks with documented episodes (2024 election whale; March 2025 UMA dispute) cited to platform documentation and press via footnote-level description, not as academic claims. | |
| 28 | + | |
| 29 | +## 3. Methodology verdicts (master prompt §3) | |
| 30 | + | |
| 31 | +| Point | Verdict | | |
| 32 | +|---|---| | |
| 33 | +| Specification justified | Now yes: LOP bounds from mechanics; variance-based announcement identification (Ederington–Lee) appropriate for martingale prices; Granger in differences on a common grid. | | |
| 34 | +| Estimation assumptions explicit | Yes (HAC lags, Brown–Forsythe centring, AIC on system, QML). | | |
| 35 | +| Variables correctly defined | Yes (Appendix B; code and text now agree: Δp in pp, ΔE^Q in bps, log changes in %). | | |
| 36 | +| Fixed effects | n/a. | | |
| 37 | +| Temporal dependence | HAC everywhere; AR(1)/ADF for Σ − 1; lag orders by IC. | | |
| 38 | +| Standard errors | HAC/QML; v1.0 used unadjusted F with searched lags. | | |
| 39 | +| Sample construction transparent | Yes: listing day, gaps (18 days), 13 of 14 releases, 110 trading days, 304 election days. | | |
| 40 | +| Robustness addresses genuine threats | Yes for what is feasible; the main threats that remain (intraday timing, executable quotes over time) are explicitly deferred. | | |
| 41 | +| Coefficient interpretation | Corrected (γ₁; overround sign; VR not "30 % more"). | | |
| 42 | +| Statistical vs economic significance | Overround significant (t = 3.8) but economically within spreads — stated. | | |
| 43 | +| Causal language | None; Granger results read as absence of daily predictability. | | |
| 44 | + | |
| 45 | +## 4. Literature (verified / added / removed) | |
| 46 | + | |
| 47 | +All 62 entries verified through Crossref (`api.crossref.org/works?query.bibliographic=…` or `/works/<DOI>`) or the publisher page (IJCB). 29 added, 11 removed, 23 DOIs added to existing entries, 2 entry types corrected. Full list with DOIs in CHANGELOG §3. Not added for lack of a verifiable record: Gjerstad (2005); Forsythe et al. (1992). | |
| 48 | + | |
| 49 | +## 5. Results: inconsistencies found and resolved | |
| 50 | + | |
| 51 | +Listed in CHANGELOG §1 (#2–#14). Reproduction check: v1.0's 1.0205 / 0.0527 / 0.570 are reproduced exactly when the listing day is included; v1.0's Granger statistics are reproduced by the min-p procedure on misaligned data (not re-run with the old labelling, but the mechanism is demonstrated: with correct alignment the same procedure gives p = 0.064 / 0.370 / 0.258). | |
| 52 | + | |
| 53 | +## 6. Recommended analyses NOT executed (data not available locally; no network calls to Polymarket made) | |
| 54 | + | |
| 55 | +1. Intraday price histories (CLOB `fidelity=1` or `60`) around the 13 releases, compared with Treasury futures (ZN/ZF or fed funds futures) — the only way to assess price discovery across venues; daily data cannot. | |
| 56 | +2. Fed funds futures / OIS-implied expected change for the June 2026 meeting vs E^Q[Δr] — measures the risk-premium wedge (Piazzesi–Swanson). | |
| 57 | +3. Historical order books to test executable bounds day by day (the public API gives only the current book). | |
| 58 | +4. Cross-section of FOMC neg-risk groups (Dec 2025, Jan/Mar 2026 closed markets exist in `FED_CLOSED_MARKETS`) — term structure of the overround vs depth; calibration of resolved markets. | |
| 59 | +5. Within-group price discovery: Hasbrouck shares between the direct "No change" price and its synthetic counterpart 1 − Σ(other four), which are cointegrated by construction. | |
| 60 | +6. Trade-level data to separate flow from information around the 2024 whale episode. | |
| 61 | + | |
| 62 | +## 7. Remaining limitations | |
| 63 | + | |
| 64 | +Two groups, daily frequency, 13 releases, 110 common trading days; last-price Σ vs executable quotes; one order-book snapshot; 3–4-hour residual window between closes; risk-neutral vs physical probabilities unidentified; fee status at the snapshot (metadata `fee: None`) may have changed since; UMA resolution risk unpriced; reported volumes possibly inflated. | |
| 65 | + | |
| 66 | +## 8. Publication maturity | |
| 67 | + | |
| 68 | +- **Status**: a coherent, honest, modest working paper. Contribution: executable no-arbitrage bounds for neg-risk groups, term structure of the overround, announcement-day behaviour of a Polymarket-implied FOMC expectation, and a methodological warning on blockchain time stamps and lag search. | |
| 69 | +- **Target journals**: *Journal of Prediction Markets* (fit, feasible); *Journal of Financial Markets* or *Finance Research Letters* (possible after extension 1–2 above); *JBF / Management Science* unlikely without intraday and futures data and a larger cross-section. | |
| 70 | +- **Rejection risks**: small sample and absence of a positive price-discovery result; descriptive nature of the pricing evidence (one order-book snapshot); daily frequency; reliance on one platform's reported prices. The reconciliation appendix is an asset for credibility but also signals that the earlier version circulated with errors — it should remain. | |
| 71 | +- **Verdict**: not yet submittable to a top-field journal; suitable as a UQO working paper and, with extension 1 (intraday + futures), a credible JFM/JPM submission. | |
modified
figures/fig10_liquidity.pdf
+0 −0
Binary file not shown.
modified
figures/fig10_liquidity.png
+0 −0
Binary file not shown.
modified
figures/fig11_election_case_study.pdf
+0 −0
Binary file not shown.
added
figures/fig11_election_case_study.png
+0 −0
Binary file not shown.
modified
figures/fig12_arbitrage_violations.pdf
+0 −0
Binary file not shown.
modified
figures/fig12_arbitrage_violations.png
+0 −0
Binary file not shown.
modified
figures/fig1_state_prices.pdf
+0 −0
Binary file not shown.
added
figures/fig1_state_prices.png
+0 −0
Binary file not shown.
modified
figures/fig2_completeness_test.pdf
+0 −0
Binary file not shown.
added
figures/fig2_completeness_test.png
+0 −0
Binary file not shown.
modified
figures/fig3_risk_neutral_density.pdf
+0 −0
Binary file not shown.
modified
figures/fig3_risk_neutral_density.png
+0 −0
Binary file not shown.
added
figures/fig4_expected_policy_change.pdf
+0 −0
Binary file not shown.
added
figures/fig4_expected_policy_change.png
+0 −0
Binary file not shown.
added
figures/fig5_event_study_cars.pdf
+0 −0
Binary file not shown.
modified
figures/fig5_event_study_cars.png
+0 −0
Binary file not shown.
modified
figures/fig7_granger_heatmap.pdf
+0 −0
Binary file not shown.
added
figures/fig7_granger_heatmap.png
+0 −0
Binary file not shown.
modified
figures/fig9_volatility.pdf
+0 −0
Binary file not shown.
modified
figures/fig9_volatility.png
+0 −0
Binary file not shown.
modified
paper/appendix/appendix.tex
+32 −59
@@ -4,90 +4,63 @@ | ||
| 4 | 4 | \newpage |
| 5 | 5 | \begin{appendices} |
| 6 | 6 | |
| 7 | −\section{Market Descriptions}\label{app:markets} | |
| 7 | +\section{Conditional Volatility of the Modal State Price}\label{app:volatility} | |
| 8 | 8 | |
| 9 | −This appendix provides detailed descriptions of the Polymarket contract markets analyzed in the paper. | |
| 9 | +This appendix reports the volatility models that an earlier version of the paper presented as a principal result. The series is the daily log return on the ``No change'' claim over the main sample (145 calendar-day returns, listing day excluded), in percent; it has a mean of 0.69, a standard deviation of 6.67, a minimum of $-31.6$ (28 January 2026) and a maximum of $+30.9$ (18 March 2026), both FOMC days. | |
| 10 | 10 | |
| 11 | −\subsection{Federal Reserve Rate Decision Market (June 2026 FOMC)} | |
| 11 | +Before estimating conditional-variance models we test for their premise. Engle's ARCH-LM statistic with five lags is 4.92 ($p=0.43$) and the Ljung--Box statistic on squared returns at ten lags is 10.7 ($p=0.38$): neither rejects conditional homoskedasticity. The Ljung--Box statistic on the returns themselves is 20.7 ($p=0.023$), so there is some evidence of serial correlation in the mean, consistent with the underreaction predicted by \citet{ottaviani2015price} or with stale prices on inactive days, but not of volatility clustering of the kind that GARCH models are designed to capture. | |
| 12 | 12 | |
| 13 | −The Federal Reserve rate decision market on Polymarket consists of five binary outcome contracts corresponding to the possible actions taken by the Federal Open Market Committee (FOMC) at its scheduled June 2026 meeting regarding the target federal funds rate. The contracts are structured within Polymarket's neg-risk framework, which enforces mutual exclusivity and collective exhaustiveness: exactly one contract resolves to \$1 and all others resolve to \$0. | |
| 13 | +Table~\ref{tab:garch} reports GARCH(1,1) and GJR-GARCH(1,1) estimates with Gaussian and Student-$t$ innovations and Bollerslev--Wooldridge robust standard errors. Three features stand out. The persistence $\alpha_1+\beta_1$ (plus $\gamma_1/2$ for the asymmetric models) equals one in all four specifications, and the constant $\omega$ is zero to three decimal places in three of them: the estimates lie on the boundary of the parameter space, where the usual asymptotic inference does not apply. The asymmetry parameter $\gamma_1$ of the GJR model is about 0.30 in both distributions, but its robust standard error is 0.72 under Gaussian innovations and the symmetric ARCH coefficient is estimated at exactly zero; the Student-$t$ degrees of freedom are below three, so that the fitted innovation distribution has infinite kurtosis and barely finite variance. The large likelihood gains of the asymmetric and Student-$t$ specifications therefore reflect the fitting of two or three announcement-day observations rather than a pervasive leverage effect, and we do not interpret $\gamma_1$ as evidence of one. The earlier version reported a GJR coefficient of 0.30 as a ``novel leverage effect'' with an AIC improvement of 46 over the symmetric model; the coefficient is reproduced here, but the inference is not. | |
| 14 | 14 | |
| 15 | −\begin{itemize} | |
| 16 | − \item \textbf{Contract 1: 50+ bps decrease.} This contract resolves to \$1 if the FOMC lowers the target federal funds rate by 50 basis points or more at the June 2026 meeting. The contract covers all scenarios in which the rate is reduced by 50 bps, 75 bps, 100 bps, or any larger decrement. | |
| 15 | +\input{../results/tables/table7_garch.tex} | |
| 17 | 16 | |
| 18 | − \item \textbf{Contract 2: 25 bps decrease.} This contract resolves to \$1 if the FOMC lowers the target federal funds rate by exactly 25 basis points. It does not include rate cuts of other magnitudes. | |
| 17 | +Table~\ref{tab:har_rv} reports the heterogeneous autoregressive regression of \citet{corsi2009simple} with the daily absolute return as the volatility proxy and, alternatively, the squared return, using the standard definitions of the weekly and monthly components as averages of the daily proxy over five and twenty-two days. With absolute returns the weekly component is positive and significant ($\beta_w=0.63$, $t=2.24$) and the regression explains 15 percent of the variation in next-day absolute returns; with squared returns, which are dominated by the two FOMC days, the fit collapses ($R^2=0.02$, joint $p=0.49$). Persistence in the absolute size of daily moves at the weekly horizon is thus detectable, and is plausibly linked to the clustering of macroeconomic releases within the month, but the evidence is modest. Figure~\ref{fig:volatility} plots the returns and the fitted conditional standard deviations. | |
| 19 | 18 | |
| 20 | − \item \textbf{Contract 3: No change.} This contract resolves to \$1 if the FOMC leaves the target federal funds rate unchanged at its current level (4.25--4.50\% at the start of the sample period). | |
| 19 | +\input{../results/tables/table8_har_rv.tex} | |
| 21 | 20 | |
| 22 | − \item \textbf{Contract 4: 25 bps increase.} This contract resolves to \$1 if the FOMC raises the target federal funds rate by exactly 25 basis points. | |
| 23 | − | |
| 24 | − \item \textbf{Contract 5: 50+ bps increase.} This contract resolves to \$1 if the FOMC raises the target federal funds rate by 50 basis points or more. | |
| 25 | −\end{itemize} | |
| 26 | − | |
| 27 | −The resolution source for all five contracts is the official FOMC statement released at the conclusion of the meeting. The sample period extends from December 2025 to May 2026, providing 146 daily observations. | |
| 28 | − | |
| 29 | −\subsection{2024 U.S.\ Presidential Election Market} | |
| 30 | − | |
| 31 | −The 2024 U.S.\ Presidential Election market on Polymarket consists of 17 binary outcome contracts, each corresponding to a potential winner of the 2024 presidential election. The contracts are also structured within the neg-risk framework: exactly one candidate contract resolves to \$1 (the winner) and all others resolve to \$0. | |
| 32 | − | |
| 33 | −The 17 candidates include the major-party nominees (Donald Trump, Kamala Harris) and 15 additional candidates or potential candidates whose contracts were listed on the platform at various points during the sample period. The sample spans 307 daily observations, covering the period from the establishment of the market through post-election settlement. | |
| 34 | − | |
| 35 | −The resolution source is the official certification of the presidential election results. Donald Trump won the election, and his contract resolved to \$1 upon certification. The final trading price for Trump's contract was 0.58, reflecting the fact that some secondary market trading continued between the election date and the formal settlement of contracts on the blockchain. | |
| 21 | +\begin{figure}[htbp] | |
| 22 | + \centering | |
| 23 | + \includegraphics[width=\textwidth]{../figures/fig9_volatility.pdf} | |
| 24 | + \caption{Panel~A: daily log returns (percent) on the ``No change'' claim, 12 December 2025 to 22 May 2026. Panel~B: conditional standard deviation from the Gaussian GARCH(1,1) and the Student-$t$ GJR-GARCH(1,1) of Table~\ref{tab:garch}.} | |
| 25 | + \label{fig:volatility} | |
| 26 | +\end{figure} | |
| 36 | 27 | |
| 37 | 28 | \section{Variable Definitions}\label{app:variables} |
| 38 | 29 | |
| 39 | −This appendix provides precise definitions of all variables used in the empirical analysis. | |
| 40 | − | |
| 41 | 30 | \begin{table}[htbp] |
| 42 | 31 | \centering |
| 43 | 32 | \small |
| 44 | −\begin{tabular}{l p{10cm}} | |
| 33 | +\begin{tabular}{l p{10.5cm}} | |
| 45 | 34 | \toprule |
| 46 | −\textbf{Variable} & \textbf{Definition} \\ | |
| 35 | +\textbf{Symbol} & \textbf{Definition} \\ | |
| 47 | 36 | \midrule |
| 48 | −$p_j(t)$ & Closing price of Polymarket contract $j$ on trading day $t$. Prices are denominated in USDC and range from 0 to 1. \\[0.3em] | |
| 49 | −$r_j(t)$ & Log return on contract $j$: $r_j(t) = \ln(p_j(t) / p_j(t-1))$. Undefined when $p_j(t-1) = 0$. \\[0.3em] | |
| 50 | −$\Sigma(t)$ & State price sum: $\Sigma(t) = \sum_{j=1}^{N} p_j(t)$. Equals $1/(1+r_f)$ under Arrow--Debreu completeness. \\[0.3em] | |
| 51 | −$q_j(t)$ & Risk-neutral probability: $q_j(t) = p_j(t) / \Sigma(t)$. Sums to unity by construction. \\[0.3em] | |
| 52 | −$AR_j(t)$ & Abnormal return: $AR_j(t) = r_j(t) - \hat{\mu}_j$, where $\hat{\mu}_j$ is the mean return over the 60-day estimation window. \\[0.3em] | |
| 53 | −$CAR_j(t_1, t_2)$ & Cumulative abnormal return: $CAR_j(t_1, t_2) = \sum_{t=t_1}^{t_2} AR_j(t)$. \\[0.3em] | |
| 54 | −$RV_t^{(d)}$ & Daily realized volatility proxy: $RV_t^{(d)} = |r_t|$ (absolute daily return). \\[0.3em] | |
| 55 | −$RV_t^{(w)}$ & Weekly realized volatility: $RV_t^{(w)} = \frac{1}{5} \sum_{i=0}^{4} RV_{t-i}^{(d)}$. \\[0.3em] | |
| 56 | −$RV_t^{(m)}$ & Monthly realized volatility: $RV_t^{(m)} = \frac{1}{22} \sum_{i=0}^{21} RV_{t-i}^{(d)}$. \\[0.3em] | |
| 57 | −$\sigma_t^2$ & Conditional variance from GARCH/GJR-GARCH models. \\[0.3em] | |
| 58 | −Roll spread & Implicit effective spread: $\text{Roll} = 2\sqrt{-\text{Cov}(r_t, r_{t-1})}$ when autocovariance is negative; 0 otherwise. \\[0.3em] | |
| 59 | −ILLIQ$_t$ & Amihud illiquidity ratio: $\text{ILLIQ}_t = |r_t| / V_t$, where $V_t$ is dollar trading volume. \\[0.3em] | |
| 60 | −SPY$_t$ & Daily log return on the SPDR S\&P 500 ETF Trust. \\[0.3em] | |
| 61 | −BTC$_t$ & Daily log return on Bitcoin (BTC/USD). \\[0.3em] | |
| 62 | −VIX$_t$ & Daily log change in the CBOE Volatility Index. \\[0.3em] | |
| 37 | +$p_{j,t}$ & Daily closing price of the YES token of contract $j$, in USDC per \$1 payoff, labelled by the UTC day it closes (the CLOB daily point stamped 00:00 UTC of day $t+1$). \\[0.3em] | |
| 38 | +$\Sigma_t$ & Price of the complete set, $\sum_{j} p_{j,t}$, computed on days when all $N$ contracts have a close. \\[0.3em] | |
| 39 | +$\delta_t$ & Discounted value of \$1 at resolution, $\exp(-r_t\tau_t)$, with $r_t$ the effective federal funds rate (FRED DFF) and $\tau_t$ the time to resolution in years. \\[0.3em] | |
| 40 | +$q_{j,t}$ & Risk-neutral probability of state $j$, $p_{j,t}/\Sigma_t$. \\[0.3em] | |
| 41 | +$\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ & Risk-neutral expected change in the upper bound of the target range at the June 2026 meeting, $\sum_j q_{j,t}x_j$ with $x=(-50,-25,0,25,50)$ basis points. \\[0.3em] | |
| 42 | +$\Delta p_{\text{No change},t}$ & Daily change in the ``No change'' state price, in percentage points. \\[0.3em] | |
| 43 | +$r_t$ (returns) & Daily log return on the ``No change'' claim, in percent, used only in Appendix~\ref{app:volatility}. \\[0.3em] | |
| 44 | +TNX & Daily change in the CBOE ten-year Treasury yield index, in basis points, on the U.S.\ trading-day grid. \\[0.3em] | |
| 45 | +SPY, VIX, BTC & Daily log changes (percent) in the SPDR S\&P~500 ETF, the CBOE Volatility Index and Bitcoin (USD), on the U.S.\ trading-day grid. \\[0.3em] | |
| 46 | +$\widehat{S}_t$ & Roll (1984) spread estimate, $2\sqrt{-\widehat{\mathrm{Cov}}(\Delta p_t,\Delta p_{t-1})}$ over a rolling twenty-day window, zero when the covariance is positive. \\[0.3em] | |
| 47 | +$RV^{(d)}_t, RV^{(w)}_t, RV^{(m)}_t$ & Daily volatility proxy ($|r_t|$ or $r_t^2$) and its averages over the past 5 and 22 calendar days. \\ | |
| 63 | 48 | \bottomrule |
| 64 | 49 | \end{tabular} |
| 65 | 50 | \caption{Variable definitions.} |
| 66 | 51 | \label{tab:variables} |
| 67 | 52 | \end{table} |
| 68 | 53 | |
| 69 | −\section{Additional Robustness}\label{app:robustness} | |
| 70 | − | |
| 71 | −This appendix reports supplementary robustness checks referenced in the main text. | |
| 72 | − | |
| 73 | −\subsection{Unit Root Tests on Return Series} | |
| 74 | − | |
| 75 | −Augmented Dickey--Fuller (ADF) tests are conducted on all return series to confirm stationarity. The null hypothesis of a unit root is rejected at the 1\% significance level for all five Fed rate decision contract return series (ADF statistics ranging from $-7.2$ to $-11.4$, all below the 1\% critical value of $-3.48$), as well as for SPY, BTC, and VIX return series. These results confirm that the return series are stationary and suitable for the time-series analyses (Granger causality, VAR, GARCH) employed in the paper. | |
| 76 | − | |
| 77 | −\subsection{Multicollinearity Diagnostics for HAR-RV} | |
| 78 | − | |
| 79 | −The three regressors in the HAR-RV model---daily, weekly, and monthly realized volatility---are constructed from overlapping observations and are therefore correlated by construction. We compute variance inflation factors (VIFs) for the HAR-RV regression: VIF$(RV^{(d)})$ = 1.34, VIF$(RV^{(w)})$ = 2.87, VIF$(RV^{(m)})$ = 2.41. All VIFs are below the conventional threshold of 10, indicating that multicollinearity is not a serious concern for coefficient estimation, though it may contribute to the imprecision of individual coefficient estimates. | |
| 80 | − | |
| 81 | −\subsection{Residual Diagnostics for GARCH Models} | |
| 54 | +\section{Reconciliation with the Earlier Version}\label{app:reconciliation} | |
| 82 | 55 | |
| 83 | −We examine the standardized residuals from the GJR-GARCH(1,1) model to assess model adequacy. The Ljung--Box test for serial correlation in the squared standardized residuals fails to reject the null of no autocorrelation at the 5\% level for lag orders up to 20, indicating that the GJR-GARCH specification adequately captures the conditional variance dynamics. The standardized residuals exhibit excess kurtosis of approximately 4.2, exceeding the Gaussian value of 3, which motivates the Student-$t$ innovation distribution considered as a robustness check in Section~\ref{sec:robustness}. | |
| 56 | +The first version of this paper (May 2026) reported several results that the present version does not reproduce. This appendix records the differences and their causes so that readers of both versions can reconcile them; the full audit trail is in the repository's revision log. | |
| 84 | 57 | |
| 85 | −\subsection{Johansen Cointegration Test} | |
| 58 | +The earlier completeness statistics (mean 1.0205, standard deviation 0.0527, maximum absolute deviation 0.570, 146 observations) are reproduced exactly when the listing day is included: the seeded quotes of 10 December 2025 summed to 1.57 before any trade. Excluding that day gives the figures of Table~\ref{tab:completeness}. The earlier text attributed the 2 percent overround to transaction costs ``and the time value of money''; as shown in Section~\ref{sec:theoretical}, the time value of money lowers the price of the complete set and cannot contribute to a positive overround. The earlier text also stated that the effective federal funds rate was 4.25--4.50 percent over the sample; the FRED series shows 3.62--3.64 percent. | |
| 86 | 59 | |
| 87 | −Given the potential for long-run equilibrium relationships between prediction market prices and traditional financial market variables, we conduct the \citet{johansen1991estimation} trace test for cointegration among the level series of the Fed ``No Change'' contract price, SPY, BTC (in logs), and VIX. The trace statistic fails to reject the null of zero cointegrating vectors at the 5\% significance level, indicating no stable long-run equilibrium relationship among the level series. This result is consistent with the use of return-based (rather than level-based) specifications in our main analysis and confirms that the Granger causality and VAR analyses do not suffer from omitted error-correction terms. | |
| 60 | +The earlier event study reported cumulative abnormal returns of $-0.615$ and $-0.999$ for individual contracts with $p$-values of 0.107 and 0.095 from two and three events respectively; the contract labels in the text did not match those in the table. The design is replaced by the announcement-day analysis of Section~\ref{sec:results}, which uses all thirteen releases in the sample and a variance-based identification. | |
| 88 | 61 | |
| 89 | −\subsection{Hansen's Generalized Method of Moments} | |
| 62 | +The earlier Granger tests reported $F=4.96$ ($p=0.001$) for the Fed contract to the VIX, $F=2.73$ ($p=0.049$) for the VIX to the Fed contract and $F=2.42$ ($p=0.072$) for the Fed contract to the SPY, described as using AIC-selected lags. The code selected, for each pair, the lag in $\{1,\ldots,5\}$ with the smallest $p$-value, and the Polymarket series was labelled one day late, so that a Polymarket ``return'' on day $t$ was in fact the change to the evening of day $t-1$ and the regression of VIX changes on lagged Polymarket changes effectively used information from the same evening. With the calendar corrected but the minimum-$p$ selection retained, the three $p$-values become 0.064, 0.370 and 0.258; with the lag fixed by information criteria they are 0.533, 0.589 and 0.345 (Table~\ref{tab:granger}). The earlier VAR table contained only the intercepts because the information criterion had selected zero lags, which the text did not report. | |
| 90 | 63 | |
| 91 | −As a robustness check on the Euler equation implied by the Arrow--Debreu framework, we estimate the stochastic discount factor using \citet{hansen1982generalized} GMM. The moment conditions are derived from the asset pricing restriction that $\mathbb{E}[m_{t+1} R_{t+1}^j] = 1$ for each contract $j$, where $m_{t+1}$ is the stochastic discount factor and $R_{t+1}^j$ is the gross return. Using a linear specification for the stochastic discount factor, $m_{t+1} = a + b \cdot f_{t+1}$, where $f_{t+1}$ is a factor (we use the return on an equally weighted portfolio of the five contracts), the GMM $J$-test fails to reject the overidentifying restrictions at the 5\% significance level. This result provides additional support for the no-arbitrage interpretation of prediction market prices, as the data are consistent with the existence of a well-behaved stochastic discount factor that prices all five contracts. | |
| 64 | +The earlier abstract and summary referred to Hasbrouck information shares, to Treasury futures, to a lead of ``15--45 minutes'' and to Amihud illiquidity ratios. None of these was computed: the data are daily, contain no Treasury futures and no daily volume, and the series are not cointegrated, so that information shares are undefined. The earlier description of the election market as converging to 0.58 after the election and of a settlement delay was incorrect; the sample ends on election evening (Section~\ref{sec:robustness}). The earlier robustness section described market-model, Patell, Student-$t$, EGARCH, subsample, cross-market, Johansen and GMM analyses whose results were not produced by the code; they have been removed, and the analyses that were feasible with the data (Student-$t$ innovations, alternative lag orders, alternative valuation of open-ended states, listing-day treatment) are reported in Sections~\ref{sec:robustness} and Appendix~\ref{app:volatility}. | |
| 92 | 65 | |
| 93 | 66 | \end{appendices} |
modified
paper/main.pdf
+0 −0
Binary file not shown.
modified
paper/main.tex
+33 −29
@@ -88,7 +88,7 @@ | ||
| 88 | 88 | \usepackage[toc,page]{appendix} |
| 89 | 89 | |
| 90 | 90 | % --- Algorithm Support --- |
| 91 | −\usepackage[ruled,vlined,linesnumbered]{algorithm2e} | |
| 91 | + | |
| 92 | 92 | |
| 93 | 93 | % --- Misc --- |
| 94 | 94 | \usepackage{enumitem} |
@@ -99,36 +99,40 @@ | ||
| 99 | 99 | % ============================================================================ |
| 100 | 100 | \newcommand{\WPnumber}{8} |
| 101 | 101 | \newcommand{\WPtitle}{Prediction Markets as Arrow--Debreu Securities: Evidence from Polymarket} |
| 102 | −\newcommand{\WPsubtitle}{Price Discovery, Market Completeness, and Information Aggregation in Blockchain-Based State-Contingent Claims} | |
| 103 | −\newcommand{\WPdate}{May 2026} | |
| 104 | −\newcommand{\WPversion}{1.0} | |
| 102 | +\newcommand{\WPsubtitle}{State Prices, No-Arbitrage Bounds and Macroeconomic News in Blockchain-Based Contingent Claims} | |
| 103 | +\newcommand{\WPdate}{October 2026} | |
| 104 | +\newcommand{\WPversion}{1.1} | |
| 105 | 105 | \newcommand{\WPabstract}{% |
| 106 | − This paper investigates whether blockchain-based prediction markets | |
| 107 | − satisfy the theoretical properties of Arrow--Debreu complete markets. | |
| 108 | − We model Polymarket binary outcome contracts as state-contingent | |
| 109 | − claims and test for market completeness, no-arbitrage pricing, | |
| 110 | − and information aggregation efficiency using Federal Reserve rate | |
| 111 | − decision markets (five mutually exclusive outcomes forming a complete | |
| 112 | − state space) and the 2024 U.S.\ Presidential Election market. | |
| 113 | − Employing a comprehensive empirical framework---including event | |
| 114 | − studies around FOMC and CPI announcements, Hasbrouck information | |
| 115 | − shares, vector autoregression, Granger causality tests, and | |
| 116 | − HAR-RV volatility models---we document three principal findings. | |
| 117 | − First, state prices within Polymarket neg-risk groups sum | |
| 118 | − to values close to unity, consistent with Arrow--Debreu completeness | |
| 119 | − and the absence of persistent arbitrage. Second, prediction market | |
| 120 | − prices adjust to macroeconomic news releases 15--45 minutes ahead of | |
| 121 | − corresponding moves in Treasury futures, implying a price discovery | |
| 122 | − advantage in the state-contingent claims market. Third, liquidity | |
| 123 | − and microstructure quality, as measured by Roll spreads and Amihud | |
| 124 | − illiquidity ratios, rival those of established financial markets for | |
| 125 | − high-profile contracts. These results establish that decentralized | |
| 126 | − prediction markets can function as effective Arrow--Debreu economies | |
| 127 | − and contribute to the literatures on state-contingent pricing, | |
| 128 | − information aggregation, market microstructure, and blockchain finance.% | |
| 106 | + Negative-risk events on Polymarket list one binary contract for every | |
| 107 | + outcome of a decision and settle exactly one of them at one dollar, so | |
| 108 | + that their prices are observable analogues of Arrow--Debreu state prices. | |
| 109 | + We use the five-outcome market on the June 2026 FOMC decision (146 daily | |
| 110 | + closes, December 2025 to May 2026) and the seventeen-contract market on | |
| 111 | + the 2024 U.S.\ presidential election (304 daily closes) to ask how the | |
| 112 | + Arrow--Debreu pricing restrictions fare in a blockchain market. Because | |
| 113 | + spanning is built into the contract design, the testable content is the | |
| 114 | + law of one price for the complete set of claims, whose executable | |
| 115 | + no-arbitrage bounds we derive from the platform's minting and conversion | |
| 116 | + mechanics. The sum of state prices averages 1.017 (Fed) and 1.015 | |
| 117 | + (election); the overround is statistically positive but of the order of | |
| 118 | + the quoted half-spreads of the low-priced legs, declines steadily towards | |
| 119 | + resolution, reverts within two days, and is bracketed by the bid- and | |
| 120 | + ask-side sums of the order book. It has the wrong sign to be explained by | |
| 121 | + the time value of money, which places the complete set below one. The | |
| 122 | + normalised prices define a risk-neutral distribution over the FOMC | |
| 123 | + decision whose mean---a Polymarket analogue of the futures-implied | |
| 124 | + expected policy change---moves two to five times more, in variance terms, | |
| 125 | + on FOMC and employment-report days than on other days, while weekend | |
| 126 | + trading carries about one third of weekday variance. Once Polymarket | |
| 127 | + closes are aligned to the U.S.\ trading calendar and lag orders are chosen | |
| 128 | + by information criteria, daily changes in this measure neither lead nor | |
| 129 | + lag the ten-year Treasury yield, the S\&P~500, the VIX or Bitcoin. We | |
| 130 | + document how a one-day misalignment of blockchain time stamps and a | |
| 131 | + minimum-$p$ lag search generated spurious lead--lag findings in an earlier | |
| 132 | + version.% | |
| 129 | 133 | } |
| 130 | −\newcommand{\WPkeywords}{Prediction markets, Arrow--Debreu securities, state-contingent claims, price discovery, market microstructure, blockchain finance, information aggregation} | |
| 131 | −\newcommand{\WPjel}{G13, G14, D47, D53, C58} | |
| 134 | +\newcommand{\WPkeywords}{prediction markets, Arrow--Debreu securities, state prices, law of one price, monetary policy expectations, macroeconomic announcements, Polymarket} | |
| 135 | +\newcommand{\WPjel}{G13, G14, E52, D47, C58} | |
| 132 | 136 | |
| 133 | 137 | % --- Author --- |
| 134 | 138 | \newcommand{\WPauthor}{Simon-Pierre Boucher} |
modified
paper/references.bib
+494 −249
@@ -1,7 +1,9 @@ | ||
| 1 | 1 | % ============================================================================ |
| 2 | −% References — BibTeX Database | |
| 2 | +% References — UQO WP 8 (revised 2026-10-17; every entry verified via Crossref | |
| 3 | +% or the publisher page, DOIs recorded; see docs/CHANGELOG-REVISION.md) | |
| 3 | 4 | % ============================================================================ |
| 4 | 5 | |
| 6 | +% ---------------------------------------------------------------- theory ---- | |
| 5 | 7 | @article{arrow1964role, |
| 6 | 8 | author = {Arrow, Kenneth J.}, |
| 7 | 9 | title = {The Role of Securities in the Optimal Allocation of Risk-Bearing}, |
@@ -9,13 +11,15 @@ | ||
| 9 | 11 | volume = {31}, |
| 10 | 12 | number = {2}, |
| 11 | 13 | pages = {91--96}, |
| 12 | − year = {1964} | |
| 14 | + year = {1964}, | |
| 15 | + doi = {10.2307/2296188} | |
| 13 | 16 | } |
| 14 | 17 | |
| 15 | 18 | @book{debreu1959theory, |
| 16 | 19 | author = {Debreu, Gerard}, |
| 17 | 20 | title = {Theory of Value: An Axiomatic Analysis of Economic Equilibrium}, |
| 18 | 21 | publisher = {Yale University Press}, |
| 22 | + address = {New Haven}, | |
| 19 | 23 | year = {1959} |
| 20 | 24 | } |
| 21 | 25 | |
@@ -26,7 +30,8 @@ | ||
| 26 | 30 | volume = {13}, |
| 27 | 31 | number = {3}, |
| 28 | 32 | pages = {341--360}, |
| 29 | − year = {1976} | |
| 33 | + year = {1976}, | |
| 34 | + doi = {10.1016/0022-0531(76)90046-6} | |
| 30 | 35 | } |
| 31 | 36 | |
| 32 | 37 | @book{cochrane2005asset, |
@@ -34,9 +39,42 @@ | ||
| 34 | 39 | title = {Asset Pricing}, |
| 35 | 40 | edition = {Revised}, |
| 36 | 41 | publisher = {Princeton University Press}, |
| 42 | + address = {Princeton}, | |
| 37 | 43 | year = {2005} |
| 38 | 44 | } |
| 39 | 45 | |
| 46 | +@article{hayek1945use, | |
| 47 | + author = {Hayek, Friedrich A.}, | |
| 48 | + title = {The Use of Knowledge in Society}, | |
| 49 | + journal = {American Economic Review}, | |
| 50 | + volume = {35}, | |
| 51 | + number = {4}, | |
| 52 | + pages = {519--530}, | |
| 53 | + year = {1945} | |
| 54 | +} | |
| 55 | + | |
| 56 | +@article{fama1970efficient, | |
| 57 | + author = {Fama, Eugene F.}, | |
| 58 | + title = {Efficient Capital Markets: A Review of Theory and Empirical Work}, | |
| 59 | + journal = {Journal of Finance}, | |
| 60 | + volume = {25}, | |
| 61 | + number = {2}, | |
| 62 | + pages = {383--417}, | |
| 63 | + year = {1970}, | |
| 64 | + doi = {10.2307/2325486} | |
| 65 | +} | |
| 66 | + | |
| 67 | +@article{grossman1980impossibility, | |
| 68 | + author = {Grossman, Sanford J. and Stiglitz, Joseph E.}, | |
| 69 | + title = {On the Impossibility of Informationally Efficient Markets}, | |
| 70 | + journal = {American Economic Review}, | |
| 71 | + volume = {70}, | |
| 72 | + number = {3}, | |
| 73 | + pages = {393--408}, | |
| 74 | + year = {1980} | |
| 75 | +} | |
| 76 | + | |
| 77 | +% ---------------------------------------------------- prediction markets ---- | |
| 40 | 78 | @article{wolfers2004prediction, |
| 41 | 79 | author = {Wolfers, Justin and Zitzewitz, Eric}, |
| 42 | 80 | title = {Prediction Markets}, |
@@ -44,15 +82,28 @@ | ||
| 44 | 82 | volume = {18}, |
| 45 | 83 | number = {2}, |
| 46 | 84 | pages = {107--126}, |
| 47 | − year = {2004} | |
| 85 | + year = {2004}, | |
| 86 | + doi = {10.1257/0895330041371321} | |
| 48 | 87 | } |
| 49 | 88 | |
| 50 | −@article{wolfers2006prediction, | |
| 51 | − author = {Wolfers, Justin and Zitzewitz, Eric}, | |
| 52 | − title = {Prediction Markets in Theory and Practice}, | |
| 53 | − journal = {NBER Working Paper}, | |
| 54 | − number = {12083}, | |
| 55 | − year = {2006} | |
| 89 | +@techreport{wolfers2006theory, | |
| 90 | + author = {Wolfers, Justin and Zitzewitz, Eric}, | |
| 91 | + title = {Prediction Markets in Theory and Practice}, | |
| 92 | + institution = {National Bureau of Economic Research}, | |
| 93 | + type = {NBER Working Paper}, | |
| 94 | + number = {12083}, | |
| 95 | + year = {2006}, | |
| 96 | + doi = {10.3386/w12083} | |
| 97 | +} | |
| 98 | + | |
| 99 | +@techreport{wolfers2006interpreting, | |
| 100 | + author = {Wolfers, Justin and Zitzewitz, Eric}, | |
| 101 | + title = {Interpreting Prediction Market Prices as Probabilities}, | |
| 102 | + institution = {National Bureau of Economic Research}, | |
| 103 | + type = {NBER Working Paper}, | |
| 104 | + number = {12200}, | |
| 105 | + year = {2006}, | |
| 106 | + doi = {10.3386/w12200} | |
| 56 | 107 | } |
| 57 | 108 | |
| 58 | 109 | @article{manski2006interpreting, |
@@ -62,17 +113,32 @@ | ||
| 62 | 113 | volume = {91}, |
| 63 | 114 | number = {3}, |
| 64 | 115 | pages = {425--429}, |
| 65 | − year = {2006} | |
| 116 | + year = {2006}, | |
| 117 | + doi = {10.1016/j.econlet.2006.01.004} | |
| 66 | 118 | } |
| 67 | 119 | |
| 68 | −@article{snowberg2013prediction, | |
| 120 | +@incollection{snowberg2013prediction, | |
| 121 | + author = {Snowberg, Erik and Wolfers, Justin and Zitzewitz, Eric}, | |
| 122 | + title = {Prediction Markets for Economic Forecasting}, | |
| 123 | + booktitle = {Handbook of Economic Forecasting}, | |
| 124 | + editor = {Elliott, Graham and Timmermann, Allan}, | |
| 125 | + volume = {2A}, | |
| 126 | + pages = {657--687}, | |
| 127 | + publisher = {Elsevier}, | |
| 128 | + address = {Amsterdam}, | |
| 129 | + year = {2013}, | |
| 130 | + doi = {10.1016/B978-0-444-53683-9.00011-6} | |
| 131 | +} | |
| 132 | + | |
| 133 | +@article{snowberg2007partisan, | |
| 69 | 134 | author = {Snowberg, Erik and Wolfers, Justin and Zitzewitz, Eric}, |
| 70 | − title = {Prediction Markets for Economic Forecasting}, | |
| 71 | − journal = {Handbook of Economic Forecasting}, | |
| 72 | − volume = {2}, | |
| 73 | − pages = {657--687}, | |
| 74 | − year = {2013}, | |
| 75 | − publisher = {Elsevier} | |
| 135 | + title = {Partisan Impacts on the Economy: Evidence from Prediction Markets and Close Elections}, | |
| 136 | + journal = {Quarterly Journal of Economics}, | |
| 137 | + volume = {122}, | |
| 138 | + number = {2}, | |
| 139 | + pages = {807--829}, | |
| 140 | + year = {2007}, | |
| 141 | + doi = {10.1162/qjec.122.2.807} | |
| 76 | 142 | } |
| 77 | 143 | |
| 78 | 144 | @article{arrow2008promise, |
@@ -82,7 +148,8 @@ | ||
| 82 | 148 | volume = {320}, |
| 83 | 149 | number = {5878}, |
| 84 | 150 | pages = {877--878}, |
| 85 | − year = {2008} | |
| 151 | + year = {2008}, | |
| 152 | + doi = {10.1126/science.1157679} | |
| 86 | 153 | } |
| 87 | 154 | |
| 88 | 155 | @article{berg2008results, |
@@ -92,9 +159,226 @@ | ||
| 92 | 159 | volume = {24}, |
| 93 | 160 | number = {2}, |
| 94 | 161 | pages = {285--300}, |
| 95 | − year = {2008} | |
| 162 | + year = {2008}, | |
| 163 | + doi = {10.1016/j.ijforecast.2008.03.007} | |
| 96 | 164 | } |
| 97 | 165 | |
| 166 | +@article{page2013calibrated, | |
| 167 | + author = {Page, Lionel and Clemen, Robert T.}, | |
| 168 | + title = {Do Prediction Markets Produce Well-Calibrated Probability Forecasts?}, | |
| 169 | + journal = {Economic Journal}, | |
| 170 | + volume = {123}, | |
| 171 | + number = {568}, | |
| 172 | + pages = {491--513}, | |
| 173 | + year = {2013}, | |
| 174 | + doi = {10.1111/j.1468-0297.2012.02561.x} | |
| 175 | +} | |
| 176 | + | |
| 177 | +@article{rothschild2009forecasting, | |
| 178 | + author = {Rothschild, David}, | |
| 179 | + title = {Forecasting Elections: Comparing Prediction Markets, Polls, and Their Biases}, | |
| 180 | + journal = {Public Opinion Quarterly}, | |
| 181 | + volume = {73}, | |
| 182 | + number = {5}, | |
| 183 | + pages = {895--916}, | |
| 184 | + year = {2009}, | |
| 185 | + doi = {10.1093/poq/nfp082} | |
| 186 | +} | |
| 187 | + | |
| 188 | +@article{rhode2004historical, | |
| 189 | + author = {Rhode, Paul W. and Strumpf, Koleman S.}, | |
| 190 | + title = {Historical Presidential Betting Markets}, | |
| 191 | + journal = {Journal of Economic Perspectives}, | |
| 192 | + volume = {18}, | |
| 193 | + number = {2}, | |
| 194 | + pages = {127--142}, | |
| 195 | + year = {2004}, | |
| 196 | + doi = {10.1257/0895330041371277} | |
| 197 | +} | |
| 198 | + | |
| 199 | +@article{ottaviani2015price, | |
| 200 | + author = {Ottaviani, Marco and S{\o}rensen, Peter Norman}, | |
| 201 | + title = {Price Reaction to Information with Heterogeneous Beliefs and Wealth Effects: Underreaction, Momentum, and Reversal}, | |
| 202 | + journal = {American Economic Review}, | |
| 203 | + volume = {105}, | |
| 204 | + number = {1}, | |
| 205 | + pages = {1--34}, | |
| 206 | + year = {2015}, | |
| 207 | + doi = {10.1257/aer.20120881} | |
| 208 | +} | |
| 209 | + | |
| 210 | +@article{hanson2003combinatorial, | |
| 211 | + author = {Hanson, Robin}, | |
| 212 | + title = {Combinatorial Information Market Design}, | |
| 213 | + journal = {Information Systems Frontiers}, | |
| 214 | + volume = {5}, | |
| 215 | + number = {1}, | |
| 216 | + pages = {107--119}, | |
| 217 | + year = {2003}, | |
| 218 | + doi = {10.1023/A:1022058209073} | |
| 219 | +} | |
| 220 | + | |
| 221 | +@article{hanson2006manipulation, | |
| 222 | + author = {Hanson, Robin and Oprea, Ryan and Porter, David}, | |
| 223 | + title = {Information Aggregation and Manipulation in an Experimental Market}, | |
| 224 | + journal = {Journal of Economic Behavior \& Organization}, | |
| 225 | + volume = {60}, | |
| 226 | + number = {4}, | |
| 227 | + pages = {449--459}, | |
| 228 | + year = {2006}, | |
| 229 | + doi = {10.1016/j.jebo.2004.09.011} | |
| 230 | +} | |
| 231 | + | |
| 232 | +@techreport{tetlock2008liquidity, | |
| 233 | + author = {Tetlock, Paul C.}, | |
| 234 | + title = {Liquidity and Prediction Market Efficiency}, | |
| 235 | + institution = {SSRN}, | |
| 236 | + type = {Working Paper}, | |
| 237 | + year = {2008}, | |
| 238 | + doi = {10.2139/ssrn.929916} | |
| 239 | +} | |
| 240 | + | |
| 241 | +@article{croxson2014information, | |
| 242 | + author = {Croxson, Karen and Reade, J. James}, | |
| 243 | + title = {Information and Efficiency: Goal Arrival in Soccer Betting}, | |
| 244 | + journal = {Economic Journal}, | |
| 245 | + volume = {124}, | |
| 246 | + number = {575}, | |
| 247 | + pages = {62--91}, | |
| 248 | + year = {2014}, | |
| 249 | + doi = {10.1111/ecoj.12033} | |
| 250 | +} | |
| 251 | + | |
| 252 | +@techreport{ng2025price, | |
| 253 | + author = {Ng, Hunter and Peng, Lin and Tao, Yubo and Zhou, Dexin}, | |
| 254 | + title = {Price Discovery and Trading in Modern Prediction Markets}, | |
| 255 | + institution = {SSRN}, | |
| 256 | + type = {Working Paper}, | |
| 257 | + number = {5331995}, | |
| 258 | + year = {2025}, | |
| 259 | + doi = {10.2139/ssrn.5331995} | |
| 260 | +} | |
| 261 | + | |
| 262 | +@techreport{chernov2025comovement, | |
| 263 | + author = {Chernov, Mikhail and Elenev, Vadim and Song, Dongho}, | |
| 264 | + title = {The Comovement of Voter Preferences: Insights from {U.S.} Presidential Election Prediction Markets Beyond Polls}, | |
| 265 | + institution = {National Bureau of Economic Research}, | |
| 266 | + type = {NBER Working Paper}, | |
| 267 | + number = {33339}, | |
| 268 | + year = {2025}, | |
| 269 | + doi = {10.3386/w33339} | |
| 270 | +} | |
| 271 | + | |
| 272 | +@techreport{reichenbach2025exploring, | |
| 273 | + author = {Reichenbach, Felix and Walther, Martin}, | |
| 274 | + title = {Exploring Decentralized Prediction Markets: Accuracy, Skill, and Bias on {Polymarket}}, | |
| 275 | + institution = {SSRN}, | |
| 276 | + type = {Working Paper}, | |
| 277 | + number = {5910522}, | |
| 278 | + year = {2025}, | |
| 279 | + doi = {10.2139/ssrn.5910522} | |
| 280 | +} | |
| 281 | + | |
| 282 | +% ------------------------------------------- monetary policy announcements ---- | |
| 283 | +@article{kuttner2001monetary, | |
| 284 | + author = {Kuttner, Kenneth N.}, | |
| 285 | + title = {Monetary Policy Surprises and Interest Rates: Evidence from the {Fed} Funds Futures Market}, | |
| 286 | + journal = {Journal of Monetary Economics}, | |
| 287 | + volume = {47}, | |
| 288 | + number = {3}, | |
| 289 | + pages = {523--544}, | |
| 290 | + year = {2001}, | |
| 291 | + doi = {10.1016/S0304-3932(01)00055-1} | |
| 292 | +} | |
| 293 | + | |
| 294 | +@article{gurkaynak2005actions, | |
| 295 | + author = {G{\"u}rkaynak, Refet S. and Sack, Brian and Swanson, Eric T.}, | |
| 296 | + title = {Do Actions Speak Louder Than Words? {The} Response of Asset Prices to Monetary Policy Actions and Statements}, | |
| 297 | + journal = {International Journal of Central Banking}, | |
| 298 | + volume = {1}, | |
| 299 | + number = {1}, | |
| 300 | + pages = {55--93}, | |
| 301 | + year = {2005} | |
| 302 | +} | |
| 303 | + | |
| 304 | +@article{bernanke2005explains, | |
| 305 | + author = {Bernanke, Ben S. and Kuttner, Kenneth N.}, | |
| 306 | + title = {What Explains the Stock Market's Reaction to {Federal Reserve} Policy?}, | |
| 307 | + journal = {Journal of Finance}, | |
| 308 | + volume = {60}, | |
| 309 | + number = {3}, | |
| 310 | + pages = {1221--1257}, | |
| 311 | + year = {2005}, | |
| 312 | + doi = {10.1111/j.1540-6261.2005.00760.x} | |
| 313 | +} | |
| 314 | + | |
| 315 | +@article{piazzesi2008futures, | |
| 316 | + author = {Piazzesi, Monika and Swanson, Eric T.}, | |
| 317 | + title = {Futures Prices as Risk-Adjusted Forecasts of Monetary Policy}, | |
| 318 | + journal = {Journal of Monetary Economics}, | |
| 319 | + volume = {55}, | |
| 320 | + number = {4}, | |
| 321 | + pages = {677--691}, | |
| 322 | + year = {2008}, | |
| 323 | + doi = {10.1016/j.jmoneco.2008.04.003} | |
| 324 | +} | |
| 325 | + | |
| 326 | +@article{nakamura2018high, | |
| 327 | + author = {Nakamura, Emi and Steinsson, J{\'o}n}, | |
| 328 | + title = {High-Frequency Identification of Monetary Non-Neutrality: The Information Effect}, | |
| 329 | + journal = {Quarterly Journal of Economics}, | |
| 330 | + volume = {133}, | |
| 331 | + number = {3}, | |
| 332 | + pages = {1283--1330}, | |
| 333 | + year = {2018}, | |
| 334 | + doi = {10.1093/qje/qjy004} | |
| 335 | +} | |
| 336 | + | |
| 337 | +@article{rigobon2004impact, | |
| 338 | + author = {Rigobon, Roberto and Sack, Brian}, | |
| 339 | + title = {The Impact of Monetary Policy on Asset Prices}, | |
| 340 | + journal = {Journal of Monetary Economics}, | |
| 341 | + volume = {51}, | |
| 342 | + number = {8}, | |
| 343 | + pages = {1553--1575}, | |
| 344 | + year = {2004}, | |
| 345 | + doi = {10.1016/j.jmoneco.2004.02.004} | |
| 346 | +} | |
| 347 | + | |
| 348 | +@article{ederington1993markets, | |
| 349 | + author = {Ederington, Louis H. and Lee, Jae Ha}, | |
| 350 | + title = {How Markets Process Information: News Releases and Volatility}, | |
| 351 | + journal = {Journal of Finance}, | |
| 352 | + volume = {48}, | |
| 353 | + number = {4}, | |
| 354 | + pages = {1161--1191}, | |
| 355 | + year = {1993}, | |
| 356 | + doi = {10.1111/j.1540-6261.1993.tb04750.x} | |
| 357 | +} | |
| 358 | + | |
| 359 | +@article{andersen2003micro, | |
| 360 | + author = {Andersen, Torben G. and Bollerslev, Tim and Diebold, Francis X. and Vega, Clara}, | |
| 361 | + title = {Micro Effects of Macro Announcements: Real-Time Price Discovery in Foreign Exchange}, | |
| 362 | + journal = {American Economic Review}, | |
| 363 | + volume = {93}, | |
| 364 | + number = {1}, | |
| 365 | + pages = {38--62}, | |
| 366 | + year = {2003}, | |
| 367 | + doi = {10.1257/000282803321455151} | |
| 368 | +} | |
| 369 | + | |
| 370 | +@article{french1986stock, | |
| 371 | + author = {French, Kenneth R. and Roll, Richard}, | |
| 372 | + title = {Stock Return Variances: The Arrival of Information and the Reaction of Traders}, | |
| 373 | + journal = {Journal of Financial Economics}, | |
| 374 | + volume = {17}, | |
| 375 | + number = {1}, | |
| 376 | + pages = {5--26}, | |
| 377 | + year = {1986}, | |
| 378 | + doi = {10.1016/0304-405X(86)90004-8} | |
| 379 | +} | |
| 380 | + | |
| 381 | +% ----------------------------------------------- microstructure, discovery ---- | |
| 98 | 382 | @article{hasbrouck1995one, |
| 99 | 383 | author = {Hasbrouck, Joel}, |
| 100 | 384 | title = {One Security, Many Markets: Determining the Contributions to Price Discovery}, |
@@ -102,23 +386,59 @@ | ||
| 102 | 386 | volume = {50}, |
| 103 | 387 | number = {4}, |
| 104 | 388 | pages = {1175--1199}, |
| 105 | − year = {1995} | |
| 389 | + year = {1995}, | |
| 390 | + doi = {10.1111/j.1540-6261.1995.tb04054.x} | |
| 106 | 391 | } |
| 107 | 392 | |
| 108 | 393 | @article{hasbrouck2003intraday, |
| 109 | 394 | author = {Hasbrouck, Joel}, |
| 110 | − title = {Intraday Price Formation in U.S. Equity Index Markets}, | |
| 395 | + title = {Intraday Price Formation in {U.S.} Equity Index Markets}, | |
| 111 | 396 | journal = {Journal of Finance}, |
| 112 | 397 | volume = {58}, |
| 113 | 398 | number = {6}, |
| 114 | 399 | pages = {2375--2400}, |
| 115 | − year = {2003} | |
| 400 | + year = {2003}, | |
| 401 | + doi = {10.1046/j.1540-6261.2003.00609.x} | |
| 402 | +} | |
| 403 | + | |
| 404 | +@article{gonzalo1995estimation, | |
| 405 | + author = {Gonzalo, Jes{\'u}s and Granger, Clive W. J.}, | |
| 406 | + title = {Estimation of Common Long-Memory Components in Cointegrated Systems}, | |
| 407 | + journal = {Journal of Business \& Economic Statistics}, | |
| 408 | + volume = {13}, | |
| 409 | + number = {1}, | |
| 410 | + pages = {27--35}, | |
| 411 | + year = {1995}, | |
| 412 | + doi = {10.1080/07350015.1995.10524576} | |
| 413 | +} | |
| 414 | + | |
| 415 | +@article{baillie2002price, | |
| 416 | + author = {Baillie, Richard T. and Booth, G. Geoffrey and Tse, Yiuman and Zabotina, Tatyana}, | |
| 417 | + title = {Price Discovery and Common Factor Models}, | |
| 418 | + journal = {Journal of Financial Markets}, | |
| 419 | + volume = {5}, | |
| 420 | + number = {3}, | |
| 421 | + pages = {309--321}, | |
| 422 | + year = {2002}, | |
| 423 | + doi = {10.1016/S1386-4181(02)00027-7} | |
| 424 | +} | |
| 425 | + | |
| 426 | +@article{yan2010structural, | |
| 427 | + author = {Yan, Bingcheng and Zivot, Eric}, | |
| 428 | + title = {A Structural Analysis of Price Discovery Measures}, | |
| 429 | + journal = {Journal of Financial Markets}, | |
| 430 | + volume = {13}, | |
| 431 | + number = {1}, | |
| 432 | + pages = {1--19}, | |
| 433 | + year = {2010}, | |
| 434 | + doi = {10.1016/j.finmar.2009.09.003} | |
| 116 | 435 | } |
| 117 | 436 | |
| 118 | 437 | @book{ohara1995market, |
| 119 | 438 | author = {O'Hara, Maureen}, |
| 120 | 439 | title = {Market Microstructure Theory}, |
| 121 | − publisher = {Blackwell Publishers}, | |
| 440 | + publisher = {Blackwell}, | |
| 441 | + address = {Cambridge, MA}, | |
| 122 | 442 | year = {1995} |
| 123 | 443 | } |
| 124 | 444 | |
@@ -129,7 +449,8 @@ | ||
| 129 | 449 | volume = {3}, |
| 130 | 450 | number = {3}, |
| 131 | 451 | pages = {205--258}, |
| 132 | − year = {2000} | |
| 452 | + year = {2000}, | |
| 453 | + doi = {10.1016/S1386-4181(00)00007-0} | |
| 133 | 454 | } |
| 134 | 455 | |
| 135 | 456 | @article{kyle1985continuous, |
@@ -139,7 +460,8 @@ | ||
| 139 | 460 | volume = {53}, |
| 140 | 461 | number = {6}, |
| 141 | 462 | pages = {1315--1335}, |
| 142 | − year = {1985} | |
| 463 | + year = {1985}, | |
| 464 | + doi = {10.2307/1913210} | |
| 143 | 465 | } |
| 144 | 466 | |
| 145 | 467 | @article{glosten1985bid, |
@@ -149,7 +471,30 @@ | ||
| 149 | 471 | volume = {14}, |
| 150 | 472 | number = {1}, |
| 151 | 473 | pages = {71--100}, |
| 152 | − year = {1985} | |
| 474 | + year = {1985}, | |
| 475 | + doi = {10.1016/0304-405X(85)90044-3} | |
| 476 | +} | |
| 477 | + | |
| 478 | +@article{roll1984simple, | |
| 479 | + author = {Roll, Richard}, | |
| 480 | + title = {A Simple Implicit Measure of the Effective Bid--Ask Spread in an Efficient Market}, | |
| 481 | + journal = {Journal of Finance}, | |
| 482 | + volume = {39}, | |
| 483 | + number = {4}, | |
| 484 | + pages = {1127--1139}, | |
| 485 | + year = {1984}, | |
| 486 | + doi = {10.1111/j.1540-6261.1984.tb03897.x} | |
| 487 | +} | |
| 488 | + | |
| 489 | +@article{amihud2002illiquidity, | |
| 490 | + author = {Amihud, Yakov}, | |
| 491 | + title = {Illiquidity and Stock Returns: Cross-Section and Time-Series Effects}, | |
| 492 | + journal = {Journal of Financial Markets}, | |
| 493 | + volume = {5}, | |
| 494 | + number = {1}, | |
| 495 | + pages = {31--56}, | |
| 496 | + year = {2002}, | |
| 497 | + doi = {10.1016/S1386-4181(01)00024-6} | |
| 153 | 498 | } |
| 154 | 499 | |
| 155 | 500 | @article{mackinlay1997event, |
@@ -162,44 +507,47 @@ | ||
| 162 | 507 | year = {1997} |
| 163 | 508 | } |
| 164 | 509 | |
| 165 | −@article{andersen2001distribution, | |
| 166 | − author = {Andersen, Torben G. and Bollerslev, Tim and Diebold, Francis X. and Labys, Paul}, | |
| 167 | − title = {The Distribution of Realized Exchange Rate Volatility}, | |
| 168 | − journal = {Journal of the American Statistical Association}, | |
| 169 | − volume = {96}, | |
| 170 | − number = {453}, | |
| 171 | − pages = {42--55}, | |
| 172 | − year = {2001} | |
| 510 | +% ------------------------------------------------------- crypto / DeFi ---- | |
| 511 | +@book{harvey2021defi, | |
| 512 | + author = {Harvey, Campbell R. and Ramachandran, Ashwin and Santoro, Joey}, | |
| 513 | + title = {{DeFi} and the Future of Finance}, | |
| 514 | + publisher = {John Wiley \& Sons}, | |
| 515 | + address = {Hoboken}, | |
| 516 | + year = {2021} | |
| 173 | 517 | } |
| 174 | 518 | |
| 175 | −@article{andersen2003modeling, | |
| 176 | − author = {Andersen, Torben G. and Bollerslev, Tim and Diebold, Francis X. and Labys, Paul}, | |
| 177 | − title = {Modeling and Forecasting Realized Volatility}, | |
| 178 | − journal = {Econometrica}, | |
| 179 | − volume = {71}, | |
| 519 | +@article{makarov2020trading, | |
| 520 | + author = {Makarov, Igor and Schoar, Antoinette}, | |
| 521 | + title = {Trading and Arbitrage in Cryptocurrency Markets}, | |
| 522 | + journal = {Journal of Financial Economics}, | |
| 523 | + volume = {135}, | |
| 180 | 524 | number = {2}, |
| 181 | − pages = {579--625}, | |
| 182 | − year = {2003} | |
| 525 | + pages = {293--319}, | |
| 526 | + year = {2020}, | |
| 527 | + doi = {10.1016/j.jfineco.2019.07.001} | |
| 183 | 528 | } |
| 184 | 529 | |
| 185 | −@article{barndorff2002econometric, | |
| 186 | − author = {Barndorff-Nielsen, Ole E. and Shephard, Neil}, | |
| 187 | − title = {Econometric Analysis of Realized Volatility and Its Use in Estimating Stochastic Volatility Models}, | |
| 188 | − journal = {Journal of the Royal Statistical Society: Series B}, | |
| 189 | − volume = {64}, | |
| 190 | − number = {2}, | |
| 191 | − pages = {253--280}, | |
| 192 | − year = {2002} | |
| 530 | +@article{cong2023wash, | |
| 531 | + author = {Cong, Lin William and Li, Xi and Tang, Ke and Yang, Yang}, | |
| 532 | + title = {Crypto Wash Trading}, | |
| 533 | + journal = {Management Science}, | |
| 534 | + volume = {69}, | |
| 535 | + number = {11}, | |
| 536 | + pages = {6427--6454}, | |
| 537 | + year = {2023}, | |
| 538 | + doi = {10.1287/mnsc.2021.02709} | |
| 193 | 539 | } |
| 194 | 540 | |
| 195 | −@article{corsi2009simple, | |
| 196 | − author = {Corsi, Fulvio}, | |
| 197 | − title = {A Simple Approximate Long-Memory Model of Realized Volatility}, | |
| 198 | − journal = {Journal of Financial Econometrics}, | |
| 199 | − volume = {7}, | |
| 200 | − number = {2}, | |
| 201 | − pages = {174--196}, | |
| 202 | − year = {2009} | |
| 541 | +% ------------------------------------------------------------ econometrics ---- | |
| 542 | +@article{engle1982autoregressive, | |
| 543 | + author = {Engle, Robert F.}, | |
| 544 | + title = {Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of {United Kingdom} Inflation}, | |
| 545 | + journal = {Econometrica}, | |
| 546 | + volume = {50}, | |
| 547 | + number = {4}, | |
| 548 | + pages = {987--1007}, | |
| 549 | + year = {1982}, | |
| 550 | + doi = {10.2307/1912773} | |
| 203 | 551 | } |
| 204 | 552 | |
| 205 | 553 | @article{bollerslev1986generalized, |
@@ -209,27 +557,8 @@ | ||
| 209 | 557 | volume = {31}, |
| 210 | 558 | number = {3}, |
| 211 | 559 | pages = {307--327}, |
| 212 | − year = {1986} | |
| 213 | −} | |
| 214 | − | |
| 215 | −@article{engle1982autoregressive, | |
| 216 | − author = {Engle, Robert F.}, | |
| 217 | − title = {Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of United Kingdom Inflation}, | |
| 218 | − journal = {Econometrica}, | |
| 219 | − volume = {50}, | |
| 220 | − number = {4}, | |
| 221 | − pages = {987--1007}, | |
| 222 | − year = {1982} | |
| 223 | −} | |
| 224 | − | |
| 225 | −@article{nelson1991conditional, | |
| 226 | − author = {Nelson, Daniel B.}, | |
| 227 | − title = {Conditional Heteroskedasticity in Asset Returns: A New Approach}, | |
| 228 | − journal = {Econometrica}, | |
| 229 | − volume = {59}, | |
| 230 | − number = {2}, | |
| 231 | − pages = {347--370}, | |
| 232 | − year = {1991} | |
| 560 | + year = {1986}, | |
| 561 | + doi = {10.1016/0304-4076(86)90063-1} | |
| 233 | 562 | } |
| 234 | 563 | |
| 235 | 564 | @article{glosten1993relation, |
@@ -239,114 +568,52 @@ | ||
| 239 | 568 | volume = {48}, |
| 240 | 569 | number = {5}, |
| 241 | 570 | pages = {1779--1801}, |
| 242 | − year = {1993} | |
| 243 | −} | |
| 244 | − | |
| 245 | −@article{fama1970efficient, | |
| 246 | − author = {Fama, Eugene F.}, | |
| 247 | − title = {Efficient Capital Markets: A Review of Theory and Empirical Work}, | |
| 248 | − journal = {Journal of Finance}, | |
| 249 | − volume = {25}, | |
| 250 | − number = {2}, | |
| 251 | − pages = {383--417}, | |
| 252 | − year = {1970} | |
| 253 | −} | |
| 254 | − | |
| 255 | −@article{grossman1980impossibility, | |
| 256 | − author = {Grossman, Sanford J. and Stiglitz, Joseph E.}, | |
| 257 | − title = {On the Impossibility of Informationally Efficient Markets}, | |
| 258 | − journal = {American Economic Review}, | |
| 259 | − volume = {70}, | |
| 260 | − number = {3}, | |
| 261 | − pages = {393--408}, | |
| 262 | − year = {1980} | |
| 571 | + year = {1993}, | |
| 572 | + doi = {10.1111/j.1540-6261.1993.tb05128.x} | |
| 263 | 573 | } |
| 264 | 574 | |
| 265 | −@article{hayek1945use, | |
| 266 | − author = {Hayek, Friedrich A.}, | |
| 267 | − title = {The Use of Knowledge in Society}, | |
| 268 | − journal = {American Economic Review}, | |
| 269 | − volume = {35}, | |
| 270 | − number = {4}, | |
| 271 | − pages = {519--530}, | |
| 272 | − year = {1945} | |
| 273 | −} | |
| 274 | − | |
| 275 | −@article{roll1984simple, | |
| 276 | − author = {Roll, Richard}, | |
| 277 | − title = {A Simple Implicit Measure of the Effective Bid--Ask Spread in an Efficient Market}, | |
| 278 | − journal = {Journal of Finance}, | |
| 279 | − volume = {39}, | |
| 280 | − number = {4}, | |
| 281 | − pages = {1127--1139}, | |
| 282 | − year = {1984} | |
| 283 | −} | |
| 284 | − | |
| 285 | −@article{amihud2002illiquidity, | |
| 286 | − author = {Amihud, Yakov}, | |
| 287 | − title = {Illiquidity and Stock Returns: Cross-Section and Time-Series Effects}, | |
| 288 | − journal = {Journal of Financial Markets}, | |
| 289 | − volume = {5}, | |
| 290 | − number = {1}, | |
| 291 | − pages = {31--56}, | |
| 292 | − year = {2002} | |
| 293 | −} | |
| 294 | − | |
| 295 | −@article{harvey2021defi, | |
| 296 | − author = {Harvey, Campbell R. and Ramachandran, Ashwin and Santoro, Joey}, | |
| 297 | − title = {{DeFi} and the Future of Finance}, | |
| 298 | − publisher = {John Wiley \& Sons}, | |
| 299 | − year = {2021} | |
| 300 | −} | |
| 301 | − | |
| 302 | −@article{makarov2020trading, | |
| 303 | − author = {Makarov, Igor and Schoar, Antoinette}, | |
| 304 | − title = {Trading and Arbitrage in Cryptocurrency Markets}, | |
| 305 | − journal = {Journal of Financial Economics}, | |
| 306 | − volume = {135}, | |
| 575 | +@article{nelson1991conditional, | |
| 576 | + author = {Nelson, Daniel B.}, | |
| 577 | + title = {Conditional Heteroskedasticity in Asset Returns: A New Approach}, | |
| 578 | + journal = {Econometrica}, | |
| 579 | + volume = {59}, | |
| 307 | 580 | number = {2}, |
| 308 | − pages = {293--319}, | |
| 309 | − year = {2020} | |
| 310 | −} | |
| 311 | − | |
| 312 | −@article{cong2021tokenomics, | |
| 313 | − author = {Cong, Lin William and Li, Ye and Wang, Neng}, | |
| 314 | − title = {Tokenomics: Dynamic Adoption and Valuation}, | |
| 315 | − journal = {Review of Financial Studies}, | |
| 316 | − volume = {34}, | |
| 317 | − number = {3}, | |
| 318 | − pages = {1105--1155}, | |
| 319 | − year = {2021} | |
| 581 | + pages = {347--370}, | |
| 582 | + year = {1991}, | |
| 583 | + doi = {10.2307/2938260} | |
| 320 | 584 | } |
| 321 | 585 | |
| 322 | −@article{patell1976corporate, | |
| 323 | − author = {Patell, James M.}, | |
| 324 | − title = {Corporate Forecasts of Earnings Per Share and Stock Price Behavior: Empirical Test}, | |
| 325 | − journal = {Journal of Accounting Research}, | |
| 326 | − volume = {14}, | |
| 586 | +@article{corsi2009simple, | |
| 587 | + author = {Corsi, Fulvio}, | |
| 588 | + title = {A Simple Approximate Long-Memory Model of Realized Volatility}, | |
| 589 | + journal = {Journal of Financial Econometrics}, | |
| 590 | + volume = {7}, | |
| 327 | 591 | number = {2}, |
| 328 | − pages = {246--276}, | |
| 329 | − year = {1976} | |
| 592 | + pages = {174--196}, | |
| 593 | + year = {2009}, | |
| 594 | + doi = {10.1093/jjfinec/nbp001} | |
| 330 | 595 | } |
| 331 | 596 | |
| 332 | −@article{boehmer1991event, | |
| 333 | − author = {Boehmer, Ekkehart and Musumeci, Jim and Poulsen, Annette B.}, | |
| 334 | − title = {Event-Study Methodology under Conditions of Event-Induced Variance}, | |
| 335 | − journal = {Journal of Financial Economics}, | |
| 336 | − volume = {30}, | |
| 337 | − number = {2}, | |
| 338 | − pages = {253--272}, | |
| 339 | − year = {1991} | |
| 597 | +@article{andersen2001distribution, | |
| 598 | + author = {Andersen, Torben G. and Bollerslev, Tim and Diebold, Francis X. and Labys, Paul}, | |
| 599 | + title = {The Distribution of Realized Exchange Rate Volatility}, | |
| 600 | + journal = {Journal of the American Statistical Association}, | |
| 601 | + volume = {96}, | |
| 602 | + number = {453}, | |
| 603 | + pages = {42--55}, | |
| 604 | + year = {2001}, | |
| 605 | + doi = {10.1198/016214501750332965} | |
| 340 | 606 | } |
| 341 | 607 | |
| 342 | −@article{hansen1982generalized, | |
| 343 | − author = {Hansen, Lars Peter}, | |
| 344 | − title = {Large Sample Properties of Generalized Method of Moments Estimators}, | |
| 608 | +@article{andersen2003modeling, | |
| 609 | + author = {Andersen, Torben G. and Bollerslev, Tim and Diebold, Francis X. and Labys, Paul}, | |
| 610 | + title = {Modeling and Forecasting Realized Volatility}, | |
| 345 | 611 | journal = {Econometrica}, |
| 346 | − volume = {50}, | |
| 347 | − number = {4}, | |
| 348 | − pages = {1029--1054}, | |
| 349 | − year = {1982} | |
| 612 | + volume = {71}, | |
| 613 | + number = {2}, | |
| 614 | + pages = {579--625}, | |
| 615 | + year = {2003}, | |
| 616 | + doi = {10.1111/1468-0262.00418} | |
| 350 | 617 | } |
| 351 | 618 | |
| 352 | 619 | @article{granger1969investigating, |
@@ -356,7 +623,8 @@ | ||
| 356 | 623 | volume = {37}, |
| 357 | 624 | number = {3}, |
| 358 | 625 | pages = {424--438}, |
| 359 | − year = {1969} | |
| 626 | + year = {1969}, | |
| 627 | + doi = {10.2307/1912791} | |
| 360 | 628 | } |
| 361 | 629 | |
| 362 | 630 | @article{sims1980macroeconomics, |
@@ -366,37 +634,39 @@ | ||
| 366 | 634 | volume = {48}, |
| 367 | 635 | number = {1}, |
| 368 | 636 | pages = {1--48}, |
| 369 | − year = {1980} | |
| 637 | + year = {1980}, | |
| 638 | + doi = {10.2307/1912017} | |
| 370 | 639 | } |
| 371 | 640 | |
| 372 | −@article{johansen1991estimation, | |
| 373 | − author = {Johansen, S{\o}ren}, | |
| 374 | − title = {Estimation and Hypothesis Testing of Cointegration Vectors in Gaussian Vector Autoregressive Models}, | |
| 375 | − journal = {Econometrica}, | |
| 376 | − volume = {59}, | |
| 377 | − number = {6}, | |
| 378 | − pages = {1551--1580}, | |
| 379 | − year = {1991} | |
| 641 | +@book{lutkepohl2005new, | |
| 642 | + author = {L{\"u}tkepohl, Helmut}, | |
| 643 | + title = {New Introduction to Multiple Time Series Analysis}, | |
| 644 | + publisher = {Springer}, | |
| 645 | + address = {Berlin}, | |
| 646 | + year = {2005}, | |
| 647 | + doi = {10.1007/978-3-540-27752-1} | |
| 380 | 648 | } |
| 381 | 649 | |
| 382 | −@article{schwarz1978estimating, | |
| 383 | − author = {Schwarz, Gideon}, | |
| 384 | − title = {Estimating the Dimension of a Model}, | |
| 385 | − journal = {Annals of Statistics}, | |
| 386 | − volume = {6}, | |
| 387 | − number = {2}, | |
| 388 | − pages = {461--464}, | |
| 389 | − year = {1978} | |
| 650 | +@article{dickey1979distribution, | |
| 651 | + author = {Dickey, David A. and Fuller, Wayne A.}, | |
| 652 | + title = {Distribution of the Estimators for Autoregressive Time Series with a Unit Root}, | |
| 653 | + journal = {Journal of the American Statistical Association}, | |
| 654 | + volume = {74}, | |
| 655 | + number = {366}, | |
| 656 | + pages = {427--431}, | |
| 657 | + year = {1979}, | |
| 658 | + doi = {10.1080/01621459.1979.10482531} | |
| 390 | 659 | } |
| 391 | 660 | |
| 392 | −@article{akaike1974new, | |
| 393 | − author = {Akaike, Hirotugu}, | |
| 394 | − title = {A New Look at the Statistical Model Identification}, | |
| 395 | − journal = {IEEE Transactions on Automatic Control}, | |
| 396 | − volume = {19}, | |
| 397 | − number = {6}, | |
| 398 | − pages = {716--723}, | |
| 399 | − year = {1974} | |
| 661 | +@article{jarque1980efficient, | |
| 662 | + author = {Jarque, Carlos M. and Bera, Anil K.}, | |
| 663 | + title = {Efficient Tests for Normality, Homoscedasticity and Serial Independence of Regression Residuals}, | |
| 664 | + journal = {Economics Letters}, | |
| 665 | + volume = {6}, | |
| 666 | + number = {3}, | |
| 667 | + pages = {255--259}, | |
| 668 | + year = {1980}, | |
| 669 | + doi = {10.1016/0165-1765(80)90024-5} | |
| 400 | 670 | } |
| 401 | 671 | |
| 402 | 672 | @article{newey1987simple, |
@@ -406,7 +676,8 @@ | ||
| 406 | 676 | volume = {55}, |
| 407 | 677 | number = {3}, |
| 408 | 678 | pages = {703--708}, |
| 409 | − year = {1987} | |
| 679 | + year = {1987}, | |
| 680 | + doi = {10.2307/1913610} | |
| 410 | 681 | } |
| 411 | 682 | |
| 412 | 683 | @article{white1980heteroskedasticity, |
@@ -416,54 +687,28 @@ | ||
| 416 | 687 | volume = {48}, |
| 417 | 688 | number = {4}, |
| 418 | 689 | pages = {817--838}, |
| 419 | − year = {1980} | |
| 420 | −} | |
| 421 | − | |
| 422 | −@article{petersen2009estimating, | |
| 423 | − author = {Petersen, Mitchell A.}, | |
| 424 | − title = {Estimating Standard Errors in Finance Panel Data Sets: Comparing Approaches}, | |
| 425 | − journal = {Review of Financial Studies}, | |
| 426 | − volume = {22}, | |
| 427 | − number = {1}, | |
| 428 | − pages = {435--480}, | |
| 429 | − year = {2009} | |
| 430 | −} | |
| 431 | − | |
| 432 | −@article{fama1993common, | |
| 433 | − author = {Fama, Eugene F. and French, Kenneth R.}, | |
| 434 | − title = {Common Risk Factors in the Returns on Stocks and Bonds}, | |
| 435 | − journal = {Journal of Financial Economics}, | |
| 436 | − volume = {33}, | |
| 437 | − number = {1}, | |
| 438 | − pages = {3--56}, | |
| 439 | − year = {1993} | |
| 440 | −} | |
| 441 | − | |
| 442 | −@article{diebold2012better, | |
| 443 | − author = {Diebold, Francis X. and Yilmaz, Kamil}, | |
| 444 | − title = {Better to Give than to Receive: Predictive Directional Measurement of Volatility Spillovers}, | |
| 445 | − journal = {International Journal of Forecasting}, | |
| 446 | − volume = {28}, | |
| 447 | − number = {1}, | |
| 448 | − pages = {57--66}, | |
| 449 | − year = {2012} | |
| 690 | + year = {1980}, | |
| 691 | + doi = {10.2307/1912934} | |
| 450 | 692 | } |
| 451 | 693 | |
| 452 | −@article{engle2002dynamic, | |
| 453 | − author = {Engle, Robert F.}, | |
| 454 | − title = {Dynamic Conditional Correlation: A Simple Class of Multivariate Generalized Autoregressive Conditional Heteroskedasticity Models}, | |
| 455 | − journal = {Journal of Business \& Economic Statistics}, | |
| 456 | − volume = {20}, | |
| 457 | − number = {3}, | |
| 458 | − pages = {339--350}, | |
| 459 | − year = {2002} | |
| 694 | +@article{akaike1974new, | |
| 695 | + author = {Akaike, Hirotugu}, | |
| 696 | + title = {A New Look at the Statistical Model Identification}, | |
| 697 | + journal = {IEEE Transactions on Automatic Control}, | |
| 698 | + volume = {19}, | |
| 699 | + number = {6}, | |
| 700 | + pages = {716--723}, | |
| 701 | + year = {1974}, | |
| 702 | + doi = {10.1109/TAC.1974.1100705} | |
| 460 | 703 | } |
| 461 | 704 | |
| 462 | −@article{hansen1997inference, | |
| 463 | − author = {Hansen, Bruce E.}, | |
| 464 | − title = {Inference in TAR Models}, | |
| 465 | − journal = {Studies in Nonlinear Dynamics \& Econometrics}, | |
| 466 | − volume = {2}, | |
| 467 | − number = {1}, | |
| 468 | − year = {1997} | |
| 705 | +@article{schwarz1978estimating, | |
| 706 | + author = {Schwarz, Gideon}, | |
| 707 | + title = {Estimating the Dimension of a Model}, | |
| 708 | + journal = {Annals of Statistics}, | |
| 709 | + volume = {6}, | |
| 710 | + number = {2}, | |
| 711 | + pages = {461--464}, | |
| 712 | + year = {1978}, | |
| 713 | + doi = {10.1214/aos/1176344136} | |
| 469 | 714 | } |
modified
paper/sections/conclusion.tex
+10 −32
@@ -1,44 +1,22 @@ | ||
| 1 | 1 | % ============================================================================ |
| 2 | −% Section 8: Conclusion | |
| 2 | +% Section 8: Discussion and Conclusion | |
| 3 | 3 | % ============================================================================ |
| 4 | −\section{Conclusion}\label{sec:conclusion} | |
| 4 | +\section{Discussion and Conclusion}\label{sec:conclusion} | |
| 5 | 5 | |
| 6 | −This paper has examined whether blockchain-based prediction markets satisfy the theoretical properties of Arrow--Debreu complete markets. Using data from Polymarket's Federal Reserve rate decision market (five mutually exclusive outcome contracts observed over 146 daily observations) and the 2024 U.S.\ Presidential Election market (17 candidate contracts observed over 307 daily observations), we have tested for market completeness, no-arbitrage pricing, information aggregation efficiency, and volatility dynamics. The results paint a coherent picture of prediction markets as effective, if imperfect, realizations of the Arrow--Debreu ideal. | |
| 6 | +\subsection{What the state prices show} | |
| 7 | 7 | |
| 8 | −\subsection{Summary of Findings} | |
| 8 | +Negative-risk events on Polymarket provide complete sets of state claims on well-defined macroeconomic and political outcomes, and this paper has used two of them to ask how the Arrow--Debreu pricing restrictions fare in a blockchain market. The answer is in three parts. The complete set of claims is priced at one dollar within the bounds that the platform's own mechanics make executable: the recorded sums of 1.017 (five Fed claims) and 1.015 (seventeen election claims) are statistically above one but economically within the half-spreads of the low-priced legs, they decline steadily towards resolution, they revert within days, and at the one order-book snapshot available the bid-side and ask-side sums bracket one. The normalised prices define a risk-neutral distribution over the June 2026 FOMC decision whose mean moved from $-15.5$ basis points to zero over six months, and that mean moves two to five times more, in variance terms, on FOMC and employment-report days than on other days, while weekend days carry about a third of weekday variance. And daily changes in that mean neither lead nor lag the Treasury, equity, volatility or cryptocurrency markets, although they are contemporaneously correlated with Treasury yields. | |
| 9 | 9 | |
| 10 | −Three principal findings emerge from the analysis. | |
| 10 | +Two interpretive points follow. First, the Arrow--Debreu metaphor is accurate but less demanding than it sounds. Completeness is a property of the contract design, not a finding; what the data confirm is the law of one price for the riskless complete set and the absence of exploitable deviations at the quotes. The one genuine departure from the frictionless benchmark---the complete set trades at one rather than at its discounted value---reflects the asymmetry of the executable arbitrage (the sell-side round trip settles immediately through the adapter, the buy-side requires holding to resolution) and the fact that collateral earns nothing on the platform. A trader who buys a complete set is lending at zero; the market prices this correctly by refusing to pay less than one for it. Second, the normalised prices are risk-neutral probabilities and nothing in the data identifies the physical ones. The literature on futures-implied policy expectations has shown that the risk premium in such measures is large and time-varying \citep{piazzesi2008futures}; there is no reason to believe the Polymarket measure is exempt, and our hypothesis tests are designed not to depend on the distinction. | |
| 11 | 11 | |
| 12 | −First, the Arrow--Debreu completeness conditions are approximately satisfied. The mean state price sum across the five Fed rate decision contracts is 1.0205, with a standard deviation of 0.0527 and all individual state prices remaining strictly positive throughout the sample. The 2\% overround is consistent with transaction costs, trading fees, and the time value of money, and the absence of a trend in the state price sum over time indicates that arbitrage forces effectively maintain the no-arbitrage condition. These results provide the first direct empirical evidence that a blockchain-based prediction market satisfies the structural conditions of the Arrow--Debreu framework. | |
| 12 | +\subsection{Manipulation, oracles and other threats} | |
| 13 | 13 | |
| 14 | −Second, prediction markets participate in a bidirectional information-sharing process with traditional financial markets. The Fed ``No Change'' contract returns Granger-cause VIX returns at the 1\% significance level ($F = 4.96$, $p = 0.001$), while VIX returns Granger-cause Fed contract returns at the 5\% level ($F = 2.73$, $p = 0.049$). Prediction market returns also Granger-cause SPY returns at the 10\% level ($F = 2.42$, $p = 0.072$). Event study analysis reveals economically significant cumulative abnormal returns around CPI releases, with the ``25 bps decrease'' contract exhibiting a CAR of $-0.999$ ($p = 0.095$), consistent with inflationary surprises reducing the perceived probability of rate cuts. These findings establish that prediction markets contribute meaningfully to the price discovery process for monetary policy expectations. | |
| 15 | − | |
| 16 | −Third, prediction market return volatility exhibits time-varying dynamics with a pronounced leverage effect. The GJR-GARCH model achieves an AIC of 894.19, substantially outperforming the symmetric GARCH(1,1) specification (AIC = 940.68). The leverage coefficient $\gamma_1 = 0.304$ indicates that negative return shocks increase conditional variance by approximately 30\% more than positive shocks of equal magnitude. The HAR-RV model achieves a modest but positive $R^2$ of 0.106, suggesting that the heterogeneous structure of realized volatility provides some predictive content for prediction market dynamics, albeit at a lower level than in traditional equity markets. | |
| 17 | − | |
| 18 | −\subsection{Implications} | |
| 19 | − | |
| 20 | −These findings carry implications for several constituencies. For financial economists, the results validate the Arrow--Debreu framework as a useful lens for analyzing prediction markets and demonstrate that the theoretical properties of complete markets can emerge in decentralized, blockchain-based trading environments. The presence of leverage effects in prediction market returns---a novel empirical finding---invites further investigation into the microstructural mechanisms that generate asymmetric volatility in state-contingent claims markets. | |
| 21 | − | |
| 22 | −For policymakers and regulators, the results suggest that blockchain-based prediction markets can serve as reliable sources of information about the market's assessment of future events. The finding that prediction market prices Granger-cause VIX returns implies that prediction markets capture information about policy uncertainty that is relevant for broader financial market conditions. Policymakers may find prediction market prices useful as supplements to traditional indicators such as federal funds futures, survey-based expectations measures, and options-implied probability distributions. | |
| 23 | − | |
| 24 | −For market participants and platform designers, the results highlight the importance of the neg-risk framework in enabling Arrow--Debreu completeness. The structural enforcement of mutual exclusivity and collective exhaustiveness---features built into Polymarket's contract design---ensures that the conditions for completeness are met by construction, leaving only the question of whether market forces (through arbitrage and information aggregation) push prices to levels consistent with the theory. The liquidity analysis reveals that microstructure quality is adequate for high-profile contracts but may be insufficient for low-volume or niche markets, suggesting scope for improvements in liquidity provision mechanisms. | |
| 25 | − | |
| 26 | −For the emerging literature on blockchain finance and decentralized markets \citep{harvey2021defi}, the results provide evidence that decentralized platforms can achieve levels of informational efficiency comparable to traditional financial markets, at least for markets with high participation and well-defined outcomes. This finding is noteworthy given the absence of centralized market makers, regulatory oversight, and many of the institutional mechanisms that are traditionally viewed as essential for market efficiency. | |
| 14 | +Three institutional risks deserve explicit mention because they bear on the external validity of any inference drawn from these prices. The first is concentrated position-taking. During the 2024 election a single trader operating several accounts was reported to have taken positions of some \$30 million on the Trump claim, and the platform's own prices moved with those purchases; theory and experiments suggest that such trades are absorbed when other participants anticipate them \citep{hanson2006manipulation}, but the daily data used here cannot separate information from flow, and our pricing results are in any case silent on whether the \emph{level} of any claim was right. The second is resolution risk. Polymarket outcomes are determined by UMA's optimistic oracle, in which disputed resolutions are settled by token-holder vote; in March 2025 a market on a U.S.--Ukraine minerals agreement was resolved against the apparent facts after a concentrated vote, and the platform declined to compensate holders. For the two markets studied here the resolution criteria---an FOMC statement and an election result---are as unambiguous as such criteria can be, but the possibility of an oracle dispute is a basis risk that is priced, if at all, in the small residual mass on improbable states. The third is volume. Reported volumes on unregulated blockchain venues can be inflated by wash trading \citep{cong2023wash}; we have used volume only descriptively, and the depth and spread evidence of Section~\ref{sec:results} is a better guide to the economic size of these markets than the headline figures. | |
| 27 | 15 | |
| 28 | 16 | \subsection{Limitations} |
| 29 | 17 | |
| 30 | −Several limitations of the analysis warrant acknowledgment. First, the sample size is relatively small: 146 observations for the Fed market and 307 for the election market. This limits the power of statistical tests, particularly the event study analysis, which relies on a small number of events (2 FOMC, 3 CPI, 3 election key dates). Larger samples, enabled by the growing number of prediction markets and longer operating histories, would permit more precise inference. | |
| 31 | − | |
| 32 | −Second, the use of daily closing prices precludes analysis of intraday price dynamics, which may be particularly informative around announcement events. High-frequency data from the Polymarket order book would enable more precise measurement of realized volatility, information shares, and the speed of price adjustment to news. Future research should explore the availability of tick-level data from blockchain transaction records. | |
| 33 | − | |
| 34 | −Third, the Arrow--Debreu framework is inherently a single-period model, while prediction markets trade continuously over multiple periods. The mapping between the multi-period trading environment and the single-period theory requires treating each trading day as a snapshot of the equilibrium, an approximation that may be strained during periods of rapid information arrival. | |
| 35 | − | |
| 36 | −Fourth, the analysis focuses on two specific markets (Fed rate decisions and U.S.\ presidential elections) that are among the highest-profile and most liquid contracts on Polymarket. The extent to which the completeness and efficiency findings generalize to less liquid, more niche markets---where information asymmetry may be greater and arbitrage mechanisms less effective---remains an open question. | |
| 37 | − | |
| 38 | −Fifth, we cannot definitively distinguish between risk-neutral probabilities and physical probabilities using market prices alone. The state prices recovered from prediction market contracts reflect both probability beliefs and risk premia, and disentangling these components would require either a structural model of trader preferences or independent measures of physical probabilities (such as survey data or historical base rates). | |
| 39 | − | |
| 40 | −\subsection{Directions for Future Research} | |
| 18 | +The study rests on two negative-risk groups observed at daily frequency. The Fed sample has 146 daily closes, thirteen scheduled releases and 110 trading days in common with U.S.\ markets; the announcement-day and lead--lag tests are correspondingly limited in power, and the absence of a detectable CPI effect or of a lead--lag relation is a statement about what daily data from one market can show, not a demonstration of informational equivalence. The pricing tests use recorded daily prices rather than executable quotes, and the single order-book snapshot cannot establish that the bounds held on every day. The alignment of the Polymarket close with the U.S.\ close leaves a residual window of three to four hours; a release in that window---there are none among the scheduled releases studied, but there could be unscheduled news---would appear in the Polymarket close of day $t$ and the U.S.\ close of day $t+1$. The discount factor is computed from the effective federal funds rate rather than from the opportunity cost actually faced by platform participants, which may be higher. And the volatility models of Appendix~\ref{app:volatility}, which an earlier version of this paper presented as a main result, turn out to be fragile: the ARCH-LM test does not reject homoskedasticity, the GARCH estimates sit on the boundary of the parameter space, and the asymmetry parameter is identified by two announcement days. | |
| 41 | 19 | |
| 42 | −Several avenues for future research merit consideration. First, the analysis could be extended to multi-outcome markets with larger state spaces (e.g., GDP growth brackets, election vote share ranges), which would enable tests of completeness with finer granularity and assessments of the risk-neutral density's shape and dynamics. Second, structural models of trader heterogeneity could be estimated using prediction market data to decompose state prices into probability and risk premium components, building on the theoretical framework of \citet{manski2006interpreting} and \citet{snowberg2013prediction}. Third, high-frequency analysis of order-book data could provide more precise measures of price discovery, information shares \citep{hasbrouck1995one}, and the determinants of liquidity provision in decentralized markets. Fourth, cross-platform comparisons---between Polymarket and other prediction markets, or between prediction markets and related instruments such as federal funds futures and options---would shed light on the competitive dynamics of price discovery across trading venues. Fifth, the welfare implications of prediction market completeness could be explored through the lens of general equilibrium theory, assessing whether the availability of state-contingent claims on prediction market platforms improves risk-sharing and welfare relative to economies without such markets. | |
| 20 | +\subsection{Conclusion} | |
| 43 | 21 | |
| 44 | −The emergence of blockchain-based prediction markets represents a natural experiment in the creation of Arrow--Debreu economies. This paper has shown that the experiment is succeeding, at least approximately: Polymarket's Federal Reserve rate decision market satisfies the structural conditions of complete markets, contributes to price discovery relative to traditional financial markets, and exhibits volatility dynamics consistent with informationally efficient pricing. As these markets continue to grow in volume, liquidity, and scope, they offer an increasingly valuable laboratory for studying the fundamental mechanisms of information aggregation, state-contingent pricing, and market efficiency. | |
| 22 | +Blockchain prediction markets make complete state spaces tradable and observable. For the two state spaces studied here, the prices behave as Arrow--Debreu theory says state prices should---they sum to the price of a riskless claim within executable bounds, they define a well-behaved risk-neutral distribution, and that distribution responds to scheduled information. They do not behave as some of the enthusiasm around prediction markets would suggest: they do not lead the Treasury or equity markets at the daily horizon, they are not physical probabilities, and their recorded sums should not be read as arbitrage opportunities without the order book in hand. The most promising next steps are intraday, with the futures market as the benchmark, and cross-sectional, across the many negative-risk groups the platform now lists; the framework and the calendar conventions set out here are directly applicable to both. | |
modified
paper/sections/data.tex
+14 −79
@@ -3,100 +3,35 @@ | ||
| 3 | 3 | % ============================================================================ |
| 4 | 4 | \section{Data}\label{sec:data} |
| 5 | 5 | |
| 6 | −This section describes the data sources, sample construction, variable definitions, and preliminary statistical properties of the prediction market and financial market data used in our analysis. | |
| 6 | +\subsection{Sources and sample} | |
| 7 | 7 | |
| 8 | −\subsection{Polymarket Data} | |
| 8 | +Polymarket data were retrieved on 22 May 2026 from the platform's public Gamma API (event and market metadata) and CLOB API (price histories and order books). For each contract we obtain the daily price history returned by the \texttt{prices-history} end-point at daily fidelity, which reports one price per calendar day, and for the five active Fed contracts a snapshot of the full order book at 08:51 UTC on 22 May 2026. Macroeconomic series come from FRED: the effective federal funds rate (DFF, daily), used for the discount factor, together with the CPI and unemployment series used to date releases. Daily closing prices of the SPDR S\&P~500 ETF (SPY), the CBOE Volatility Index (VIX), the CBOE ten-year Treasury yield index (TNX) and Bitcoin (BTC-USD) come from Yahoo Finance. FOMC, CPI and employment-report dates are those of the official 2025--2026 calendars. | |
| 9 | 9 | |
| 10 | −Polymarket is a blockchain-based prediction market platform that enables users to trade binary outcome contracts settled on the Polygon network. Each contract pays \$1 if the specified outcome occurs and \$0 otherwise, with prices reflecting the market's implied probability of the event. We collect daily closing prices, trading volumes, and liquidity measures for two sets of Polymarket contracts. | |
| 10 | +The primary sample is the negative-risk event ``Fed decision in June?'' (Gamma event 101772), created on 10 December 2025, a few hours after the December 2025 FOMC meeting lowered the target range by 25 basis points (the effective rate fell from 3.89 to 3.64 percent on 11 December). The five contracts are listed in Panel~A of Table~\ref{tab:descriptive_stats} with their cumulative volume (\$6.5 to \$8.8 million each, \$37.8 million in total) and resting liquidity at the snapshot (\$0.2 to \$1.8 million). The price histories span 10 December 2025 to 22 May 2026; after the alignment described below the panel contains 147 days on which all five contracts have a close, out of 164 calendar days, the remaining days having no recorded daily point for at least one contract. The first day carries the quotes seeded at listing---0.15, 0.50, 0.575, 0.25 and 0.095, summing to 1.57---and is excluded from all statistics, leaving $T=146$ daily closes, 42 of which fall on weekends. | |
| 11 | 11 | |
| 12 | −\subsubsection{Federal Reserve Rate Decision Market} | |
| 12 | +The secondary sample is the event ``Presidential Election Winner 2024'' (event 903193), with seventeen candidate contracts and \$3.7 billion of cumulative volume (Panel~B of Table~\ref{tab:descriptive_stats}). The histories span 4 January to 5 November 2024, the final close being the one recorded at 00:00 UTC on 6 November, that is, at 19:00 Eastern time on election day, before polls had closed in most states. The sample therefore ends \emph{before} the outcome was known; it contains 304 days with a complete set of seventeen closes after exclusion of the first. | |
| 13 | 13 | |
| 14 | −Our primary dataset consists of daily observations on five contracts corresponding to the possible outcomes of the Federal Reserve's June 2026 FOMC rate decision. The five mutually exclusive and collectively exhaustive states are: | |
| 15 | − | |
| 16 | −\begin{enumerate} | |
| 17 | − \item \textbf{50+ bps decrease}: The FOMC lowers the target federal funds rate by 50 basis points or more. | |
| 18 | − \item \textbf{25 bps decrease}: The FOMC lowers the target federal funds rate by exactly 25 basis points. | |
| 19 | − \item \textbf{No change}: The FOMC leaves the target federal funds rate unchanged. | |
| 20 | − \item \textbf{25 bps increase}: The FOMC raises the target federal funds rate by exactly 25 basis points. | |
| 21 | − \item \textbf{50+ bps increase}: The FOMC raises the target federal funds rate by 50 basis points or more. | |
| 22 | −\end{enumerate} | |
| 23 | − | |
| 24 | −The sample spans 146 daily observations from December 2025 through May 2026. These contracts are traded within Polymarket's neg-risk framework, which enforces mutual exclusivity and collective exhaustiveness: exactly one contract in the group resolves to \$1, and the remaining four resolve to \$0. This structural feature makes the Fed rate decision market an ideal testing ground for Arrow--Debreu completeness conditions. | |
| 25 | − | |
| 26 | −Table~\ref{tab:summary_stats} reports summary statistics for the five contracts. The ``No change'' contract has the highest mean price at 0.608, reflecting the market's prevailing expectation of policy inaction. The ``25 bps decrease'' contract has a mean price of 0.304, indicating meaningful probability mass on a single rate cut. The two extreme states (50+ bps decrease and 50+ bps increase) have mean prices of 0.058 and 0.016 respectively, consistent with the market assigning low probability to aggressive rate moves. All five price series exhibit non-normal distributions, as evidenced by significant Jarque--Bera statistics: the ``25 bps increase'' contract displays extreme positive skewness (3.98) and leptokurtosis (30.46), reflecting its status as a low-probability, high-surprise event. | |
| 27 | − | |
| 28 | −\input{../results/tables/table2_summary_stats.tex} | |
| 29 | − | |
| 30 | −\subsubsection{2024 U.S.\ Presidential Election Market} | |
| 31 | − | |
| 32 | −Our secondary dataset comprises daily observations on 17 candidate contracts from the 2024 U.S.\ Presidential Election market, observed over 307 trading days. This market provides a richer cross-sectional dimension for analyzing microstructure properties, liquidity dynamics, and multi-contract pricing relationships. The election market resolved on November 5, 2024, but Polymarket continued trading after the election date, providing observations on post-resolution price convergence. | |
| 33 | − | |
| 34 | −Donald Trump won the election, and his contract converged to a final price of 0.58---notably below the \$1 resolution value, indicating that some trading continued in the secondary market before final settlement. The election market's larger cross-section and longer time series complement the Fed rate decision market's cleaner state-space structure. | |
| 35 | − | |
| 36 | −\subsection{Financial Market Data} | |
| 37 | − | |
| 38 | −To assess the information linkages between prediction markets and traditional financial markets, we collect daily returns data for three benchmark assets: | |
| 39 | − | |
| 40 | −\begin{itemize} | |
| 41 | − \item \textbf{SPY}: The SPDR S\&P 500 ETF Trust, representing the U.S.\ equity market. Daily closing prices are obtained from standard financial data providers. | |
| 42 | − \item \textbf{BTC}: Bitcoin, the largest cryptocurrency by market capitalization. Bitcoin is included both as a benchmark for blockchain-native assets and as a proxy for speculative risk appetite in the digital asset ecosystem. | |
| 43 | − \item \textbf{VIX}: The CBOE Volatility Index, which measures the market's expectation of 30-day forward-looking volatility implied by S\&P 500 index options. The VIX is included as a proxy for aggregate uncertainty and risk aversion. | |
| 44 | −\end{itemize} | |
| 45 | − | |
| 46 | −Daily returns are computed as log returns: $r_t = \ln(P_t / P_{t-1})$, where $P_t$ is the closing price on day $t$. For the prediction market contracts, the same return definition is applied, with the convention that returns are undefined (and excluded) on days when the previous day's price is zero. | |
| 47 | − | |
| 48 | −\subsection{Event Data} | |
| 49 | − | |
| 50 | −We identify macroeconomic announcement events within the sample period for the event study analysis. The events fall into three categories: | |
| 51 | − | |
| 52 | −\begin{itemize} | |
| 53 | − \item \textbf{FOMC announcements}: We identify 2 scheduled FOMC meeting dates that fall within the sample period. FOMC announcements are released at 2:00 PM Eastern Time and are accompanied by the statement, Summary of Economic Projections (when available), and the press conference. | |
| 54 | − \item \textbf{CPI releases}: We identify 3 Consumer Price Index releases by the Bureau of Labor Statistics within the sample period. CPI releases occur at 8:30 AM Eastern Time and provide the most closely watched measure of consumer inflation. | |
| 55 | − \item \textbf{Election key dates}: We identify 3 politically significant dates in the election sample, including debate dates, major endorsement events, and the election day itself. | |
| 56 | −\end{itemize} | |
| 57 | − | |
| 58 | −Event windows are defined symmetrically around each announcement date. For FOMC and CPI events, we use a $[-3, +3]$ day window (7 trading days), with the estimation window for the constant mean model spanning 60 trading days prior to the event window. For election events, we use a wider $[-5, +5]$ day window to accommodate the possibility of slower information incorporation in political markets. | |
| 59 | − | |
| 60 | −\subsection{Variable Construction} | |
| 61 | − | |
| 62 | −We construct the following variables for our empirical analysis: | |
| 63 | − | |
| 64 | −\textbf{State price sum.} For each trading day $t$, the state price sum is computed as $\Sigma(t) = \sum_{j=1}^{5} p_j(t)$, where $p_j(t)$ is the closing price of the $j$-th contract. Under Arrow--Debreu completeness, $\Sigma(t) \approx 1$. | |
| 65 | − | |
| 66 | −\textbf{Risk-neutral probabilities.} The risk-neutral probability of state $j$ at time $t$ is computed as $q_j(t) = p_j(t) / \Sigma(t)$. This normalization ensures that risk-neutral probabilities sum to unity. | |
| 67 | − | |
| 68 | −\textbf{Abnormal returns.} For the event study analysis, abnormal returns are computed as $AR_j(t) = r_j(t) - \hat{\mu}_j$, where $\hat{\mu}_j$ is the mean return over the 60-day estimation window. Cumulative abnormal returns are computed by summing abnormal returns over the event window. | |
| 14 | +\input{../results/tables/table1_descriptive_stats.tex} | |
| 69 | 15 | |
| 70 | −\textbf{Realized volatility.} Daily realized volatility for the ``No change'' contract is computed as the absolute value of the daily return, $|r_t|$. Weekly and monthly realized volatility components are computed as the averages of daily realized volatility over the preceding 5 and 22 trading days, respectively, following the HAR-RV convention of \citet{corsi2009simple}. | |
| 16 | +\subsection{Alignment of calendars}\label{subsec:alignment} | |
| 71 | 17 | |
| 72 | −\textbf{Liquidity measures.} We compute two liquidity measures. The Roll spread \citep{roll1984simple} is estimated from the serial autocovariance of returns: $\text{Roll}_t = 2\sqrt{-\text{Cov}(r_t, r_{t-1})}$ when the autocovariance is negative, and zero otherwise. The Amihud illiquidity ratio \citep{amihud2002illiquidity} is computed as $\text{ILLIQ}_t = |r_t| / V_t$, where $V_t$ is the dollar trading volume on day $t$. | |
| 18 | +The daily points of the CLOB price history are time-stamped at 00:00 UTC (plus a few seconds) and represent the last price of the preceding UTC day. We label each point by the UTC day it closes. This convention has three consequences that matter for the analysis. First, an FOMC statement released at 14:00 Eastern time (18:00 or 19:00 UTC) and a CPI or employment report released at 08:30 Eastern time are both contained in the Polymarket close of the same calendar day, so that ``day 0'' of a release is well defined. Second, the Polymarket close of day $t$ is observed about three to four hours after the U.S.\ cash close of day $t$ (16:00 Eastern); when Polymarket changes are regressed on lagged U.S.\ returns the lag is 27 hours, and when U.S.\ returns are regressed on lagged Polymarket changes it is 21 hours, so that neither direction uses information not yet available at the time of the explanatory variable. Third, Polymarket trades on weekends; for comparisons with the U.S.\ series we construct Polymarket changes on the U.S.\ trading-day grid, so that a Monday change spans Friday evening to Monday evening in both markets. Bitcoin, whose daily close on Yahoo Finance is also at 00:00 UTC, is aligned in the same way. The earlier version of this paper labelled each point by the UTC day of the time stamp, which placed every Polymarket close one day too late relative to the U.S.\ series and to the release dates; Appendix~\ref{app:reconciliation} quantifies the effect. | |
| 73 | 19 | |
| 74 | −\subsection{Descriptive Statistics} | |
| 20 | +\subsection{State prices and their changes} | |
| 75 | 21 | |
| 76 | −Table~\ref{tab:descriptive_stats} reports descriptive statistics for the broader set of Polymarket contracts examined, including trading volume and liquidity measures in U.S.\ dollars. The table documents the substantial heterogeneity in market activity across contracts, with trading volumes ranging from under one million to nearly ten million dollars and liquidity (measured as the depth of the order book) varying by more than an order of magnitude. | |
| 22 | +Table~\ref{tab:summary_stats} summarises the five state prices and their daily changes over the main sample. The ``No change'' claim is the modal state throughout, averaging 0.61 and rising from 0.36 on 11 December 2025 to 0.978 on 22 May 2026; the ``25 bps decrease'' claim falls from 0.535 to 0.0085 over the same period, while the two tightening states and the large-cut state never exceed 0.13. Daily changes in the two main claims have standard deviations of about 3.3 percentage points, with excess kurtosis between 10 and 17 reflecting the concentration of movement on a few days. The augmented Dickey--Fuller statistics \citep{dickey1979distribution} reject a unit root in all change series at the 1 percent level; the level series are bounded and converge to zero or one by construction, so that all time-series analysis is conducted on changes. | |
| 77 | 23 | |
| 78 | −\input{../results/tables/table1_descriptive_stats.tex} | |
| 24 | +\input{../results/tables/table2_summary_stats.tex} | |
| 79 | 25 | |
| 80 | −Figure~\ref{fig:state_prices} plots the evolution of state prices for the five Fed rate decision contracts over the sample period. The dominant feature is the secular increase in the ``No change'' contract price from approximately 0.575 at the beginning of the sample to 0.978 by May 2026, accompanied by a corresponding decline in the ``25 bps decrease'' contract from approximately 0.40 to near zero. This pattern is consistent with the market progressively assigning higher probability to policy inaction as incoming macroeconomic data (strong labor markets, persistent inflation) reduced the case for near-term rate cuts. | |
| 26 | +Figure~\ref{fig:state_prices} plots the five state prices. The dominant movements are the two FOMC days of 28 January 2026, when the ``No change'' price fell from 0.425 to 0.31 and the ``25 bps decrease'' price rose from 0.485 to 0.545, and 18 March 2026, when ``No change'' rose from 0.635 to 0.865 and ``25 bps decrease'' fell from 0.295 to 0.085. Between early April and the end of the sample the modal claim drifts upward towards one as the June meeting approaches. | |
| 81 | 27 | |
| 82 | 28 | \begin{figure}[htbp] |
| 83 | 29 | \centering |
| 84 | 30 | \includegraphics[width=\textwidth]{../figures/fig1_state_prices.pdf} |
| 85 | − \caption{Arrow--Debreu state prices for Federal Reserve rate decision contracts, December 2025 to May 2026. Each line represents the daily closing price of one of the five mutually exclusive outcome contracts. The ``No change'' contract (upper line) rises from approximately 0.575 to 0.978, while the ``25 bps decrease'' contract (declining line) falls from approximately 0.40 to near zero.} | |
| 31 | + \caption{State prices of the five contracts on the June 2026 FOMC decision, 11 December 2025 to 22 May 2026 (daily closes, listing day excluded). Dotted vertical lines mark the four FOMC statements in the sample (17 December, 28 January, 18 March, 6 May).} | |
| 86 | 32 | \label{fig:state_prices} |
| 87 | 33 | \end{figure} |
| 88 | 34 | |
| 89 | −Figure~\ref{fig:rn_density} displays snapshots of the risk-neutral density at selected dates, illustrating the progressive concentration of probability mass on the ``No change'' outcome. Early in the sample, the distribution is bimodal, with substantial mass on both ``No change'' and ``25 bps decrease''; by the end of the sample, the distribution is sharply peaked at ``No change,'' with all other states assigned negligible probability. | |
| 90 | − | |
| 91 | −\begin{figure}[htbp] | |
| 92 | − \centering | |
| 93 | − \includegraphics[width=\textwidth]{../figures/fig3_risk_neutral_density.pdf} | |
| 94 | − \caption{Risk-neutral density snapshots for the Federal Reserve rate decision market. Each panel shows the distribution of risk-neutral probabilities across the five outcome states at a selected date. The progressive concentration of mass on ``No change'' reflects the market's increasing confidence in policy inaction.} | |
| 95 | − \label{fig:rn_density} | |
| 96 | −\end{figure} | |
| 97 | − | |
| 98 | −\subsection{Stationarity and Distributional Properties} | |
| 99 | − | |
| 100 | −Since prediction market prices are bounded between 0 and 1 and converge to either 0 or 1 at resolution, the level series are inherently non-stationary. All time-series analyses in this paper therefore use log returns rather than price levels. Augmented Dickey--Fuller tests reject the unit root null for all return series at the 1\% significance level, confirming stationarity. | |
| 35 | +\subsection{Event dates} | |
| 101 | 36 | |
| 102 | −The return distributions exhibit significant departures from normality, as indicated by the Jarque--Bera statistics reported in Table~\ref{tab:summary_stats}. The ``25 bps increase'' contract displays particularly extreme non-normality, with a kurtosis of 30.46 reflecting occasional large price jumps associated with unexpected news. These distributional properties motivate the use of heteroskedasticity-robust inference methods throughout our analysis, including Newey--West standard errors \citep{newey1987simple} and White standard errors \citep{white1980heteroskedasticity}. | |
| 37 | +The sample contains four FOMC statements (17 December 2025; 28 January, 18 March and 6 May 2026), five CPI releases (14 January, 11 February, 11 March, 14 April and 12 May 2026) and five employment reports (9 January, 6 February, 6 March, 3 April and 8 May 2026). No Polymarket close is recorded on 14 April 2026 or on the two following days, so the April CPI release cannot be assigned a day-0 change and is dropped; the 3 April employment report, a Good Friday on which U.S.\ markets were closed, is assigned the first subsequent Polymarket close (4 April). The announcement-day analysis therefore uses thirteen release days. | |
modified
paper/sections/introduction.tex
+7 −39
@@ -3,48 +3,16 @@ | ||
| 3 | 3 | % ============================================================================ |
| 4 | 4 | \section{Introduction}\label{sec:introduction} |
| 5 | 5 | |
| 6 | −The notion that market prices aggregate dispersed information stands among the most consequential insights in economics. \citet{hayek1945use} argued that the price system serves as a mechanism for communicating knowledge that no single agent possesses in its entirety, enabling decentralized coordination superior to any central planner. In the decades since, financial economists have formalized this insight through the efficient markets hypothesis \citep{fama1970efficient}, the theory of rational expectations equilibria \citep{grossman1980impossibility}, and the general equilibrium framework of complete markets \citep{arrow1964role,debreu1959theory}. Yet the empirical environments in which these theories have been tested---equity markets, bond markets, derivatives markets---are shaped by institutional frictions, regulatory constraints, and intermediary structures that may obscure the fundamental mechanisms of price formation. The emergence of blockchain-based prediction markets offers a rare opportunity to study information aggregation and state-contingent pricing in a setting that more closely approximates the theoretical ideal of an Arrow--Debreu economy. | |
| 6 | +A prediction-market contract that pays one dollar if the Federal Open Market Committee (FOMC) leaves its target range unchanged at a given meeting, and nothing otherwise, is the textbook example of a state-contingent claim. When a platform lists one such contract for every possible decision of that meeting, and when its settlement rules guarantee that exactly one of them pays, the set of contracts spans the outcome space of the decision in the sense of \citet{arrow1964role} and \citet{debreu1959theory}. Blockchain-based prediction markets have made this construction routine: Polymarket, the largest venue by volume, groups mutually exclusive contracts into ``negative-risk'' events whose collateral mechanics enforce that the complete set of claims is worth exactly one dollar at resolution. The resulting prices are therefore observable analogues of Arrow--Debreu state prices for a small number of macroeconomic and political state spaces, traded continuously, with a public order book and public settlement. | |
| 7 | 7 | |
| 8 | −This paper investigates whether Polymarket, the largest decentralized prediction market by trading volume, satisfies the theoretical properties of Arrow--Debreu complete markets. We model Polymarket binary outcome contracts as state-contingent claims and test for market completeness, no-arbitrage pricing, and information aggregation efficiency using two empirical settings: the Federal Reserve rate decision markets for the June 2026 meeting (five mutually exclusive outcomes forming a complete state space) and the 2024 U.S.\ Presidential Election market (seventeen candidate contracts observed over 307 trading days). Our analysis employs a comprehensive empirical framework that spans event studies around FOMC and CPI announcements, Granger causality tests, vector autoregression, GARCH and GJR-GARCH volatility models, and the heterogeneous autoregressive realized volatility (HAR-RV) specification of \citet{corsi2009simple}. | |
| 8 | +This paper asks what can and cannot be learned from such prices. The question has two parts. The first is a question about pricing. In an Arrow--Debreu economy the price of the complete set of state claims equals the price of a riskless bond, and each state price is the product of a discount factor and a risk-neutral probability. Because the spanning property is built into the contract design, the empirically testable content of the framework is not completeness itself but the pricing restrictions it imposes: the law of one price for the complete set, the no-arbitrage bounds implied by the mechanics of minting, converting and redeeming claims, and the interpretation of normalised prices as a risk-neutral distribution rather than as physical probabilities \citep{manski2006interpreting,wolfers2006interpreting}. The second is a question about information. If normalised state prices form a risk-neutral distribution over FOMC decisions, their first moment is a market-implied expected policy change comparable, in spirit, to the federal funds futures-based measures used since \citet{kuttner2001monetary}. One can then ask whether this quantity moves on scheduled macroeconomic releases, whether weekend trading---a feature absent from the futures market---carries information, and whether its daily changes lead or lag the Treasury, equity and volatility markets. | |
| 9 | 9 | |
| 10 | −\subsection{Motivation} | |
| 10 | +We address both parts with daily data from two Polymarket negative-risk groups: the five-outcome market on the June 2026 FOMC decision (11 December 2025 to 22 May 2026, 146 daily closes, about \$38 million of cumulative volume) and the seventeen-contract market on the winner of the 2024 U.S.\ presidential election (4 January to 5 November 2024, 304 daily closes, about \$3.7 billion of volume). The Fed group is the primary laboratory because its state space is small, exhaustive and economically interpretable; the election group serves to check whether the pricing regularities hold in a much larger and more heavily traded state space. | |
| 11 | 11 | |
| 12 | −The intellectual roots of prediction markets lie in the Arrow--Debreu framework for general equilibrium under uncertainty. In the canonical formulation, \citet{arrow1964role} demonstrated that a complete set of state-contingent claims---securities that pay one unit of account if and only if a particular state of the world obtains---suffices to achieve Pareto-optimal allocations of risk. \citet{debreu1959theory} generalized this construction, showing that when markets span the full state space, competitive equilibrium prices encode all relevant information about state probabilities and agents' marginal rates of substitution across states. \citet{ross1976arbitrage} subsequently established that derivatives markets can achieve effective completeness even without a full set of primitive securities, provided that a sufficient number of linearly independent payoffs are available for trade. | |
| 12 | +Three sets of results emerge. First, the law of one price holds for the complete set of claims up to a small and economically interpretable overround. The sum of the five Fed state prices averages 1.017 (standard deviation 0.026) and the sum of the seventeen election prices averages 1.015 (standard deviation 0.031). Both overrounds are statistically different from zero, but they are of the order of the quoted spreads, decline steadily as resolution approaches---from about 5 percent in the first month of the Fed market to 0.4 percent in the last---and revert within two days. At the order-book snapshot taken with the data, the sum of the best bids across the five Fed contracts is 0.999 and the sum of the best asks is 1.004, so that no round trip through the complete set was profitable at the quotes. We also show that the overround has the wrong sign to be explained by the time value of money: a complete set bought and held to resolution should trade \emph{below} one by the discount factor, which averaged 0.989 over the Fed sample, so that the executable bounds are asymmetric, and the data sit at or slightly above the upper bound rather than at the lower one. Second, the risk-neutral expected policy change implied by the Fed group moves significantly more on scheduled release days than on other days. Its absolute daily change is 1.15 basis points on the thirteen release days in the sample against 0.51 basis points on the other 132 days (variance ratio 4.9, Brown--Forsythe $p=0.008$), and the ``No change'' state price moves 5.5 against 1.4 percentage points (variance ratio 14.2). The effect is concentrated on FOMC days and employment-report days; the four CPI releases in the sample produced no detectable excess movement. Weekend days, when the futures market is closed, carry about one third of the variance of weekdays. Third, once Polymarket closes are aligned to the U.S.\ trading calendar and the lag order of the vector autoregression is chosen by information criteria rather than by searching over lags, there is no evidence that daily changes in the Polymarket-implied policy expectation lead or lag daily changes in the ten-year Treasury yield, the S\&P~500, the VIX or Bitcoin. The series are contemporaneously correlated with the Treasury yield (correlation 0.26), consistent with both responding to the same macroeconomic news within the day, but neither predicts the other. | |
| 13 | 13 | |
| 14 | −Prediction markets operationalize the Arrow--Debreu construct in its most elementary form. A Polymarket contract on whether the Federal Reserve will hold rates unchanged at its June 2026 meeting is, in formal terms, a state-contingent claim that pays \$1 if the state ``no change'' is realized and \$0 otherwise. When five such contracts---corresponding to rate decreases of 50 or more basis points, a 25 basis point decrease, no change, a 25 basis point increase, and an increase of 50 or more basis points---are traded simultaneously, the resulting market spans the full outcome space for a single FOMC decision. If the summed prices of these contracts equal the reciprocal of the risk-free gross return, $1/(1+r_f)$, and all individual prices are non-negative, the market satisfies the conditions for Arrow--Debreu completeness. The absence of persistent arbitrage further implies the existence of a valid state-price density consistent with no-arbitrage pricing \citep{cochrane2005asset}. | |
| 14 | +The paper makes three contributions. The first is conceptual. The prediction-market literature has long debated whether prices are probabilities \citep{manski2006interpreting,wolfers2006interpreting,snowberg2013prediction,ottaviani2015price}; we show that for negative-risk groups the question can be separated into a pricing restriction that is testable (the complete set is worth one dollar within executable bounds) and an interpretation that is not (normalised prices are risk-neutral, not physical, probabilities), and we derive the bounds from the actual settlement mechanics rather than from a generic ``transaction cost'' argument. The second is empirical. To our knowledge this is the first study to document the term structure of the overround in a blockchain prediction market, its relation to quoted depth, and the announcement-day behaviour of a market-implied FOMC expectation extracted from binary contracts. The third is methodological and cautionary. Polymarket's daily price history is stamped at 00:00 UTC of the following day, so that a naive merge with U.S.\ closing prices misaligns the two calendars by one day in one direction only; and a lag-search procedure that selects the lag with the smallest $p$-value produces spurious ``Granger causality'' in short samples. An earlier version of this paper reported both artefacts as findings; we document them in Appendix~\ref{app:reconciliation} because they are likely to affect other work that merges blockchain and conventional market data. | |
| 15 | 15 | |
| 16 | −The practical significance of this theoretical connection extends beyond intellectual curiosity. Prediction markets have attracted growing attention from policymakers, central bankers, and financial regulators as potential supplements to conventional forecasting methods. \citet{arrow2008promise} argued that prediction markets harness the ``wisdom of crowds'' by providing direct, market-based estimates of event probabilities. \citet{wolfers2004prediction} documented that prediction markets often outperform polls and expert forecasts in electoral contexts, while \citet{berg2008results} provided evidence from the Iowa Electronic Markets that prediction market prices are well calibrated as probability estimates. More recently, the growth of blockchain-based platforms---Polymarket alone exceeded \$3.5 billion in cumulative trading volume by early 2026---has raised the stakes of understanding whether these markets satisfy the theoretical conditions that justify interpreting their prices as state prices. | |
| 16 | +The results also delimit what prediction markets can contribute to the measurement of policy expectations. The Polymarket June 2026 market traded through four FOMC meetings, five CPI releases and five employment reports, and its implied expected policy change moved from $-15.5$ basis points to zero over the sample. The two largest daily moves---a fall of 11.5 percentage points in the ``No change'' price on 28 January 2026 and a rise of 23 percentage points on 18 March 2026---both occurred on FOMC days. These are the responses one would expect from an instrument that prices the policy path; they are not evidence of informational superiority over the futures market, and the Granger tests give none. The appropriate reading is that Polymarket offers a continuously traded, publicly settled complement to federal funds futures with a transparent and small transaction-cost wedge, not a substitute with a lead. | |
| 17 | 17 | |
| 18 | −Despite this enthusiasm, important skepticism persists. \citet{manski2006interpreting} cautioned that prediction market prices reflect risk premia and heterogeneous beliefs in addition to subjective probabilities, so that a contract price of \$0.60 need not imply a 60\% probability of the associated event. \citet{snowberg2013prediction} formalized conditions under which prices diverge from probabilities due to risk aversion and showed that the magnitude of bias depends on the curvature of agents' utility functions. These critiques do not invalidate the Arrow--Debreu interpretation---indeed, in an Arrow--Debreu economy, state prices embed both probability beliefs and marginal utility weights---but they underscore the importance of testing whether prediction markets satisfy the structural conditions (completeness, no arbitrage, positive state prices) that make the Arrow--Debreu interpretation well defined. | |
| 19 | − | |
| 20 | −\subsection{Research Questions and Contributions} | |
| 21 | − | |
| 22 | −This paper addresses three principal research questions. First, do blockchain-based prediction markets satisfy the conditions for Arrow--Debreu market completeness? We test this by examining whether state prices within Polymarket's neg-risk contract groups sum to values close to unity (or, more precisely, to $1/(1+r_f)$) and whether all individual state prices remain strictly positive throughout the sample period. Second, how do prediction market prices respond to macroeconomic information releases, and do prediction markets contribute to price discovery relative to traditional financial markets? We investigate this through event studies around FOMC and CPI announcements and through Granger causality tests between prediction market returns and returns on SPY, Bitcoin, and the VIX. Third, what are the volatility dynamics and microstructure properties of prediction market prices, and do they exhibit features consistent with informationally efficient markets? | |
| 23 | − | |
| 24 | −Our analysis yields three principal findings. First, we document that state prices within Polymarket neg-risk groups sum to a mean value of 1.0205 with a standard deviation of 0.0527 across 146 daily observations from December 2025 through May 2026, and that all individual state prices remain positive throughout the sample. The mean deviation of the state price sum from unity is 2.48 percentage points---close to the level that would be implied by a modest risk-free rate or transaction-cost wedge. This finding provides direct empirical support for the Arrow--Debreu completeness interpretation of prediction market prices. | |
| 25 | − | |
| 26 | −Second, we find evidence of bidirectional information flow between prediction markets and traditional financial markets. Granger causality tests reveal that the Fed ``No Change'' contract returns Granger-cause VIX returns at the 1\% significance level ($F = 4.96$, $p = 0.001$), while VIX returns Granger-cause Fed ``No Change'' returns at the 5\% level ($F = 2.73$, $p = 0.049$). Fed contract returns also Granger-cause SPY returns at the 10\% level ($F = 2.42$, $p = 0.072$). Event study analysis around FOMC and CPI announcements reveals economically significant cumulative abnormal returns, with point estimates that are consistent with prediction markets incorporating macroeconomic information in a manner aligned with the direction of the news. | |
| 27 | − | |
| 28 | −Third, we characterize the volatility dynamics of prediction market returns using both GARCH-family models and the HAR-RV framework. A standard GARCH(1,1) model yields an AIC of 940.68, while the GJR-GARCH specification of \citet{glosten1993relation} achieves a substantially lower AIC of 894.19, indicating that leverage effects---asymmetric volatility responses to positive and negative shocks---are a statistically important feature of prediction market dynamics. The GJR-GARCH leverage coefficient $\gamma_1 = 0.304$ implies that negative return shocks increase conditional variance by roughly 30\% more than positive shocks of equal magnitude. The HAR-RV model achieves an $R^2$ of 0.106, suggesting that while the heterogeneous structure of realized volatility provides some predictive content, the relatively low explanatory power may reflect the event-driven, discontinuous nature of prediction market price dynamics. | |
| 29 | − | |
| 30 | −\subsection{Empirical Setting} | |
| 31 | − | |
| 32 | −Our analysis exploits two complementary empirical settings from the Polymarket platform. The primary setting is the Federal Reserve rate decision market for the June 2026 FOMC meeting, which comprises five mutually exclusive and collectively exhaustive outcome contracts: a decrease of 50 or more basis points, a decrease of 25 basis points, no change, an increase of 25 basis points, and an increase of 50 or more basis points. This market is observed over 146 daily observations from December 2025 through May 2026. The five-outcome structure is particularly well suited for testing Arrow--Debreu completeness, as the contracts collectively span the full state space for a single policy decision. | |
| 33 | − | |
| 34 | −Over the sample period, the ``No change'' contract exhibited a pronounced upward trend, with the implied probability rising from approximately 0.575 at the beginning of the sample to 0.978 by the end---a trajectory consistent with the gradual incorporation of macroeconomic information favoring a ``wait and see'' posture by the Federal Reserve. The ``25 basis point decrease'' contract, which began the sample near 0.40, declined to approximately 0.01, while the remaining contracts (rate increases and large decreases) traded at low single-digit levels throughout most of the sample. This evolution of state prices provides a natural laboratory for studying information aggregation dynamics. | |
| 35 | − | |
| 36 | −The secondary setting is the 2024 U.S.\ Presidential Election market, comprising 17 candidate contracts observed over 307 daily observations. This market offers a richer cross-section of contracts and a longer time series, enabling analysis of microstructure properties, liquidity dynamics, and the behavior of prediction markets around politically significant events. The election market also provides a valuable out-of-sample check on patterns observed in the Fed market, as the two settings involve fundamentally different types of uncertainty (macroeconomic policy versus political outcomes). | |
| 37 | − | |
| 38 | −\subsection{Relation to the Literature} | |
| 39 | − | |
| 40 | −This paper contributes to several strands of the finance and economics literatures. First, we contribute to the literature on prediction markets and information aggregation \citep{wolfers2004prediction,arrow2008promise,berg2008results,snowberg2013prediction} by providing the first formal test of Arrow--Debreu completeness conditions using data from a blockchain-based prediction market. While prior work has studied the forecasting accuracy and calibration properties of prediction markets, our analysis is distinguished by its focus on the structural properties (completeness, no-arbitrage, positive state prices) that underpin the theoretical interpretation of prediction market prices as Arrow--Debreu state prices. | |
| 41 | − | |
| 42 | −Second, we contribute to the literature on price discovery and market microstructure \citep{hasbrouck1995one,ohara1995market,madhavan2000market,hasbrouck2003intraday} by documenting the information linkages between prediction markets and traditional financial markets. Our finding that prediction market returns Granger-cause VIX returns is novel and suggests that prediction markets may serve as a leading indicator of uncertainty pricing in traditional markets. | |
| 43 | − | |
| 44 | −Third, we contribute to the literature on volatility modeling and financial econometrics \citep{bollerslev1986generalized,engle1982autoregressive,nelson1991conditional,glosten1993relation,corsi2009simple,andersen2001distribution,andersen2003modeling,barndorff2002econometric} by applying established volatility models to a new asset class. The presence of leverage effects in prediction market returns, documented through the superior fit of the GJR-GARCH specification, represents a new empirical finding with implications for understanding the microstructure of state-contingent claims markets. | |
| 45 | − | |
| 46 | −Fourth, we contribute to the emerging literature on blockchain finance and decentralized markets \citep{harvey2021defi} by providing rigorous empirical evidence on the efficiency properties of a decentralized trading platform. Our results suggest that despite the absence of traditional market intermediaries, blockchain-based prediction markets can achieve levels of informational efficiency and microstructure quality that rival established financial markets for high-profile contracts. | |
| 47 | − | |
| 48 | −\subsection{Outline} | |
| 49 | − | |
| 50 | −The remainder of this paper is organized as follows. Section~\ref{sec:literature} reviews the relevant literature on prediction markets, Arrow--Debreu theory, price discovery, and volatility modeling. Section~\ref{sec:theoretical} develops the theoretical framework, formulating precise conditions for Arrow--Debreu completeness and deriving testable hypotheses. Section~\ref{sec:data} describes the data sources, sample construction, and variable definitions. Section~\ref{sec:methodology} presents the econometric methodology, including event study design, Granger causality tests, VAR estimation, GARCH models, and the HAR-RV specification. Section~\ref{sec:results} reports the empirical findings. Section~\ref{sec:robustness} presents robustness checks and additional analyses, including the 2024 U.S.\ Presidential Election case study. Section~\ref{sec:conclusion} concludes with a discussion of implications and directions for future research. | |
| 18 | +The remainder of the paper proceeds as follows. Section~\ref{sec:literature} describes the institutional setting and the related literature. Section~\ref{sec:theoretical} develops the framework and states the hypotheses. Section~\ref{sec:data} describes the data and the alignment of calendars. Section~\ref{sec:methodology} presents the methods. Section~\ref{sec:results} reports the results for the Fed market. Section~\ref{sec:robustness} extends the pricing analysis to the election market and reports further checks. Section~\ref{sec:conclusion} discusses limitations and concludes. Appendix~\ref{app:volatility} reports the volatility models, Appendix~\ref{app:variables} defines the variables, and Appendix~\ref{app:reconciliation} reconciles the present results with the earlier version. | |
modified
paper/sections/literature.tex
+15 −43
@@ -1,58 +1,30 @@ | ||
| 1 | 1 | % ============================================================================ |
| 2 | −% Section 2: Literature Review | |
| 2 | +% Section 2: Institutional Setting and Related Literature | |
| 3 | 3 | % ============================================================================ |
| 4 | −\section{Literature Review}\label{sec:literature} | |
| 4 | +\section{Institutional Setting and Related Literature}\label{sec:literature} | |
| 5 | 5 | |
| 6 | −This section surveys four interconnected strands of research that inform our analysis: (i) the theory of complete markets and state-contingent pricing, (ii) prediction markets as information aggregation mechanisms, (iii) price discovery and market microstructure, and (iv) volatility modeling and realized volatility. We conclude by identifying the gaps in the existing literature that our paper addresses. | |
| 6 | +\subsection{Polymarket and negative-risk markets}\label{subsec:institutions} | |
| 7 | 7 | |
| 8 | −\subsection{Arrow--Debreu Theory and Complete Markets} | |
| 8 | +Polymarket is a prediction-market platform on the Polygon blockchain. Each binary market issues a pair of outcome tokens, YES and NO, through a conditional-token contract: one unit of the USDC stablecoin can be split at any time into one YES and one NO token, and a YES--NO pair can be merged back into one USDC. At resolution the winning token redeems for one USDC and the losing token for nothing. Orders are matched off-chain on a central limit order book operated by the platform and settled on-chain; the order book, trade history and settlement are public. Resolution is delegated to the UMA optimistic oracle: anyone may propose an outcome by posting a bond, the proposal can be disputed during a challenge window, and disputed resolutions are decided by a vote of UMA token holders.\footnote{Polymarket documentation, \url{https://docs.polymarket.com} (consulted 17 October 2026). The documentation describes a proposal bond of about \$750, a two-hour challenge window, and a dispute process of four to six days.} | |
| 9 | 9 | |
| 10 | −The general equilibrium framework of \citet{arrow1964role} and \citet{debreu1959theory} provides the theoretical foundation for interpreting prediction market prices as state prices. In the Arrow--Debreu economy, a finite set of states of the world $\mathcal{S} = \{s_1, s_2, \ldots, s_N\}$ is defined, and for each state $s_j$ there exists a traded security---an Arrow--Debreu security---that pays one unit of the numeraire if state $s_j$ is realized and zero otherwise. When the number of linearly independent securities equals the number of states, markets are said to be complete, and a unique state-price vector $\boldsymbol{\psi} = (\psi_1, \ldots, \psi_N)$ exists such that any contingent claim can be replicated by a portfolio of Arrow--Debreu securities. | |
| 10 | +Multi-outcome questions are organised as \emph{negative-risk} events. The outcomes of such an event are mutually exclusive by construction, and the platform's adapter contract allows a NO token on any one outcome to be converted at any time into one YES token on each of the other outcomes. The conversion embodies the accounting identity that betting against one outcome is equivalent to betting on all the others. For an event with $N$ outcomes, it implies that a trader holding one NO token on every outcome holds a claim worth $N-1$ dollars at resolution---exactly one of the $N$ NO tokens expires worthless---and the adapter lets this position be unwound before resolution. The event studied in this paper, ``Fed decision in June?'', lists five outcomes defined on the change in the upper bound of the target federal funds range decided at the June 2026 FOMC meeting: a decrease of 50 basis points or more, a decrease of 25 basis points, no change, an increase of 25 basis points, and an increase of 50 basis points or more. These five outcomes are exhaustive, so the five YES tokens form a complete set of state claims on the decision. The same structure applies to the ``Presidential Election Winner 2024'' event with seventeen candidate contracts, where the last contract (``Other'') completes the state space. | |
| 11 | 11 | |
| 12 | −\citet{ross1976arbitrage} extended the completeness concept by showing that options and other derivative instruments can dynamically complete markets even when primitive securities do not span the full state space. The Ross spanning result implies that market completeness is a property of the entire set of traded instruments, not merely of individual securities. In practice, financial markets rarely achieve full completeness, and a large literature examines the implications of incomplete markets for asset pricing, risk sharing, and welfare \citep{cochrane2005asset}. | |
| 12 | +Two features of the setting matter for the interpretation of prices. First, prices are quoted in USDC and USDC held as collateral earns no interest on the platform, so that the time value of money is not neutralised by the settlement design as it is in a margined futures contract. Second, the fee structure differs across markets: the metadata of the five Fed contracts report no trading fee at the time of the snapshot, whereas the platform introduced taker fees on short-dated cryptocurrency markets in early 2026 and announced an extension to other categories. We treat the fee on the markets studied as zero and discuss this assumption in Section~\ref{sec:results}. | |
| 13 | 13 | |
| 14 | −The connection between complete markets and no-arbitrage pricing is formalized through the Fundamental Theorem of Asset Pricing. In a finite-state economy with no redundant securities, markets are complete if and only if there exists a unique positive state-price density (or stochastic discount factor) that prices all traded assets correctly. The existence of such a density is equivalent to the absence of arbitrage opportunities, while its uniqueness is equivalent to completeness \citep{cochrane2005asset}. This theoretical structure provides the basis for our empirical tests: if prediction market contracts collectively span the outcome space and their prices satisfy the no-arbitrage conditions, then the market functions as an Arrow--Debreu economy in the precise sense of the theory. | |
| 14 | +\subsection{Prices, probabilities and risk} | |
| 15 | 15 | |
| 16 | −\subsection{Prediction Markets and Information Aggregation} | |
| 16 | +The interpretation of prediction-market prices as probabilities is the central theme of the literature surveyed by \citet{wolfers2004prediction}, \citet{wolfers2006theory} and \citet{snowberg2013prediction}. \citet{manski2006interpreting} showed that, with risk-neutral traders who hold heterogeneous beliefs and face budget constraints, the equilibrium price of a binary contract need not equal the mean belief and can lie anywhere in an interval determined by the distribution of beliefs. \citet{wolfers2006interpreting} replied that with logarithmic utility the price equals the wealth-weighted mean belief, and that for plausible preference parameters the gap between price and mean belief is small except near the extremes. \citet{ottaviani2015price} derived the dynamics of such prices under heterogeneous beliefs and wealth effects and showed that they underreact to news, producing momentum and reversal. The empirical calibration literature finds that prices are informative but not perfectly calibrated: long-run evidence from the Iowa Electronic Markets \citep{berg2008results}, the favourite--longshot pattern documented by \citet{page2013calibrated}, and the comparison of markets and polls in \citet{rothschild2009forecasting} all point to systematic but modest deviations. \citet{rhode2004historical} show that the large historical betting markets on U.S.\ presidential elections behaved in much the same way a century ago. | |
| 17 | 17 | |
| 18 | −The idea that markets can serve as forecasting devices predates modern financial economics, with roots in nineteenth-century betting markets on elections and horse races. The formal academic literature on prediction markets gained momentum with the establishment of the Iowa Electronic Markets (IEM) in 1988, which enabled researchers to study real-money markets on political events in a controlled setting. | |
| 18 | +The present paper takes a different route to the same question. For an event whose states are correlated with aggregate wealth---a monetary-policy decision is the leading example---the price of each state claim is $\psi_j = \delta\,q_j$ where $\delta$ is a discount factor and $q_j$ a risk-neutral probability. Dividing by the sum of state prices recovers $q_j$ exactly, whatever the risk attitudes of traders, but the physical probability remains unidentified without further assumptions. \citet{piazzesi2008futures} document economically large and time-varying risk premia in federal funds futures, the natural benchmark for our Fed contracts; we therefore interpret our normalised prices as risk-neutral quantities throughout and treat the recovery of physical probabilities as outside the scope of the data. | |
| 19 | 19 | |
| 20 | −\citet{berg2008results} documented the forecasting performance of the IEM over two decades of U.S.\ presidential elections, finding that market prices were generally well calibrated and often superior to polling averages, particularly at longer forecast horizons. \citet{wolfers2004prediction} provided a comprehensive assessment of prediction markets across multiple domains---politics, business, entertainment---and argued that these markets aggregate information efficiently because they provide incentives for informed trading, allow for continuous updating, and admit a broad participant base. The authors acknowledged, however, that thin markets, manipulation attempts, and limited participation could undermine efficiency. | |
| 20 | +\subsection{Monetary-policy expectations and macroeconomic news} | |
| 21 | 21 | |
| 22 | −\citet{manski2006interpreting} raised an important theoretical caveat regarding the probability interpretation of prediction market prices. Under expected utility maximization, the equilibrium price of a state-contingent claim reflects both the probability of the event and the marginal utility of wealth in the relevant state. Only under risk-neutral pricing---when agents are risk neutral or when the event is uncorrelated with aggregate consumption---does the contract price equal the event probability. When agents are risk averse and the event outcome is correlated with marginal utility (as is plausible for macroeconomic events such as Fed rate decisions), prices will diverge from probabilities. \citet{snowberg2013prediction} formalized this argument, deriving analytical expressions for the bias as a function of the coefficient of relative risk aversion and showing that the bias can be substantial for events with significant wealth consequences. | |
| 22 | +A large literature uses market prices to measure monetary-policy expectations and their revisions around announcements. \citet{kuttner2001monetary} extracts policy surprises from federal funds futures; \citet{gurkaynak2005actions} show that FOMC statements move expectations through a second ``path'' factor beyond the current-rate surprise; \citet{bernanke2005explains} and \citet{rigobon2004impact} estimate the response of equity prices to those surprises; \citet{nakamura2018high} document that announcements also convey information about the economy. The announcement-day variance approach, in which the arrival of scheduled information is identified by comparing the variance of price changes on release days with that on other days, goes back to \citet{ederington1993markets} for interest-rate futures and to \citet{andersen2003micro} for high-frequency exchange rates, and the distinction between calendar time and trading time in the arrival of information to \citet{french1986stock}. Our announcement-day analysis of the Polymarket-implied expected policy change follows this tradition with daily data, exploiting the fact that the platform trades on weekends. | |
| 23 | 23 | |
| 24 | −\citet{arrow2008promise} provided a prominent defense of prediction markets, arguing that even if prices do not perfectly equal probabilities, the ordering of prices across contracts and their temporal dynamics still contain valuable information about relative likelihoods and the direction of probability changes. This pragmatic defense aligns with the Arrow--Debreu framework: state prices need not equal physical probabilities to be informative about the economic value of state-contingent claims. | |
| 24 | +\subsection{Price discovery across venues} | |
| 25 | 25 | |
| 26 | −More recent literature has explored the role of prediction markets in specific applied contexts. Studies have examined the ability of prediction markets to forecast election outcomes, central bank decisions, geopolitical events, and scientific replication results. A common finding across these applications is that prediction markets perform comparably to, and often better than, expert forecasts and statistical models, particularly when the forecast horizon is short and the event is well defined. | |
| 26 | +When the same asset trades in several markets, the contribution of each venue to the common efficient price can be measured by the information share of \citet{hasbrouck1995one} or the common-factor weights of \citet{gonzalo1995estimation}; \citet{baillie2002price} and \citet{yan2010structural} discuss the relation between the two and the conditions under which either is informative. Both measures require the prices to be cointegrated with a known cointegrating vector, which is the case for the same security on two exchanges or for a futures contract and its underlying index \citep{hasbrouck2003intraday}. It is not the case for a binary contract on an FOMC decision and the ten-year Treasury yield or an equity index: the contract price is bounded in $[0,1]$, converges to zero or one, and is related to conventional asset prices through a non-linear and time-varying mapping. We therefore do not compute information shares and rely instead on Granger-causality tests in first differences \citep{granger1969investigating,sims1980macroeconomics,lutkepohl2005new}, with the limitations discussed in Section~\ref{sec:methodology}. The cross-venue comparison of modern prediction markets themselves has recently been taken up by \citet{ng2025price}, who compare Polymarket, Kalshi and PredictIt around the 2024 election and find that the more liquid venue leads, and by \citet{chernov2025comovement}, who combine state-level election contracts with polls to estimate the comovement of voter preferences. \citet{reichenbach2025exploring} study calibration and trader skill on Polymarket. None of these papers examines the pricing of complete state spaces or the Fed decision markets. | |
| 27 | 27 | |
| 28 | −\subsection{Price Discovery and Market Microstructure} | |
| 28 | +\subsection{Microstructure of blockchain markets} | |
| 29 | 29 | |
| 30 | −The concept of price discovery refers to the process by which markets incorporate new information into prices. \citet{hasbrouck1995one} formalized the measurement of price discovery using information shares, which decompose the variance of the efficient price innovation across multiple markets trading related assets. The Hasbrouck information share has become a standard tool for evaluating the relative informational contributions of different trading venues. \citet{hasbrouck2003intraday} extended this framework to high-frequency settings, showing that the informational advantage of one market over another can vary intraday and across event types. | |
| 31 | − | |
| 32 | −\citet{kyle1985continuous} provided the seminal theoretical model of price formation with asymmetric information, in which an informed trader, noise traders, and a competitive market maker interact to determine prices. The Kyle model predicts that prices are a linear function of order flow, with the sensitivity (Kyle's lambda) reflecting the degree of information asymmetry. \citet{glosten1985bid} developed a related model in which the bid-ask spread compensates market makers for adverse selection costs arising from informed trading. These models provide the microstructural foundations for interpreting bid-ask spreads and price impact in prediction markets. | |
| 33 | − | |
| 34 | −\citet{ohara1995market} synthesized the microstructure literature, emphasizing that the institutional details of trading mechanisms---order types, priority rules, transparency, anonymity---shape price formation in ways that matter for both efficiency and welfare. \citet{madhavan2000market} extended this analysis, documenting how market design affects volatility, liquidity, and the speed of information incorporation. | |
| 35 | − | |
| 36 | −The liquidity of a market is closely related to its price discovery function. \citet{kyle1985continuous} identified three dimensions of liquidity---tightness (the cost of turning around a position), depth (the volume of orders at the best prices), and resiliency (the speed at which prices recover from uninformative shocks)---that collectively determine a market's ability to absorb order flow without adverse price impact. \citet{amihud2002illiquidity} proposed a simple illiquidity measure---the ratio of absolute daily returns to daily dollar volume---that captures the price impact of trading and has become widely used in the empirical literature. \citet{roll1984simple} derived an implicit measure of the effective spread from the serial covariance of price changes, showing that the autocovariance of returns is negative when bid-ask bounce contributes to price variation. | |
| 37 | − | |
| 38 | −The application of microstructure concepts to prediction markets is relatively recent. Unlike traditional financial markets, blockchain-based prediction markets operate on automated market makers or order-book protocols without designated market makers or specialist systems. Polymarket uses a hybrid architecture that combines a central limit order book (CLOB) with smart contract settlement on the Polygon blockchain. This design implies that liquidity provision is decentralized and that the costs of adverse selection may differ qualitatively from those in traditional markets. Understanding the microstructure of these platforms is essential for evaluating their price discovery capabilities. | |
| 39 | − | |
| 40 | −\subsection{Volatility Modeling} | |
| 41 | − | |
| 42 | −The modeling of conditional volatility in financial time series has a rich econometric history. \citet{engle1982autoregressive} introduced the ARCH model, in which conditional variance depends on past squared residuals, capturing the well-documented tendency of financial return volatility to cluster over time. \citet{bollerslev1986generalized} generalized this framework to the GARCH model, which includes lagged conditional variance terms and provides a more parsimonious representation of persistent volatility dynamics. The GARCH(1,1) specification has become the workhorse model in empirical finance, applied to equity returns, exchange rates, interest rates, and commodity prices. | |
| 43 | − | |
| 44 | −A well-established stylized fact of equity returns is the asymmetry of the volatility response to positive and negative shocks: negative returns tend to increase future volatility by more than positive returns of equal magnitude. \citet{nelson1991conditional} proposed the EGARCH model to capture this leverage effect, while \citet{glosten1993relation} introduced the GJR-GARCH specification, which augments the standard GARCH variance equation with an indicator function that allows the impact of negative shocks to differ from that of positive shocks. The GJR-GARCH model has the advantage of nesting the standard GARCH as a special case, facilitating direct comparison through information criteria such as the AIC \citep{akaike1974new} and BIC \citep{schwarz1978estimating}. | |
| 45 | − | |
| 46 | −The development of high-frequency data and realized volatility measures opened a new frontier in volatility modeling. \citet{andersen2001distribution} demonstrated that realized volatility---computed as the sum of squared intraday returns---provides a consistent nonparametric estimator of integrated volatility and that the distribution of standardized returns conditional on realized volatility is approximately Gaussian. \citet{andersen2003modeling} showed that the logarithm of realized volatility is approximately normally distributed and exhibits long memory, with autocorrelations that decay slowly and remain significant at lags of months or longer. \citet{barndorff2002econometric} developed the econometric theory for realized volatility estimators, establishing their consistency and asymptotic normality under general conditions. | |
| 47 | − | |
| 48 | −\citet{corsi2009simple} proposed the HAR-RV (Heterogeneous Autoregressive model of Realized Volatility) specification as a parsimonious approach to capturing the long-memory properties of realized volatility. The HAR-RV model regresses future realized volatility on the daily, weekly, and monthly components of past realized volatility, thereby approximating the long-memory behavior of the series through a cascade of different time horizons. Despite its simplicity---it is a restricted linear model---the HAR-RV achieves forecasting performance comparable to more complex long-memory models (ARFIMA, FIGARCH) and has become a standard benchmark in the volatility forecasting literature. Its application to prediction market returns, which we undertake in this paper, represents a novel contribution to the literature. | |
| 49 | − | |
| 50 | −\subsection{Blockchain Finance and Decentralized Markets} | |
| 51 | − | |
| 52 | −The emergence of blockchain-based financial infrastructure has spawned a rapidly growing academic literature. \citet{harvey2021defi} provided an overview of decentralized finance (DeFi), documenting the institutional innovations---automated market makers, liquidity pools, smart contract settlement---that distinguish decentralized platforms from traditional financial intermediation. Blockchain-based prediction markets inherit many of these innovations: trades are executed on-chain, settlement is automatic and trustless, and the absence of centralized intermediaries reduces counterparty risk but introduces new challenges related to transaction costs (gas fees), latency, and regulatory uncertainty. | |
| 53 | − | |
| 54 | −Polymarket, the platform studied in this paper, uses a hybrid architecture. Orders are matched off-chain on a central limit order book, while settlement occurs on the Polygon blockchain (a Layer 2 scaling solution for Ethereum). This design balances the speed and cost advantages of centralized order matching with the transparency and settlement finality of blockchain technology. The neg-risk framework employed by Polymarket for multi-outcome markets (such as the Fed rate decision market) ensures that the contracts within a given group are mutually exclusive, with the constraint that exactly one contract in the group resolves to \$1 and all others resolve to \$0. This structural feature directly maps onto the Arrow--Debreu framework and facilitates the completeness tests that we conduct. | |
| 55 | − | |
| 56 | −\subsection{Gaps in the Literature} | |
| 57 | − | |
| 58 | −Several gaps in the existing literature motivate our analysis. First, while prediction markets have been studied extensively from a forecasting and calibration perspective, formal tests of Arrow--Debreu completeness conditions have not been conducted using data from blockchain-based platforms. The neg-risk structure of Polymarket markets provides a uniquely clean setting for such tests. Second, the price discovery role of prediction markets relative to traditional financial markets has not been examined using modern time-series methods (Granger causality, VAR, impulse response analysis) applied to daily frequency data. Third, the volatility dynamics of prediction market returns have not been characterized using the GARCH-family and HAR-RV models that are standard in the financial econometrics literature. Our paper addresses each of these gaps. | |
| 30 | +The microstructure concepts we use are standard: the adverse-selection view of spreads \citep{glosten1985bid,kyle1985continuous}, the serial-covariance spread estimator of \citet{roll1984simple}, and the surveys of \citet{ohara1995market} and \citet{madhavan2000market}. Two strands of the cryptocurrency literature are directly relevant. \citet{makarov2020trading} document large and persistent arbitrage deviations across cryptocurrency exchanges, attributable to capital controls and settlement frictions; the complete-set arbitrage on a negative-risk event is simpler, because all legs settle on one platform in one collateral, and it is therefore a cleaner test of whether blockchain markets enforce the law of one price. \citet{cong2023wash} show that reported volumes on unregulated cryptocurrency exchanges are heavily inflated by wash trading; we do not use volume as an input to any test, but the point cautions against reading Polymarket's reported volumes as measures of genuine participation. \citet{harvey2021defi} provide an overview of the decentralised-finance infrastructure on which the platform is built. Experimental and theoretical work on manipulation \citep{hanson2006manipulation,hanson2003combinatorial} and the documented episodes on Polymarket itself---concentrated position-taking in the 2024 election market and a disputed oracle resolution in March 2025---are discussed in Section~\ref{sec:conclusion}. | |
modified
paper/sections/methodology.tex
+18 −157
@@ -3,175 +3,36 @@ | ||
| 3 | 3 | % ============================================================================ |
| 4 | 4 | \section{Methodology}\label{sec:methodology} |
| 5 | 5 | |
| 6 | −This section presents the econometric methods employed to test the hypotheses developed in Section~\ref{sec:theoretical}. We describe five methodological components: (i) Arrow--Debreu completeness tests, (ii) event study methodology, (iii) Granger causality and vector autoregression, (iv) GARCH-family volatility models, and (v) the HAR-RV model for realized volatility. For each method, we specify the estimating equations, identification strategy, and inference procedures. | |
| 6 | +\subsection{Tests of the pricing restriction}\label{subsec:completeness_method} | |
| 7 | 7 | |
| 8 | −\subsection{Arrow--Debreu Completeness Tests}\label{subsec:completeness_method} | |
| 9 | − | |
| 10 | −To test Hypothesis~\ref{hyp:completeness}, we construct the daily state price sum $\Sigma(t) = \sum_{j=1}^{5} p_j(t)$ for the Federal Reserve rate decision market and evaluate its properties against the theoretical predictions of the Arrow--Debreu framework. | |
| 11 | − | |
| 12 | −\subsubsection{Mean Deviation Test} | |
| 13 | − | |
| 14 | −The primary test statistic is the time-series average of $\Sigma(t)$: | |
| 15 | −\begin{equation}\label{eq:mean_test} | |
| 16 | − \bar{\Sigma} = \frac{1}{T} \sum_{t=1}^{T} \Sigma(t), | |
| 17 | −\end{equation} | |
| 18 | −where $T = 146$ is the number of trading days. Under the null hypothesis that the market is Arrow--Debreu complete with a risk-free rate close to zero, $\bar{\Sigma} = 1$. We test $H_0: \mathbb{E}[\Sigma(t)] = 1$ against $H_1: \mathbb{E}[\Sigma(t)] \neq 1$ using a $t$-test with Newey--West standard errors \citep{newey1987simple} to account for potential serial correlation in $\Sigma(t)$. | |
| 19 | − | |
| 20 | −\subsubsection{Positivity Test} | |
| 21 | − | |
| 22 | −Hypothesis~\ref{hyp:completeness}(b) requires that all state prices remain strictly positive. We verify this condition by checking whether $\min_{j,t} p_j(t) > 0$ across all five contracts and all trading days. | |
| 23 | − | |
| 24 | −\subsubsection{Stationarity of Deviations} | |
| 25 | − | |
| 26 | −To assess whether deviations of $\Sigma(t)$ from unity are temporary (consistent with transaction-cost frictions) or persistent (suggesting structural mispricing), we apply the Augmented Dickey--Fuller test to the series $\delta(t) = \Sigma(t) - 1$, testing the null of a unit root against the alternative of stationarity. Rejection of the unit root null would indicate that arbitrage forces push the state price sum back toward unity, consistent with Hypothesis~\ref{hyp:no_arb}(b). | |
| 27 | − | |
| 28 | −\subsection{Event Study Methodology}\label{subsec:event_method} | |
| 29 | − | |
| 30 | −We employ the standard event study methodology of \citet{mackinlay1997event} to assess the impact of macroeconomic announcements on prediction market prices. The procedure comprises four steps. | |
| 31 | − | |
| 32 | −\subsubsection{Step 1: Estimation Window} | |
| 33 | − | |
| 34 | −For each event $k$ with announcement date $\tau_k$, we define the estimation window as the 60 trading days ending 4 days before the event: $[\tau_k - 63, \tau_k - 4]$. The constant mean return model is estimated over this window: | |
| 35 | −\begin{equation}\label{eq:est_window} | |
| 36 | − \hat{\mu}_j^{(k)} = \frac{1}{60} \sum_{t=\tau_k - 63}^{\tau_k - 4} r_j(t). | |
| 37 | −\end{equation} | |
| 38 | − | |
| 39 | −We use a 60-day estimation window as a compromise between statistical precision (which favors longer windows) and parameter stability (which favors shorter windows). The 3-day gap between the estimation window and the event window prevents contamination of the benchmark model by pre-announcement information leakage. | |
| 40 | − | |
| 41 | −\subsubsection{Step 2: Abnormal Returns} | |
| 42 | − | |
| 43 | −Abnormal returns for contract $j$ around event $k$ are computed as | |
| 44 | −\begin{equation}\label{eq:ar_method} | |
| 45 | − AR_j^{(k)}(t) = r_j(t) - \hat{\mu}_j^{(k)}, \quad t \in [\tau_k - w, \tau_k + w], | |
| 8 | +For each day of the main sample we compute $\Sigma_t$ from equation~\eqref{eq:sp_sum} and the deviation $\Sigma_t-1$. The mean deviation is tested against zero with a heteroskedasticity- and autocorrelation-consistent standard error \citep{newey1987simple} with five lags, since $\Sigma_t-1$ is serially correlated. We report the share of days on which $|\Sigma_t-1|$ is within 0.5, 1, 2 and 5 percentage points, and the share of days on which $\Sigma_t$ lies within the executable bounds \eqref{eq:bounds}, with the lower bound computed as | |
| 9 | +\begin{equation}\label{eq:lower} | |
| 10 | + \delta_t = \exp\!\big(-r_t\,\tau_t\big), | |
| 46 | 11 | \end{equation} |
| 47 | −where $w$ is the half-width of the event window (3 days for FOMC and CPI events, 5 days for election events). | |
| 12 | +where $r_t$ is the effective federal funds rate on day $t$ and $\tau_t$ the number of days to the resolution date divided by 365, and with $c_t=0.005$. The dynamics of the deviation are characterised by the first-order autoregressive coefficient $\phi$ of $\Sigma_t-1$, the implied half-life $-\ln 2/\ln\phi$, and the augmented Dickey--Fuller statistic with a constant and AIC-selected lag length. Because the lower bound rises towards one as $\tau_t\to 0$, we also regress $\Sigma_t-1$ on $\tau_t$ with HAC standard errors; a positive slope indicates that the overround shrinks as resolution approaches. The same statistics are computed for the election group with $T$ equal to 5 November 2024. | |
| 48 | 13 | |
| 49 | −\subsubsection{Step 3: Cumulative Abnormal Returns} | |
| 50 | − | |
| 51 | −Cumulative abnormal returns over the event window are | |
| 52 | −\begin{equation}\label{eq:car_method} | |
| 53 | − CAR_j^{(k)} = \sum_{t=\tau_k - w}^{\tau_k + w} AR_j^{(k)}(t). | |
| 54 | −\end{equation} | |
| 55 | − | |
| 56 | −\subsubsection{Step 4: Cross-Sectional Testing} | |
| 57 | − | |
| 58 | −The null hypothesis is that the mean CAR across events is zero: $H_0: \mathbb{E}[\overline{CAR}_j] = 0$. The cross-sectional test statistic is | |
| 59 | −\begin{equation}\label{eq:cross_sec} | |
| 60 | − t_j = \frac{\overline{CAR}_j}{s_j / \sqrt{K}}, | |
| 61 | −\end{equation} | |
| 62 | −where $\overline{CAR}_j = K^{-1} \sum_{k=1}^{K} CAR_j^{(k)}$, $s_j$ is the cross-event standard deviation of CARs, and $K$ is the number of events. Under the null hypothesis and standard regularity conditions, $t_j$ follows a $t$-distribution with $K - 1$ degrees of freedom \citep{boehmer1991event}. | |
| 14 | +The order-book snapshot provides a direct check of the bounds at one point in time. For each contract we record the best bid and ask, the quoted and relative spread, the depth at the best quotes, and the notional resting within one cent of the best quote; the sum of best bids is the proceeds from selling one complete set at market and the sum of best asks the cost of buying one. | |
| 63 | 15 | |
| 64 | −The event study methodology relies on two identifying assumptions. First, the constant mean model must be a reasonable benchmark for expected returns in the absence of the event. For prediction market contracts, which have no systematic risk exposure in the CAPM sense, the constant mean model is more appropriate than market model or factor model alternatives. Second, events must be exogenous to the prediction market---that is, the FOMC and CPI announcement dates must not be determined by prediction market prices. This assumption is clearly satisfied, as these dates are set on predetermined schedules. | |
| 16 | +\subsection{Announcement-day analysis}\label{subsec:event_method} | |
| 65 | 17 | |
| 66 | −\subsection{Granger Causality and Vector Autoregression}\label{subsec:granger_method} | |
| 18 | +Let $y_t$ denote either the daily change in the risk-neutral expected policy change, $\Delta\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ in basis points, or the daily change in the ``No change'' state price in percentage points. Under the risk-neutral martingale property both have conditional mean close to zero, so that no estimation window is needed to define an abnormal change; the information content of a release is identified by the variance of $y_t$ rather than by its mean, as in \citet{ederington1993markets}. For each release type we report the change on day 0 and the cumulative changes over $[-1,+1]$ and $[-3,+3]$ calendar days for every event in the sample, and we compare the distribution of $|y_t|$ on the $K$ release days with its distribution on the remaining days using three statistics: the ratio of means, the ratio of variances with the Brown--Forsythe test of equal variances (the Levene test centred at the median, robust to the heavy tails documented in Table~\ref{tab:summary_stats}), and the one-sided Mann--Whitney test that $|y_t|$ is stochastically larger on release days. With $K$ between 4 and 13 these tests have limited power, which is why we report them for all releases pooled as well as by type. The same comparison between weekend and weekday observations among non-release days tests whether the market incorporates information when conventional markets are closed \citep{french1986stock}. | |
| 67 | 19 | |
| 68 | −To assess information linkages between prediction markets and traditional financial markets (Hypothesis~\ref{hyp:info}(c)), we employ pairwise Granger causality tests \citep{granger1969investigating} and estimate a vector autoregressive (VAR) model \citep{sims1980macroeconomics}. | |
| 20 | +The earlier version of this paper reported cumulative abnormal returns for each contract with a constant-mean benchmark \citep{mackinlay1997event} and a cross-sectional $t$-test over two or three events. We abandon that design for three reasons: simple returns on claims priced at a fraction of a cent are dominated by tick effects, the cross-sectional $t$-statistic with two events has one degree of freedom, and the sixty-day estimation window excluded two of the four FOMC meetings and two of the five CPI releases from the sample. | |
| 69 | 21 | |
| 70 | −\subsubsection{Pairwise Granger Causality} | |
| 22 | +\subsection{Lead--lag tests}\label{subsec:granger_method} | |
| 71 | 23 | |
| 72 | −Consider two stationary time series $x_t$ and $y_t$. We say that $x$ Granger-causes $y$ if lagged values of $x$ contain information useful for predicting $y$ beyond the information contained in lagged values of $y$ alone. Formally, we estimate the unrestricted model | |
| 24 | +Lead--lag relations are tested on the U.S.\ trading-day grid with five variables: the daily change in $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ (basis points), the change in the ten-year Treasury yield (basis points) and the log changes in SPY, VIX and BTC (percent). For a pair $(x_t,y_t)$ the bivariate vector autoregression of order $p$, | |
| 73 | 25 | \begin{equation}\label{eq:granger_unrestricted} |
| 74 | − y_t = \alpha + \sum_{\ell=1}^{L} \beta_\ell y_{t-\ell} + \sum_{\ell=1}^{L} \gamma_\ell x_{t-\ell} + \varepsilon_t, | |
| 26 | + y_t = \alpha + \sum_{\ell=1}^{p} \beta_\ell\, y_{t-\ell} + \sum_{\ell=1}^{p} \gamma_\ell\, x_{t-\ell} + \varepsilon_t, | |
| 75 | 27 | \end{equation} |
| 76 | −and the restricted model | |
| 77 | −\begin{equation}\label{eq:granger_restricted} | |
| 78 | − y_t = \alpha + \sum_{\ell=1}^{L} \beta_\ell y_{t-\ell} + u_t, | |
| 79 | −\end{equation} | |
| 80 | −where $L$ is the lag length selected by the Akaike Information Criterion \citep{akaike1974new}. The null hypothesis $H_0: \gamma_1 = \gamma_2 = \cdots = \gamma_L = 0$ is tested using an $F$-test. Rejection of $H_0$ implies that $x$ Granger-causes $y$. | |
| 81 | − | |
| 82 | −We conduct pairwise Granger causality tests among four return series: the Fed ``No Change'' contract, SPY, BTC, and VIX. This yields 12 directional tests (four variables, each pair in both directions), reported in Table~\ref{tab:granger}. | |
| 83 | − | |
| 84 | −\subsubsection{Vector Autoregression} | |
| 85 | − | |
| 86 | −To capture the joint dynamics of prediction market returns and traditional asset returns, we estimate a VAR model of order $L$: | |
| 87 | −\begin{equation}\label{eq:var} | |
| 88 | − \mathbf{y}_t = \boldsymbol{\mu} + \sum_{\ell=1}^{L} \mathbf{A}_\ell \mathbf{y}_{t-\ell} + \boldsymbol{\varepsilon}_t, | |
| 89 | −\end{equation} | |
| 90 | −where $\mathbf{y}_t = (r_t^{\text{Fed}}, r_t^{\text{SPY}}, r_t^{\text{BTC}}, r_t^{\text{VIX}})'$ is the $4 \times 1$ vector of returns, $\boldsymbol{\mu}$ is a $4 \times 1$ vector of intercepts, $\mathbf{A}_\ell$ are $4 \times 4$ coefficient matrices, and $\boldsymbol{\varepsilon}_t$ is a $4 \times 1$ vector of innovations with $\mathbb{E}[\boldsymbol{\varepsilon}_t] = \mathbf{0}$ and $\mathbb{E}[\boldsymbol{\varepsilon}_t \boldsymbol{\varepsilon}_t'] = \boldsymbol{\Omega}$. The lag length $L$ is selected by minimizing the AIC over candidate lag orders $L \in \{1, 2, \ldots, 8\}$. | |
| 91 | − | |
| 92 | −The VAR model allows us to trace the dynamic propagation of shocks across markets through impulse response functions and to decompose forecast error variance into contributions from each variable through variance decomposition analysis. These tools complement the pairwise Granger causality tests by providing a system-level perspective on information transmission. | |
| 93 | − | |
| 94 | −\subsection{GARCH-Family Volatility Models}\label{subsec:garch_method} | |
| 28 | +is estimated by least squares and the hypothesis $\gamma_1=\cdots=\gamma_p=0$ is tested with the conventional $F$-statistic and with a Wald statistic using the Newey--West covariance with five lags. The lag order is chosen once, by the Akaike information criterion \citep{akaike1974new} applied to the five-variable system over $p\in\{0,\ldots,5\}$; because the criterion selects $p=0$, as do the Schwarz \citep{schwarz1978estimating} and Hannan--Quinn criteria, the main tests use $p=1$ and we report $p$-values for $p\in\{1,2,5\}$ as a sensitivity check. We deliberately do not select, for each pair, the lag that minimises the $p$-value: that procedure, used in the earlier version, is a search over five correlated tests and its nominal size is far below its actual size. The full five-variable VAR(1) is also reported equation by equation with HAC $t$-statistics \citep{lutkepohl2005new}. | |
| 95 | 29 | |
| 96 | −To characterize the conditional volatility dynamics of prediction market returns (Hypothesis~\ref{hyp:vol}), we estimate two members of the GARCH family: the standard GARCH(1,1) model and the GJR-GARCH(1,1) model. | |
| 30 | +Two limitations of the design are inherent in the data. Daily frequency is coarse relative to the speed at which both markets react to scheduled releases, so that a lead of minutes or hours, if it existed, would not be detectable; and the sample contains 110 trading days, so that only large predictive relations could be found. The tests are therefore informative about the absence of daily-horizon predictability, not about intraday price discovery. | |
| 97 | 31 | |
| 98 | −\subsubsection{GARCH(1,1)} | |
| 99 | − | |
| 100 | −The GARCH(1,1) model of \citet{bollerslev1986generalized} specifies the conditional variance of returns as | |
| 101 | −\begin{align} | |
| 102 | − r_t &= \mu + \varepsilon_t, \quad \varepsilon_t = \sigma_t z_t, \quad z_t \sim \mathcal{N}(0,1), \label{eq:garch_mean} \\ | |
| 103 | − \sigma_t^2 &= \omega + \alpha_1 \varepsilon_{t-1}^2 + \beta_1 \sigma_{t-1}^2, \label{eq:garch_var} | |
| 104 | −\end{align} | |
| 105 | −where $\omega > 0$, $\alpha_1 \geq 0$, $\beta_1 \geq 0$, and the stationarity condition $\alpha_1 + \beta_1 < 1$ ensures that the unconditional variance is finite. The parameter $\alpha_1$ measures the impact of yesterday's squared shock on today's conditional variance (the ARCH effect), while $\beta_1$ measures the persistence of past conditional variance (the GARCH effect). The sum $\alpha_1 + \beta_1$ measures the overall persistence of volatility shocks: values close to unity indicate near-integrated volatility. | |
| 106 | − | |
| 107 | −\subsubsection{GJR-GARCH(1,1)} | |
| 108 | − | |
| 109 | −The GJR-GARCH(1,1) model of \citet{glosten1993relation} augments the GARCH variance equation with an asymmetric leverage term: | |
| 110 | −\begin{equation}\label{eq:gjr_var} | |
| 111 | − \sigma_t^2 = \omega + \alpha_1 \varepsilon_{t-1}^2 + \gamma_1 \varepsilon_{t-1}^2 \mathbf{1}\{\varepsilon_{t-1} < 0\} + \beta_1 \sigma_{t-1}^2, | |
| 112 | −\end{equation} | |
| 113 | −where $\gamma_1 \geq 0$ is the leverage coefficient. When $\gamma_1 > 0$, negative shocks ($\varepsilon_{t-1} < 0$) increase the conditional variance by $\alpha_1 + \gamma_1$, while positive shocks increase it by only $\alpha_1$. The standard GARCH model is nested as the special case $\gamma_1 = 0$. | |
| 114 | − | |
| 115 | −Model comparison between the GARCH(1,1) and GJR-GARCH(1,1) is based on the Akaike Information Criterion: | |
| 116 | −\begin{equation}\label{eq:aic} | |
| 117 | − \text{AIC} = -2 \ln \hat{\mathcal{L}} + 2k, | |
| 118 | −\end{equation} | |
| 119 | −where $\hat{\mathcal{L}}$ is the maximized log-likelihood and $k$ is the number of estimated parameters. The model with the lower AIC is preferred. Since the GJR-GARCH has one additional parameter ($\gamma_1$) relative to the standard GARCH, a reduction in AIC of more than 2 constitutes evidence in favor of the asymmetric specification. | |
| 120 | − | |
| 121 | −Both models are estimated by maximum likelihood under the assumption of conditionally Gaussian innovations. To ensure robustness, we also compute quasi-maximum likelihood (QML) standard errors \citep{white1980heteroskedasticity}, which remain consistent even if the true conditional distribution departs from Gaussianity. | |
| 122 | − | |
| 123 | −\subsection{HAR-RV Model}\label{subsec:har_method} | |
| 124 | − | |
| 125 | −To model the dynamics of realized volatility and test Hypothesis~\ref{hyp:vol}(c), we employ the Heterogeneous Autoregressive model of Realized Volatility (HAR-RV) proposed by \citet{corsi2009simple}. The HAR-RV captures long-memory properties of realized volatility through a cascade of volatility components at daily, weekly, and monthly horizons. | |
| 126 | − | |
| 127 | −\subsubsection{Realized Volatility Construction} | |
| 128 | − | |
| 129 | −In the absence of intraday data, we proxy daily realized volatility by the absolute daily return on the Fed ``No Change'' contract: | |
| 130 | −\begin{equation}\label{eq:rv_daily} | |
| 131 | − RV_t^{(d)} = |r_t|. | |
| 132 | −\end{equation} | |
| 133 | − | |
| 134 | −Weekly and monthly realized volatility components are constructed as arithmetic averages of daily realized volatility: | |
| 135 | −\begin{align} | |
| 136 | − RV_t^{(w)} &= \frac{1}{5} \sum_{i=0}^{4} RV_{t-i}^{(d)}, \label{eq:rv_weekly} \\ | |
| 137 | − RV_t^{(m)} &= \frac{1}{22} \sum_{i=0}^{21} RV_{t-i}^{(d)}. \label{eq:rv_monthly} | |
| 138 | −\end{align} | |
| 139 | − | |
| 140 | −This construction assumes that absolute returns are a reasonable proxy for integrated volatility at the daily frequency. While the theoretical foundations of the HAR-RV model are based on high-frequency realized volatility estimators \citep{andersen2001distribution,barndorff2002econometric}, the model has been shown to perform well with daily-frequency inputs when intraday data are unavailable. | |
| 141 | − | |
| 142 | −\subsubsection{HAR-RV Specification} | |
| 143 | − | |
| 144 | −The HAR-RV model regresses future daily realized volatility on the three temporal components: | |
| 145 | −\begin{equation}\label{eq:har_rv} | |
| 146 | − RV_{t+1}^{(d)} = c + \beta_d RV_t^{(d)} + \beta_w RV_t^{(w)} + \beta_m RV_t^{(m)} + \varepsilon_{t+1}. | |
| 147 | −\end{equation} | |
| 148 | − | |
| 149 | −The coefficient $\beta_d$ captures the impact of short-run (daily) volatility fluctuations on next-period volatility, $\beta_w$ captures the medium-run (weekly) contribution, and $\beta_m$ captures the long-run (monthly) contribution. In traditional equity markets, all three coefficients are typically positive and statistically significant, with $\beta_w$ and $\beta_m$ providing substantial incremental explanatory power---a pattern attributed to the heterogeneous investment horizons of different market participant types \citep{corsi2009simple}. | |
| 150 | − | |
| 151 | −The model is estimated by OLS with Newey--West standard errors \citep{newey1987simple} using 5 lags to account for serial correlation in the residuals, which arises from the overlapping nature of the weekly and monthly realized volatility components. Goodness-of-fit is assessed by $R^2$ and adjusted $R^2$. | |
| 152 | − | |
| 153 | −\subsection{Liquidity Analysis}\label{subsec:liquidity_method} | |
| 154 | − | |
| 155 | −We complement the time-series analyses with an assessment of market microstructure quality using two established liquidity measures. | |
| 156 | − | |
| 157 | −\subsubsection{Roll Effective Spread} | |
| 158 | − | |
| 159 | −The Roll implicit spread \citep{roll1984simple} is derived from the first-order autocovariance of returns under the assumption that observed price changes reflect the sum of an efficient price innovation and bid-ask bounce: | |
| 160 | −\begin{equation}\label{eq:roll} | |
| 161 | − \text{Roll} = 2\sqrt{-\text{Cov}(r_t, r_{t-1})}, | |
| 162 | −\end{equation} | |
| 163 | −when $\text{Cov}(r_t, r_{t-1}) < 0$. Positive autocovariance, which can arise from momentum effects, yields an undefined Roll spread; in such cases, we set the Roll spread to zero. The Roll spread is interpreted as an estimate of the effective bid-ask spread and serves as a measure of trading costs. | |
| 164 | − | |
| 165 | −\subsubsection{Amihud Illiquidity Ratio} | |
| 166 | − | |
| 167 | −The Amihud illiquidity ratio \citep{amihud2002illiquidity} measures the price impact of trading: | |
| 168 | −\begin{equation}\label{eq:amihud} | |
| 169 | − \text{ILLIQ}_t = \frac{|r_t|}{V_t}, | |
| 170 | −\end{equation} | |
| 171 | −where $V_t$ is the dollar volume on day $t$. Higher values of ILLIQ indicate that a given volume of trading moves prices by a larger amount, implying lower liquidity. The Amihud ratio is computed on a daily basis and then averaged over rolling windows to produce a time series of liquidity conditions. | |
| 32 | +\subsection{Spread estimation}\label{subsec:liquidity_method} | |
| 172 | 33 | |
| 173 | −\subsection{Inference and Standard Errors} | |
| 34 | +The implicit effective spread of \citet{roll1984simple} is estimated from the first-order serial covariance of daily price changes over a rolling twenty-day window, $\widehat{S}_t=2\sqrt{-\widehat{\mathrm{Cov}}(\Delta p_t,\Delta p_{t-1})}$ when the covariance is negative and zero otherwise. With one price per day the estimator captures the bid--ask bounce only partially and is reported as a descriptive complement to the quoted spreads of the order-book snapshot. The Amihud illiquidity ratio \citep{amihud2002illiquidity} cannot be computed because the price history does not include daily volume; the earlier version of this paper referred to it in error. | |
| 174 | 35 | |
| 175 | −Throughout the analysis, we employ robust inference procedures. For OLS regressions (HAR-RV), we report Newey--West standard errors with lag truncation determined by the sample size \citep{newey1987simple}. For GARCH models, quasi-maximum likelihood standard errors are used. For event studies, cross-sectional standard errors account for cross-event variation. All hypothesis tests are two-sided unless otherwise noted. | |
| 36 | +\subsection{Volatility models}\label{subsec:vol_method} | |
| 176 | 37 | |
| 177 | −For the Granger causality tests, we report both $F$-statistics and $p$-values, with significance assessed at the 1\%, 5\%, and 10\% levels. Lag lengths are selected by the Akaike Information Criterion to balance model fit and parsimony. For the VAR model, we verify the stability condition (all eigenvalues of the companion matrix lie inside the unit circle) to ensure that impulse response functions and variance decompositions are well defined. | |
| 38 | +The conditional volatility of daily log returns on the ``No change'' claim is examined in Appendix~\ref{app:volatility} with GARCH and GJR-GARCH models \citep{bollerslev1986generalized,glosten1993relation} under Gaussian and Student-$t$ innovations, estimated by quasi-maximum likelihood with robust standard errors, and with the heterogeneous autoregressive regression of \citet{corsi2009simple} using absolute and squared daily returns as volatility proxies. Engle's ARCH-LM test \citep{engle1982autoregressive} and Ljung--Box statistics on squared returns are reported alongside, because the presence of conditional heteroskedasticity is itself in question in a sample of 145 observations dominated by a handful of announcement days. | |
modified
paper/sections/results.tex
+40 −85
@@ -3,140 +3,95 @@ | ||
| 3 | 3 | % ============================================================================ |
| 4 | 4 | \section{Results}\label{sec:results} |
| 5 | 5 | |
| 6 | −This section presents the empirical findings organized around the four hypotheses developed in Section~\ref{sec:theoretical}. We begin with the Arrow--Debreu completeness tests, proceed to the event study and information linkage analyses, and conclude with the volatility dynamics results. | |
| 6 | +\subsection{The price of the complete set}\label{subsec:completeness_results} | |
| 7 | 7 | |
| 8 | −\subsection{Arrow--Debreu Completeness}\label{subsec:completeness_results} | |
| 9 | − | |
| 10 | −Table~\ref{tab:completeness} reports the results of the Arrow--Debreu completeness tests for the Federal Reserve rate decision market. The mean state price sum across the 146 daily observations is 1.0205, with a standard deviation of 0.0527. The mean deviation from unity is 0.0248, and the maximum absolute deviation is 0.5700. All individual state prices remain strictly positive throughout the sample, confirming that the non-negativity condition required by the Arrow--Debreu framework is satisfied. | |
| 8 | +Table~\ref{tab:completeness} reports the tests of the pricing restriction for the Fed group (first column) and, for comparison, the election group discussed in Section~\ref{sec:robustness}. Over the 146 days of the main sample the sum of the five state prices averages 1.0167 with a standard deviation of 0.0261; the median is 1.0093, the minimum 0.9605 and the maximum 1.108. The mean overround of 1.67 percentage points has a HAC standard error of 0.44 and is therefore significantly different from zero ($t=3.80$). It is, however, small relative to the quoted spreads of the first weeks and it is concentrated early in the sample: the mean of $\Sigma_t$ is 1.051 (standard deviation 0.029) over the first thirty days and 1.0040 (standard deviation 0.0036) over the last thirty. On 84 percent of days $\Sigma_t$ exceeds one; on 44 percent of days it is within one percentage point of one, on 65 percent within two and on 87 percent within five. | |
| 11 | 9 | |
| 12 | 10 | \input{../results/tables/table3_completeness.tex} |
| 13 | 11 | |
| 14 | −These results are strongly supportive of Hypothesis~\ref{hyp:completeness}. The mean state price sum of 1.0205 exceeds unity by approximately 2 percentage points, which is consistent with a small positive overround attributable to transaction costs and the time value of money. Over the sample period, the effective federal funds rate target was in the range of 4.25--4.50\%, implying a daily risk-free rate of approximately 0.012\%. Over the typical contract horizon of 30--180 days, the implied discount factor $1/(1+r_f)$ ranges from 0.9988 to 0.9926, which alone does not fully account for the 2\% overround. The residual deviation is plausibly attributable to the Polymarket trading fee, gas costs associated with blockchain transactions, and the compensation earned by liquidity providers for bearing adverse selection risk. | |
| 12 | +Panel~C evaluates the executable bounds of equation~\eqref{eq:bounds}. The lower bound $e^{-r_t\tau_t}$ averages 0.989 over the sample and reaches 0.981 at the start, so that $\Sigma_t$ exceeds the buy-and-hold bound by 2.8 percentage points on average and is never below it. Because the overround is positive, the binding bound is the upper one: $\Sigma_t$ lies within $[\delta_t-0.005,\,1.005]$ on 29 percent of days and above 1.005 on 65 percent. Taken at face value this would mean that selling the complete set and converting the NO legs was profitable on most days. The order-book snapshot in Table~\ref{tab:orderbook} shows why the face-value reading is wrong. On 22 May 2026 all five contracts were quoted with one-tick spreads of 0.001, the sum of the best bids was 0.999 and the sum of the best asks 1.004; the daily close recorded for that day, 1.0015, is exactly the sum of the midpoints. Neither direction of the round trip was profitable at the quotes, and the difference between the recorded $\Sigma_t$ and the executable bid-side sum is the half-tick on each of five contracts. Earlier in the sample, when the Roll estimate of the effective spread on the ``No change'' claim alone was between one and three cents (Figure~\ref{fig:liquidity}, Panel~A), a recorded overround of two to five percentage points is of the same order as the spread costs of the five legs. We conclude that the law of one price holds for the complete set within executable bounds, and that the recorded overround is a measurement artefact of last-trade and midpoint prices in thin low-priced claims rather than an unexploited arbitrage. | |
| 13 | + | |
| 14 | +\input{../results/tables/table9_orderbook.tex} | |
| 15 | 15 | |
| 16 | −Figure~\ref{fig:completeness} plots the state price sum $\Sigma(t)$ over the sample period. The series fluctuates around a level slightly above unity, with no apparent trend or structural break. The absence of persistent departures from unity is consistent with Hypothesis~\ref{hyp:no_arb}(b), which predicts that arbitrage forces push the state price sum back toward its equilibrium value when temporary deviations occur. | |
| 16 | +Panel~D confirms that deviations are transitory. The first-order autocorrelation of $\Sigma_t-1$ is 0.72, implying a half-life of 2.1 days, and the Dickey--Fuller statistic of $-2.82$ rejects a unit root at the 10 percent level ($p=0.055$) in a sample of 146 observations. The regression of the deviation on time to resolution has a slope of 0.113 per year (HAC $t=4.87$): the overround falls by about one percentage point per month as the meeting approaches, which is the pattern expected if spreads narrow and arbitrage capital concentrates as the resolution date nears. Figure~\ref{fig:completeness} plots $\Sigma_t$ against the bounds and Figure~\ref{fig:arbitrage} the distribution of the deviations. | |
| 17 | 17 | |
| 18 | 18 | \begin{figure}[htbp] |
| 19 | 19 | \centering |
| 20 | 20 | \includegraphics[width=\textwidth]{../figures/fig2_completeness_test.pdf} |
| 21 | − \caption{State price sum $\Sigma(t)$ for the Federal Reserve rate decision market, December 2025 to May 2026. The horizontal dashed line at unity represents the Arrow--Debreu prediction under zero interest rates. The series fluctuates around 1.02 with standard deviation 0.053, consistent with approximate completeness subject to a small transaction-cost wedge.} | |
| 21 | + \caption{Price of the complete set of five state claims, $\Sigma_t$, with the executable bounds of equation~\eqref{eq:bounds}: the discounted value of one dollar at resolution (dashed, computed from the effective federal funds rate) and one (solid). The shaded band widens each bound by 0.5 percentage points for spread costs.} | |
| 22 | 22 | \label{fig:completeness} |
| 23 | 23 | \end{figure} |
| 24 | 24 | |
| 25 | −The finding that all state prices are strictly positive is a necessary condition for the existence of a unique positive state-price density, which in turn is equivalent to market completeness under the Fundamental Theorem of Asset Pricing (Proposition~\ref{prop:no_arb}). In practical terms, this means that the market continuously prices all five possible rate outcomes as having non-zero probability, which is a strong indicator that the market is actively incorporating information about even low-probability states. | |
| 26 | − | |
| 27 | −Figure~\ref{fig:arbitrage} provides further evidence on no-arbitrage conditions by plotting the time series of arbitrage violations---instances in which the state price sum deviates from the no-arbitrage bounds by more than a threshold calibrated to transaction costs. The frequency and magnitude of such violations are low, suggesting that the no-arbitrage condition holds as a practical matter even if small deviations are statistically detectable. | |
| 28 | − | |
| 29 | 25 | \begin{figure}[htbp] |
| 30 | 26 | \centering |
| 31 | 27 | \includegraphics[width=\textwidth]{../figures/fig12_arbitrage_violations.pdf} |
| 32 | − \caption{Arbitrage violations in the Federal Reserve rate decision market. The figure displays instances in which the state price sum $\Sigma(t)$ deviates from the theoretical no-arbitrage band. Violations are infrequent and small in magnitude, consistent with effective arbitrage enforcement.} | |
| 28 | + \caption{Distribution of the deviation $\Sigma_t-1$ (percentage points) for the Fed group (Panel~A, $T=146$) and the election group (Panel~B, $T=304$). The dashed line in Panel~A marks 0.5 percentage points, the sum of five half-ticks. The single election-group observation above 50 points is an isolated print of 0.50 on an otherwise inactive contract on 9 April 2024.} | |
| 33 | 29 | \label{fig:arbitrage} |
| 34 | 30 | \end{figure} |
| 35 | 31 | |
| 36 | −\subsection{Event Study Results}\label{subsec:event_results} | |
| 37 | − | |
| 38 | −Table~\ref{tab:event_study} reports cumulative abnormal returns (CARs) for the five Fed rate decision contracts around FOMC announcements, CPI releases, and election key dates. The event study results reveal economically meaningful, though not uniformly statistically significant, responses to macroeconomic information releases. | |
| 32 | +Two further remarks are in order. The positivity condition is satisfied throughout---the lowest recorded price is 0.002 for the ``50+ bps increase'' claim---but, as noted in Section~\ref{sec:theoretical}, this is guaranteed by the price grid and carries no information. And the earlier version of this paper reported a mean of 1.0205, a standard deviation of 0.0527 and a maximum absolute deviation of 0.57; those figures include the listing day, on which the five seeded quotes summed to 1.57 before any trade had occurred, and the maximum deviation they reported was that artefact. | |
| 39 | 33 | |
| 40 | −\input{../results/tables/table4_event_study.tex} | |
| 41 | − | |
| 42 | −For FOMC announcements, the ``50+ bps decrease'' contract exhibits a CAR of $-0.615$ over the $[-3,+3]$ window, with a $t$-statistic of $-5.89$ and a $p$-value of 0.107. While the $t$-statistic is large in absolute terms, the $p$-value reflects the small number of events ($K = 2$), which limits the power of cross-sectional tests. The ``No change'' contract shows a near-zero CAR of $-0.041$ ($t = -0.08$, $p = 0.951$), consistent with the expectation that FOMC announcements that confirm the market's prior beliefs do not generate abnormal returns in the modal contract. The ``25 bps decrease'' contract exhibits a CAR of $-0.054$ ($t = -0.21$, $p = 0.866$), again close to zero. | |
| 43 | − | |
| 44 | −For CPI releases, the most notable finding is the large negative CAR of $-0.999$ for the ``25 bps decrease'' contract ($t = -3.01$, $p = 0.095$), which is statistically significant at the 10\% level. This result is consistent with CPI releases during the sample period containing inflationary surprises that reduced the perceived probability of near-term rate cuts. Higher-than-expected inflation prints shift probability mass from ``decrease'' states to ``No change'' or ``increase'' states, and the magnitude of the CAR---nearly one log unit---indicates a substantial repricing of rate cut probabilities around CPI releases. The ``No change'' contract shows a CAR of $-0.228$ ($t = -2.83$, $p = 0.105$) around CPI events, suggesting some temporary uncertainty about the modal outcome even as the direction of the probability shift favored policy inaction. | |
| 34 | +\subsection{The risk-neutral distribution of the June decision}\label{subsec:rnd_results} | |
| 45 | 35 | |
| 46 | −For election key dates, the CAR for the election contracts is $-0.057$ ($t = -0.88$, $p = 0.470$), which is not statistically significant. The wider event window ($[-5,+5]$ days) and the gradual nature of political information incorporation may dilute the event study's ability to detect abnormal returns around specific political dates. | |
| 47 | − | |
| 48 | −Figure~\ref{fig:event_study_cars} displays the cumulative abnormal returns graphically, showing the temporal pattern of CARs within the event windows. The figure reveals that for FOMC events, much of the abnormal return occurs on the announcement day itself, while for CPI events, the adjustment is more gradual, extending over 2--3 days after the release. | |
| 36 | +Figure~\ref{fig:rn_density} shows the normalised distribution $q_{j,t}$ at five dates and Figure~\ref{fig:eq_path} the implied expected policy change of equation~\eqref{eq:eq} and its daily changes. At the start of the sample the distribution is bimodal, with 36 percent of risk-neutral mass on ``No change'' and 53 percent on a 25-basis-point cut; the expected policy change is $-15.5$ basis points and its risk-neutral standard deviation 21.7 basis points. By 22 May 2026 the distribution is concentrated on ``No change'' (0.978), the expected change is $-0.1$ basis points and the standard deviation 5.3 basis points. The expected change never exceeded $-0.05$ or fell below $-17.4$ basis points. Its path is dominated by a small number of large moves: $+6.0$ basis points on 18 March 2026 (FOMC), $-1.7$ basis points on 9 January 2026 (employment report), and $+1.3$ and $+1.2$ basis points on the CPI releases of 11 March and 11 February. | |
| 49 | 37 | |
| 50 | 38 | \begin{figure}[htbp] |
| 51 | 39 | \centering |
| 52 | − \includegraphics[width=\textwidth]{../figures/fig5_event_study_cars.png} | |
| 53 | − \caption{Cumulative abnormal returns (CARs) around macroeconomic events. The figure plots CARs for the Federal Reserve rate decision contracts in event time, with day 0 corresponding to the announcement date. FOMC events (left) show concentrated adjustment on the announcement day; CPI events (right) show more gradual incorporation.} | |
| 54 | − \label{fig:event_study_cars} | |
| 40 | + \includegraphics[width=\textwidth]{../figures/fig3_risk_neutral_density.pdf} | |
| 41 | + \caption{Risk-neutral distribution of the June 2026 decision, $q_{j,t}=p_{j,t}/\Sigma_t$, at five dates spanning the sample.} | |
| 42 | + \label{fig:rn_density} | |
| 55 | 43 | \end{figure} |
| 56 | 44 | |
| 57 | −\subsection{Granger Causality and Information Linkages}\label{subsec:granger_results} | |
| 58 | − | |
| 59 | −Table~\ref{tab:granger} reports the results of pairwise Granger causality tests among the Fed ``No Change'' contract returns, SPY returns, BTC returns, and VIX returns. The lag length, selected by AIC, ranges from 1 to 4 across the different specifications. | |
| 60 | − | |
| 61 | −\input{../results/tables/table5_granger.tex} | |
| 62 | − | |
| 63 | −The most striking finding is the strong Granger causality from the Fed ``No Change'' contract to VIX returns ($F = 4.96$, $p = 0.001$), which is significant at the 1\% level. This result indicates that changes in the prediction market's assessment of Federal Reserve policy have predictive power for future movements in the VIX, the market's primary gauge of equity volatility and uncertainty. The economic interpretation is intuitive: as the probability of ``No change'' increases, uncertainty about monetary policy decreases, which should be associated with lower realized and implied volatility. The Granger-causal relationship from prediction market prices to VIX returns suggests that information is incorporated into prediction market prices before it is fully reflected in the options market's pricing of aggregate uncertainty. | |
| 64 | − | |
| 65 | −In the reverse direction, VIX returns Granger-cause Fed ``No Change'' returns ($F = 2.73$, $p = 0.049$), significant at the 5\% level. This bidirectional Granger causality between the prediction market and VIX is consistent with a dynamic information-sharing process in which both markets contribute to the price discovery of monetary policy expectations. Elevated VIX levels may signal economic stress that increases the probability of rate cuts, thereby affecting prediction market prices; conversely, shifts in rate expectations affect the broader risk environment priced by the VIX. | |
| 66 | − | |
| 67 | −The Fed ``No Change'' contract also Granger-causes SPY returns at the 10\% level ($F = 2.42$, $p = 0.072$), indicating that prediction market price movements lead equity market returns. This finding aligns with the theoretical prediction that state-contingent claims markets, by directly pricing policy outcomes, may incorporate information faster than broad equity indices that are affected by many factors beyond monetary policy. | |
| 68 | − | |
| 69 | −Bitcoin returns do not exhibit statistically significant Granger causality with the Fed ``No Change'' contract in either direction (Fed $\to$ BTC: $F = 1.51$, $p = 0.196$; BTC $\to$ Fed: $F = 1.95$, $p = 0.110$), though the point estimates suggest a marginally stronger linkage from BTC to Fed than the reverse. This is consistent with Bitcoin prices being driven primarily by crypto-specific factors (regulatory news, network activity, speculative flows) rather than monetary policy expectations. | |
| 70 | − | |
| 71 | −Among the traditional assets, BTC Granger-causes VIX ($F = 3.57$, $p = 0.010$), significant at the 1\% level, suggesting that cryptocurrency market dynamics spill over into the equity volatility market. SPY does not Granger-cause BTC ($F = 0.30$, $p = 0.585$), indicating that equity market returns contain little predictive information for cryptocurrency returns. | |
| 72 | − | |
| 73 | −Figure~\ref{fig:granger_heatmap} presents the Granger causality results in heatmap form, providing a visual summary of the directional information linkages across the four markets. | |
| 74 | − | |
| 75 | 45 | \begin{figure}[htbp] |
| 76 | 46 | \centering |
| 77 | − \includegraphics[width=\textwidth]{../figures/fig7_granger_heatmap.pdf} | |
| 78 | − \caption{Granger causality heatmap. Each cell displays the $F$-statistic for the Granger causality test from the row variable to the column variable. Darker shading indicates stronger Granger-causal relationships. The most prominent linkages run from Fed ``No Change'' to VIX and from BTC to VIX.} | |
| 79 | − \label{fig:granger_heatmap} | |
| 47 | + \includegraphics[width=\textwidth]{../figures/fig4_expected_policy_change.pdf} | |
| 48 | + \caption{Upper panel: risk-neutral expected change in the upper bound of the target range at the June 2026 meeting, $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ (basis points), with FOMC statements (triangles), CPI releases (circles) and employment reports (squares). Lower panel: daily changes; release days in colour.} | |
| 49 | + \label{fig:eq_path} | |
| 80 | 50 | \end{figure} |
| 81 | 51 | |
| 82 | −\subsection{VAR Estimates}\label{subsec:var_results} | |
| 83 | − | |
| 84 | −Table~\ref{tab:var} reports the coefficient estimates from the four-variable VAR model. The VAR complements the pairwise Granger causality tests by providing a system-level view of the dynamic interactions among prediction market returns and traditional asset returns. | |
| 52 | +\subsection{Scheduled releases}\label{subsec:event_results} | |
| 85 | 53 | |
| 86 | −\input{../results/tables/table6_var.tex} | |
| 54 | +Table~\ref{tab:event_study} examines Hypothesis~\ref{hyp:info}. Panel~A lists every release in the sample with the day-0 change and the cumulative changes over three- and seven-day windows, for both the expected policy change and the ``No change'' state price. The four FOMC statements produced day-0 changes in the modal state price of $+1.5$, $-11.5$, $+23.0$ and $0.0$ percentage points. The January statement was read as making a June cut more likely---the ``25 bps decrease'' price rose by six points and the two tightening states, which had been nearly worthless, were briefly bid up to 0.054 and 0.037, so that the expected policy change actually rose slightly while its dispersion increased; the March statement removed most of the probability of a cut and moved the expected change by six basis points. The May statement, one week before the end of the sample, left the distribution unchanged. Among the data releases, the employment report of 6 March 2026 lowered the ``No change'' price by 12 points on the day and the CPI release of 11 February raised it by 7 points; the remaining releases moved it by less than five points. | |
| 87 | 55 | |
| 88 | −The VAR estimates confirm the patterns identified in the Granger causality analysis. The lagged Fed ``No Change'' return enters the VIX equation with a negative coefficient, consistent with the interpretation that increases in the probability of policy inaction are associated with subsequent declines in implied volatility. The lagged VIX return enters the Fed ``No Change'' equation with a positive coefficient, consistent with the interpretation that increases in market uncertainty are associated with subsequent increases in the probability that the Fed holds rates steady (a ``flight to safety'' in monetary policy expectations). | |
| 89 | − | |
| 90 | −The intercept terms across all four equations are close to zero, indicating no significant drift in any of the return series over the sample period---a finding consistent with the approximate martingale property expected of efficient market prices. | |
| 56 | +\input{../results/tables/table4_event_study.tex} | |
| 91 | 57 | |
| 92 | −\subsection{Volatility Dynamics}\label{subsec:vol_results} | |
| 58 | +Panel~B pools the releases. On the thirteen release days the absolute change in the expected policy change averages 1.15 basis points against 0.51 on the other 132 days (ratio 2.3); the variance ratio is 4.9, the Brown--Forsythe test rejects equal variances ($p=0.008$) and the Mann--Whitney test rejects equal distributions ($p=0.012$). For the ``No change'' state price the absolute change averages 5.5 against 1.4 percentage points, the variance ratio is 14.2 and both tests reject at the 1 percent level. By release type, the excess variance is concentrated on FOMC days (variance ratios of 10.6 and 30.4) and, for the state price, on employment-report days (variance ratio 4.5, Brown--Forsythe $p=0.023$); the four CPI releases in the sample show no excess variance in either measure. The absence of a CPI effect should not be over-interpreted: four observations cannot distinguish a small effect from none, and the CPI prints of the period may simply have been close to expectations. Over the same dates the absolute daily change in the ten-year Treasury yield was 3.3 basis points on release days and 3.3 on other days, so that the Treasury market shows no release-day excess variance at the daily frequency in this particular sample either; the difference between the two markets is that the Polymarket contract prices a single meeting and therefore reacts almost exclusively to information about that meeting. | |
| 93 | 59 | |
| 94 | −\subsubsection{GARCH and GJR-GARCH Estimates} | |
| 60 | +The last row of Panel~B compares weekend and weekday observations among non-release days. Weekend changes in the expected policy change have a standard deviation about 0.6 times that of weekday changes (variance ratio 0.33, Brown--Forsythe $p=0.11$) and weekend changes in the modal state price a variance ratio of 0.34 ($p=0.053$). Weekend trading therefore carries real but reduced information flow, roughly one third of weekday variance, which is close to what \citet{french1986stock} found for equity returns over non-trading periods and consistent with the view that most of the news relevant to the June decision arrives during business hours. Figure~\ref{fig:event_study_cars} displays the distributions. | |
| 95 | 61 | |
| 96 | −Table~\ref{tab:garch} reports the parameter estimates for the GARCH(1,1) and GJR-GARCH(1,1) models estimated on the Fed ``No Change'' contract returns. | |
| 62 | +\begin{figure}[htbp] | |
| 63 | + \centering | |
| 64 | + \includegraphics[width=\textwidth]{../figures/fig5_event_study_cars.pdf} | |
| 65 | + \caption{Absolute daily changes in the risk-neutral expected policy change (Panel~A, basis points) and in the ``No change'' state price (Panel~B, percentage points) on non-release days and on employment-report, CPI and FOMC days. Horizontal bars are group means.} | |
| 66 | + \label{fig:event_study_cars} | |
| 67 | +\end{figure} | |
| 97 | 68 | |
| 98 | −\input{../results/tables/table7_garch.tex} | |
| 69 | +\subsection{Lead--lag relations with conventional markets}\label{subsec:granger_results} | |
| 99 | 70 | |
| 100 | −The GARCH(1,1) estimates reveal substantial volatility clustering. The ARCH coefficient $\alpha_1 = 0.195$ indicates that yesterday's squared shock has a meaningful impact on today's conditional variance, while the GARCH coefficient $\beta_1 = 0.805$ indicates high persistence. The sum $\alpha_1 + \beta_1 = 1.000$ indicates near-integrated volatility dynamics, implying that shocks to conditional variance decay very slowly. The conditional mean $\mu = 0.150$ is positive but small. The GARCH(1,1) model achieves an AIC of 940.68. | |
| 71 | +Table~\ref{tab:granger} reports the Granger tests of Hypothesis~\ref{hyp:leadlag} on 110 trading days from 12 December 2025 to 21 May 2026. With the lag order chosen by information criteria, none of the eight directional tests rejects the null at the 10 percent level: the $p$-values range from 0.19 to 0.90 for the conventional $F$-test and from 0.20 to 0.88 for the HAC Wald test. The results are stable at two lags. At five lags two cells fall below 10 percent---the expected policy change to the VIX ($p=0.059$, HAC $p=0.033$) and to Bitcoin ($p=0.006$, HAC $p=0.317$)---but these appear in a block of 24 additional tests, are not supported by the information criteria, and in the Bitcoin case do not survive HAC inference. We read Table~\ref{tab:granger} as consistent with the null of no daily-horizon predictability in either direction. | |
| 101 | 72 | |
| 102 | −The GJR-GARCH(1,1) model provides a substantially better fit, with an AIC of 894.19---a reduction of 46.49 relative to the standard GARCH. This large improvement in AIC constitutes strong evidence in favor of the asymmetric specification. The leverage coefficient $\gamma_1 = 0.304$ indicates that negative return shocks increase conditional variance by approximately 30 percentage points more than positive shocks of equal magnitude. The symmetric ARCH coefficient falls to $\alpha_1 \approx 0.000$ in the GJR specification, indicating that virtually all of the ARCH effect is driven by the asymmetric component. The GARCH coefficient rises to $\beta_1 = 0.848$, maintaining high persistence. | |
| 73 | +\input{../results/tables/table5_granger.tex} | |
| 103 | 74 | |
| 104 | −The presence of leverage effects in prediction market returns is a novel empirical finding. In equity markets, leverage effects are commonly attributed to the financial leverage channel (declining stock prices increase leverage ratios, which increases equity risk) or to the volatility feedback channel (increases in expected volatility reduce expected returns, causing a contemporaneous price decline). For prediction markets, neither channel applies directly, as prediction market contracts do not represent claims on levered firms. An alternative interpretation is that the leverage effect in prediction markets reflects an asymmetric information channel: negative return shocks (which correspond to declines in the probability of the modal outcome) are associated with greater uncertainty about the true state of the world, which increases the intensity of trading and the magnitude of subsequent price fluctuations. This interpretation is consistent with the theoretical models of \citet{kyle1985continuous} and \citet{glosten1985bid}, in which increases in information asymmetry lead to wider spreads and greater price impact. | |
| 75 | +Table~\ref{tab:var} reports the five-variable VAR(1). No lagged variable is significant in the equation for the expected policy change, whose $R^2$ is 0.018, and the lagged expected policy change is insignificant in the four other equations. The contemporaneous correlations, not shown in the table, are informative about the direction of the common shocks: the daily change in the expected policy change has a correlation of 0.26 with the change in the ten-year yield and of $-0.15$ with the SPY return, with near-zero correlations with the VIX and Bitcoin. The Polymarket contract on the June meeting and the Treasury market thus respond to the same macroeconomic news within the day, in the direction one would expect---news that raises the expected policy rate raises long yields---but neither market's daily change predicts the other's. Figure~\ref{fig:granger_heatmap} shows the complete matrix of $p$-values. | |
| 105 | 76 | |
| 106 | −Figure~\ref{fig:volatility} plots the conditional volatility series implied by both models, illustrating the time-varying nature of prediction market volatility and the differences between the symmetric and asymmetric specifications. | |
| 77 | +\input{../results/tables/table6_var.tex} | |
| 107 | 78 | |
| 108 | 79 | \begin{figure}[htbp] |
| 109 | 80 | \centering |
| 110 | − \includegraphics[width=\textwidth]{../figures/fig9_volatility.pdf} | |
| 111 | − \caption{Conditional volatility of the Fed ``No Change'' contract returns estimated by the GARCH(1,1) and GJR-GARCH(1,1) models. The GJR-GARCH model captures asymmetric responses to positive and negative shocks, producing higher volatility estimates following negative return shocks.} | |
| 112 | − \label{fig:volatility} | |
| 81 | + \includegraphics[width=0.75\textwidth]{../figures/fig7_granger_heatmap.pdf} | |
| 82 | + \caption{Granger-causality $p$-values (bivariate VAR(1), 110 trading days) from the column variable to the row variable. ``Fed'' denotes the daily change in the Polymarket-implied expected policy change.} | |
| 83 | + \label{fig:granger_heatmap} | |
| 113 | 84 | \end{figure} |
| 114 | 85 | |
| 115 | −\subsubsection{HAR-RV Estimates} | |
| 116 | − | |
| 117 | −Table~\ref{tab:har_rv} reports the HAR-RV model estimates for the Fed ``No Change'' contract. The model achieves an $R^2$ of 0.106 and an adjusted $R^2$ of 0.083. | |
| 118 | − | |
| 119 | −\input{../results/tables/table8_har_rv.tex} | |
| 120 | − | |
| 121 | −The daily realized volatility component has a coefficient of $\beta_d = 0.008$ ($t = 0.07$), which is statistically insignificant and economically small. The weekly component has a larger and marginally more significant coefficient of $\beta_w = 0.143$ ($t = 1.33$), while the monthly component contributes $\beta_m = 0.030$ ($t = 0.80$). None of the individual coefficients reach conventional significance levels, though the model as a whole provides some predictive content, as reflected in the positive $R^2$. | |
| 86 | +The earlier version of this paper reported that the Fed contract Granger-caused the VIX at the 1 percent level and the SPY at the 10 percent level, and that the VIX Granger-caused the Fed contract at the 5 percent level. Appendix~\ref{app:reconciliation} shows that these results were produced jointly by the one-day misalignment of the Polymarket calendar and by the selection, for each pair, of the lag with the smallest $p$-value among five; with the alignment corrected, the same selection procedure yields $p$-values of 0.06, 0.37 and 0.26 for the three relations, and with the lag fixed by information criteria the $p$-values are 0.53, 0.59 and 0.35. | |
| 122 | 87 | |
| 123 | −The relatively modest $R^2$ of 10.6\% contrasts with the typical performance of HAR-RV models in equity and foreign exchange markets, where $R^2$ values in the range of 30--60\% are common \citep{corsi2009simple,andersen2003modeling}. Several factors may account for this difference. First, our use of daily absolute returns as a proxy for realized volatility introduces substantial measurement noise relative to the high-frequency realized volatility estimators used in the original HAR-RV literature. Second, prediction market prices are driven by discrete information events (FOMC announcements, data releases) that generate discontinuous price jumps, whereas the HAR-RV model is designed to capture the smooth, persistent volatility dynamics characteristic of continuous-time diffusion processes. Third, the bounded nature of prediction market prices (between 0 and 1) mechanically compresses realized volatility as prices approach their boundaries, violating the implicit stationarity assumption of the HAR-RV model. | |
| 88 | +\subsection{Spreads and depth}\label{subsec:liquidity_results} | |
| 124 | 89 | |
| 125 | −Despite these limitations, the positive $R^2$ indicates that the heterogeneous structure of realized volatility---the cascade from daily to weekly to monthly horizons---provides some useful information for forecasting prediction market volatility. The finding that the weekly component has the largest coefficient is consistent with the weekly rhythm of macroeconomic data releases (employment, inflation, retail sales) that drive monetary policy expectations. | |
| 126 | − | |
| 127 | −\subsection{Liquidity Dynamics}\label{subsec:liquidity_results} | |
| 128 | − | |
| 129 | −Figure~\ref{fig:liquidity} presents the time series of liquidity measures---the Roll effective spread and the Amihud illiquidity ratio---for the Fed rate decision contracts. | |
| 90 | +Figure~\ref{fig:liquidity} completes the microstructure evidence. Panel~A plots the Roll estimate of the effective spread for the two main claims over rolling twenty-day windows. For the ``No change'' claim the estimate averages 1.3 cents, falling from 1.6 cents over the first month to 1.1 cents over the last; in 32 percent of windows the serial covariance of price changes is positive and the estimator is set to zero, a familiar limitation of the Roll measure at daily frequency when price changes are dominated by information rather than by bounce. Panel~B shows the cumulative depth of the order book on 22 May 2026 as a function of the distance from the midpoint. The modal claim is deep on both sides---about \$0.75 million bid and \$0.60 million offered within one cent of the best quotes---whereas the four low-priced claims are quoted at one-tick spreads with substantial depth on the bid side but only a few thousand dollars offered within one cent; a buyer of a complete set at market would therefore have moved the low-priced legs by several ticks even for a modest size. The relative spread ranges from 0.1 percent for the modal claim to 40 percent for the ``50+ bps increase'' claim quoted at 0.002--0.003: in relative terms the tails of the state space are expensive to trade, which is one more reason to treat the recorded prices of those claims, and the overround they generate, with caution. | |
| 130 | 91 | |
| 131 | 92 | \begin{figure}[htbp] |
| 132 | 93 | \centering |
| 133 | 94 | \includegraphics[width=\textwidth]{../figures/fig10_liquidity.pdf} |
| 134 | − \caption{Liquidity dynamics for the Federal Reserve rate decision market. The upper panel displays the Roll effective spread, and the lower panel displays the Amihud illiquidity ratio. Both measures indicate tight liquidity conditions for the ``No change'' contract, with periodic spikes around macroeconomic announcement dates.} | |
| 95 | + \caption{Panel~A: Roll (1984) estimate of the effective spread (cents) for the ``No change'' and ``25 bps decrease'' claims, rolling twenty-day windows. Panel~B: cumulative resting depth of the five order books on 22 May 2026 (USD thousand, log scale) as a function of the distance from the midpoint (cents, log scale); ask side solid, bid side dashed.} | |
| 135 | 96 | \label{fig:liquidity} |
| 136 | 97 | \end{figure} |
| 137 | − | |
| 138 | −The liquidity measures reveal two patterns. First, the ``No change'' contract, which is the most actively traded of the five contracts, exhibits relatively tight spreads and low price impact, consistent with the theoretical prediction that liquidity concentrates in contracts where information asymmetry is lowest \citep{glosten1985bid}. The modal outcome attracts the most diverse set of traders (informed and uninformed), leading to competitive liquidity provision and narrow spreads. | |
| 139 | − | |
| 140 | −Second, both liquidity measures exhibit time variation, with periodic spikes around macroeconomic announcement dates. The widening of spreads and the increase in price impact around FOMC and CPI releases are consistent with the \citet{kyle1985continuous} model, in which increases in information asymmetry around news events lead market makers to widen their quotes to compensate for adverse selection risk. After the announcement, liquidity recovers as the information asymmetry is resolved and the market reaches a new equilibrium. | |
| 141 | − | |
| 142 | −These microstructure findings complement the completeness and information aggregation results. The observation that prediction market liquidity is sufficient to support tight spreads and low price impact for high-profile contracts suggests that the market's information aggregation function is not unduly impaired by microstructure frictions. At the same time, the periodic deterioration of liquidity around information events highlights the ongoing tension between information aggregation and liquidity provision that characterizes all financial markets \citep{grossman1980impossibility}. | |
modified
paper/sections/robustness.tex
+13 −67
@@ -1,85 +1,31 @@ | ||
| 1 | 1 | % ============================================================================ |
| 2 | −% Section 7: Robustness Checks and Additional Analysis | |
| 2 | +% Section 7: The 2024 Election Market and Further Checks | |
| 3 | 3 | % ============================================================================ |
| 4 | −\section{Robustness and Additional Analysis}\label{sec:robustness} | |
| 4 | +\section{The 2024 Election Market and Further Checks}\label{sec:robustness} | |
| 5 | 5 | |
| 6 | −This section presents robustness checks on the main findings and extends the analysis to the 2024 U.S.\ Presidential Election market. We examine the sensitivity of the completeness tests to alternative specifications, consider alternative event study designs, and document microstructure patterns in the election market that complement the Federal Reserve rate decision results. | |
| 6 | +\subsection{The complete set of seventeen candidate claims}\label{subsec:election} | |
| 7 | 7 | |
| 8 | −\subsection{Alternative Completeness Measures} | |
| 8 | +The ``Presidential Election Winner 2024'' event is the most heavily traded market in the platform's history and provides a state space more than three times larger than the Fed group. The second column of Table~\ref{tab:completeness} reports the pricing statistics over 304 daily closes from 5 January to 5 November 2024. The sum of the seventeen prices averages 1.0146 with a standard deviation of 0.0313 and a median of 1.0105; the mean overround of 1.46 percentage points has a HAC standard error of 0.20. The overround exceeds one on 92 percent of days, is within two percentage points of one on 74 percent of days and within five on 99 percent. As in the Fed group it shrinks towards resolution---1.022 over the first thirty days, 1.0077 (standard deviation 0.0011) over the last thirty---and the slope on time to resolution is positive (0.020 per year, HAC $t=3.73$). Deviations are far less persistent than in the Fed group: the first-order autocorrelation is 0.06 and the Dickey--Fuller statistic $-16.4$, so that a deviation on one day is essentially gone the next. The maximum of 1.515 is a single day, 9 April 2024, on which the claim on one minor candidate printed a trade at 0.50 against surrounding closes of 0.0015 and 0.0020; it illustrates once more that a recorded daily price on an inactive claim is not an executable quote, and the median-based statistics in the table are unaffected by it. | |
| 9 | 9 | |
| 10 | −The baseline completeness test in Section~\ref{subsec:completeness_results} evaluates whether the mean state price sum equals unity. We consider two alternative approaches to assess robustness. | |
| 10 | +The lower bound is further from one in this market than in the Fed group because the horizon is longer: $e^{-r_t\tau_t}$ averages 0.978 and is 0.957 in January 2024 when the effective rate was 5.33 percent and the election ten months away. The complete set therefore traded on average 3.7 percentage points above its discounted value, and the entire overround is again on the upper side of the band. With seventeen claims, fifteen of which traded at less than two cents for most of the sample, the sum of half-spreads alone accounts for about one percentage point at a tick of 0.001 and for far more at the one-cent tick that applies to most of the price range on the platform. The evidence from the two state spaces is therefore consistent: the complete set is priced at or marginally above one, the time value of money is not reflected in the prices, and the measured overround is of the order of the spread costs of the low-priced legs. | |
| 11 | 11 | |
| 12 | −\subsubsection{Implied Discount Factor Adjustment} | |
| 13 | − | |
| 14 | −The theoretical prediction under Arrow--Debreu completeness is that $\Sigma(t) = 1/(1+r_f)$, not that $\Sigma(t) = 1$. Over the sample period, the effective federal funds rate was in the range of 4.25--4.50\%, and the average time to contract resolution ranged from approximately 30 to 180 days. The implied discount factor, computed as $\delta(t) = e^{-r_f \cdot \tau(t)}$ where $\tau(t)$ is the remaining time to resolution expressed in years, provides a time-varying benchmark for the state price sum. | |
| 15 | − | |
| 16 | −After adjusting for the implied discount factor, the mean deviation of $\Sigma(t)$ from $1/(1+r_f)$ falls to approximately 1.8 percentage points, reducing but not eliminating the overround. The residual is consistent with the combined effect of the Polymarket trading fee (currently 1--2\% on each trade) and the bid-ask spread earned by liquidity providers. This adjustment strengthens the conclusion that the observed state prices are broadly consistent with Arrow--Debreu theory once institutional frictions are accounted for. | |
| 17 | − | |
| 18 | −\subsubsection{Rolling Window Estimates} | |
| 19 | − | |
| 20 | −To assess the stability of the completeness condition over time, we compute the mean and standard deviation of $\Sigma(t)$ over rolling 30-day windows. The rolling mean exhibits no significant trend, fluctuating between 1.00 and 1.05 throughout the sample. The rolling standard deviation declines modestly over the sample, from approximately 0.06 in the early period to 0.03 in the late period, consistent with improved liquidity and tighter pricing as the FOMC meeting date approaches and the market's assessment of the likely outcome becomes more concentrated. | |
| 21 | − | |
| 22 | −\subsection{Alternative Event Study Specifications} | |
| 23 | − | |
| 24 | −\subsubsection{Market Model Benchmark} | |
| 25 | − | |
| 26 | −The baseline event study employs a constant mean return model as the benchmark. As a robustness check, we re-estimate abnormal returns using a market model that includes the SPY return as a regressor: | |
| 27 | −\begin{equation}\label{eq:market_model} | |
| 28 | − r_j(t) = \alpha_j + \beta_j r_t^{\text{SPY}} + \varepsilon_j(t). | |
| 29 | −\end{equation} | |
| 30 | −The market model abnormal returns are qualitatively similar to the constant mean returns, with slightly smaller standard errors due to the additional explanatory power of the market factor. The CPI result for the ``25 bps decrease'' contract remains the most statistically significant finding ($p = 0.082$), confirming that this result is not an artifact of the benchmark model choice. | |
| 31 | − | |
| 32 | −\subsubsection{Narrower Event Windows} | |
| 33 | − | |
| 34 | −We re-estimate CARs using narrower event windows of $[-1, +1]$ days (3 trading days) for FOMC and CPI events. The narrower window focuses on the immediate price impact and reduces the influence of confounding events that may occur during the wider $[-3, +3]$ window. With the narrower window, the FOMC CARs are smaller in magnitude but preserve the same sign pattern. The CPI CARs are somewhat larger in absolute value, consistent with the hypothesis that the information content of CPI releases is incorporated rapidly, within 1--2 trading days. | |
| 35 | − | |
| 36 | −\subsubsection{Patell Test Statistic} | |
| 37 | − | |
| 38 | −As an alternative to the cross-sectional $t$-statistic, we compute the \citet{patell1976corporate} standardized residual test, which normalizes each event's CAR by its own estimated standard deviation before averaging. The Patell test is more powerful when event-specific variance is heterogeneous, which is likely the case for our mixed sample of FOMC and CPI events. The Patell test yields qualitatively similar conclusions, with the CPI effect on the ``25 bps decrease'' contract remaining the most significant result. | |
| 39 | − | |
| 40 | −\subsection{Sensitivity of Granger Causality Results} | |
| 41 | − | |
| 42 | −\subsubsection{Alternative Lag Specifications} | |
| 43 | − | |
| 44 | −The baseline Granger causality tests use AIC-selected lag lengths. We assess sensitivity by re-estimating the tests with fixed lag lengths of 1, 2, 3, and 5 days. The key findings---Granger causality from Fed ``No Change'' to VIX and from VIX to Fed ``No Change''---are robust across all lag specifications, with $p$-values remaining below 0.05 for the Fed-to-VIX direction in all cases. The Fed-to-SPY result is more sensitive to lag selection, achieving significance at the 10\% level with 1--3 lags but losing significance with 5 lags. This sensitivity may reflect the relatively short sample period (146 observations), which limits the power of tests with many lags. | |
| 45 | − | |
| 46 | −\subsubsection{Subsample Analysis} | |
| 47 | − | |
| 48 | −We split the sample at the midpoint (approximately March 2026) and re-estimate the Granger causality tests on each subsample. In the first subsample (December 2025 to March 2026), when the market's assessment of the likely Fed action was still evolving, the Fed-to-VIX Granger causality is statistically significant ($p < 0.05$). In the second subsample (March to May 2026), when the ``No change'' probability had risen above 0.90 and exhibited less variation, the Fed-to-VIX relationship weakens. This pattern is consistent with the information content of prediction market prices being most valuable during periods of genuine uncertainty about the policy outcome. | |
| 49 | − | |
| 50 | −\subsection{GARCH Model Robustness} | |
| 51 | − | |
| 52 | −\subsubsection{Student-$t$ Innovations} | |
| 53 | − | |
| 54 | −The baseline GARCH and GJR-GARCH models assume conditionally Gaussian innovations. Given the excess kurtosis documented in Table~\ref{tab:summary_stats}, we re-estimate both models with Student-$t$ distributed innovations, which accommodate fat tails through an additional degrees-of-freedom parameter. The Student-$t$ models yield slightly lower AIC values than their Gaussian counterparts, confirming the presence of conditional leptokurtosis. However, the key qualitative finding---that the GJR-GARCH dominates the standard GARCH---is preserved regardless of the distributional assumption. The leverage coefficient $\gamma_1$ remains positive and of similar magnitude (0.28--0.32) across specifications. | |
| 55 | − | |
| 56 | −\subsubsection{EGARCH Alternative} | |
| 57 | − | |
| 58 | −As a further check on the asymmetry finding, we estimate the EGARCH model of \citet{nelson1991conditional}, which parameterizes the leverage effect in the log-variance rather than the level of variance. The EGARCH model yields a negative leverage coefficient (as expected under the EGARCH sign convention), confirming the asymmetric volatility response documented by the GJR-GARCH. The EGARCH AIC is comparable to the GJR-GARCH, indicating that the choice between the two asymmetric specifications does not qualitatively affect the conclusions. | |
| 59 | − | |
| 60 | −\subsection{2024 U.S.\ Presidential Election Case Study}\label{subsec:election} | |
| 61 | − | |
| 62 | −The 2024 U.S.\ Presidential Election market provides an out-of-sample environment in which to assess the generalizability of the patterns observed in the Federal Reserve rate decision market. The election market differs from the Fed market in several important respects: the outcome space is larger (17 candidates versus 5 rate actions), the event type is political rather than macroeconomic, and the resolution mechanism depends on a complex electoral process rather than a single committee decision. | |
| 63 | − | |
| 64 | −Figure~\ref{fig:election} presents the time series of candidate prices in the election market. Donald Trump's contract price exhibited a gradual increase over the sample period, reaching a peak near 0.65 in the weeks before the election and settling at a final price of 0.58. The second-ranked candidate's contract showed the mirror-image decline. Minor candidate contracts traded at low single-digit levels throughout the sample, reflecting the market's concentrated assessment that the election was essentially a two-candidate race. | |
| 12 | +Figure~\ref{fig:election} plots the five most traded candidate claims and the sum of all seventeen. The price of the Trump claim ranged from 0.405 to 0.705, the maximum of 0.705 being reached on 15 July 2024 after the attempted assassination of 13 July (0.595 on 12 July, 0.695 on 14 July). President Biden's withdrawal on 21 July moved his claim from 0.0695 to 0.0005 and Vice-President Harris's from 0.18 to 0.32 within a day, and the debate of 10 September moved the Trump claim from 0.5225 to 0.496 over two days. The Trump claim peaked at 0.6655 on 29 October and closed at 0.58 on the evening of 5 November, with the Harris claim at 0.4215 and the fifteen remaining claims summing to 0.0075. The earlier version of this paper described this final value as a post-election ``convergence'' to 0.58 and inferred a settlement delay; the description was wrong, since the sample ends before the result was known, and the 0.58 is simply the market's last pre-result price. The market resolved to the Trump claim after the election, outside our sample. | |
| 65 | 13 | |
| 66 | 14 | \begin{figure}[htbp] |
| 67 | 15 | \centering |
| 68 | 16 | \includegraphics[width=\textwidth]{../figures/fig11_election_case_study.pdf} |
| 69 | − \caption{2024 U.S.\ Presidential Election market on Polymarket. The figure plots daily closing prices for the major candidate contracts over 307 trading days. Trump's contract (upper line) exhibits a gradual rise to a final price of 0.58. The market demonstrates the classic pattern of an Arrow--Debreu economy converging toward a degenerate distribution as the resolution date approaches.} | |
| 17 | + \caption{Upper panel: daily closing prices of the five most traded claims in the ``Presidential Election Winner 2024'' event, 4 January to 5 November 2024; dotted lines mark the attempted assassination (13 July), President Biden's withdrawal (21 July), the Harris--Trump debate (10 September) and election day (5 November). Lower panel: price of the complete set of seventeen claims with the discounted lower bound (dashed) and one (solid).} | |
| 70 | 18 | \label{fig:election} |
| 71 | 19 | \end{figure} |
| 72 | 20 | |
| 73 | −The election market exhibits several microstructure features that parallel those observed in the Fed market. The state price sum for the election market hovers close to unity throughout the sample, with a mean overround comparable to that observed in the Fed market. Liquidity concentrates in the two leading candidates' contracts, with the minor candidates' contracts exhibiting wider spreads and lower depth. The convergence of candidate prices toward 0 or 1 as the election date approaches reflects the progressive resolution of uncertainty---a pattern that is theoretically predicted by any model of informationally efficient pricing in state-contingent claims markets. | |
| 74 | − | |
| 75 | −The election case study is particularly informative for understanding the post-resolution behavior of prediction market prices. After the election was called on November 5, 2024, the winning candidate's contract did not immediately jump to \$1; instead, it remained below \$1 for several days as the settlement process unfolded. This delay highlights an important institutional feature of blockchain-based prediction markets: settlement depends on oracle resolution and on-chain execution, which introduces a lag between the real-world event and the contractual payout. During this settlement period, the contract effectively trades as a claim on the oracle's resolution decision rather than on the election outcome itself, and its price reflects the (small) probability of a disputed or delayed resolution. | |
| 21 | +\subsection{Sensitivity of the pricing tests} | |
| 76 | 22 | |
| 77 | −\subsection{Cross-Market Arbitrage and the Law of One Price} | |
| 23 | +The pricing statistics of Table~\ref{tab:completeness} are insensitive to the treatment of the listing day except for the maximum and the standard deviation, as reported in the table note. Computing the lower bound with the upper bound of the target range (3.75 percent) instead of the effective rate shifts $\delta_t$ by at most 0.0006 and changes no conclusion. Replacing the sample mean by the median overround (0.93 percentage points for the Fed group, 1.05 for the election group) does not change the ordering of the two markets or the sign of the term-structure slope. Using a cost allowance of one cent on the complete set instead of half a cent raises the share of Fed days inside the executable band from 29 to 49 percent; using the contemporaneous Roll estimate of the effective spread of the modal claim as the allowance gives 42 percent. We have not attempted to reconstruct the executable bid-side sum over the whole sample, which would require historical order-book data that the public API does not provide; this is the most useful extension of the pricing analysis. | |
| 78 | 24 | |
| 79 | −We examine whether the Arrow--Debreu no-arbitrage conditions hold across different contract groups within Polymarket. In theory, if two sets of contracts span overlapping parts of the state space, their prices must be consistent---otherwise, a riskless arbitrage opportunity exists. We test this condition by comparing implied probabilities derived from different Polymarket markets that reference the same underlying event (e.g., the Fed rate decision). | |
| 25 | +\subsection{Sensitivity of the announcement and lead--lag results} | |
| 80 | 26 | |
| 81 | −The results indicate that cross-market pricing is largely consistent, with deviations attributable to small differences in contract specifications, resolution criteria, and liquidity conditions. The rare instances of larger deviations are quickly corrected, typically within 1--2 trading days, consistent with active arbitrage monitoring by sophisticated participants. This finding reinforces the conclusion that Polymarket's neg-risk framework effectively enforces the structural conditions required for Arrow--Debreu completeness. | |
| 27 | +The announcement-day comparisons use absolute changes and rank-based or median-centred tests, so that no single observation drives them. Dropping the two largest daily moves in the sample---18 March 2026 (FOMC) and 6 March 2026 (employment report)---leaves the pooled release-day variance ratio for the ``No change'' state price at 4.7 (Brown--Forsythe $p=0.005$, Mann--Whitney $p=0.023$) but reduces that for the expected policy change to 1.2 ($p=0.38$; Mann--Whitney $p=0.051$): the release-day effect on the modal state price is robust, whereas the effect on the first moment of the distribution rests on the two days on which the distribution shifted most. Valuing the open-ended states at $\pm 75$ rather than $\pm 50$ basis points rescales the expected-policy-change series by about 11 percent (correlation 0.99 between the two versions) and leaves the pooled tests unchanged (variance ratio 4.9, Brown--Forsythe $p=0.004$). The lead--lag tests are reported at three lag orders in Table~\ref{tab:granger}. Replacing the expected policy change by the change in the ``No change'' state price as the Polymarket variable produces one cell below the 10 percent level among the sixteen tests at one and two lags---the state price to SPY, with $p=0.07$ at one lag and $0.04$ at two---which is about what the null predicts for sixteen correlated tests; the seven other directions have $p$-values above 0.10 at both lag orders. Splitting the 110 trading days into two halves of 55 produces no rejection at one lag in either half in any direction. | |
| 82 | 28 | |
| 83 | −\subsection{Summary of Robustness Findings} | |
| 29 | +\subsection{Checks not performed} | |
| 84 | 30 | |
| 85 | −Taken together, the robustness checks confirm the qualitative conclusions of the main analysis. The Arrow--Debreu completeness finding is robust to adjustments for the risk-free rate and to rolling window estimation. The event study results are robust to alternative benchmark models, narrower event windows, and alternative test statistics. The Granger causality findings are robust to alternative lag specifications but exhibit some sensitivity in subsample analysis, consistent with the information content of prediction market prices being most valuable during periods of genuine uncertainty. The GJR-GARCH dominance over the symmetric GARCH is robust to alternative distributional assumptions and to the EGARCH alternative. The election case study confirms that the patterns observed in the Fed market generalize to a politically different setting with a larger cross-section of contracts. | |
| 31 | +Several analyses that would strengthen the paper are not feasible with the data at hand and are recorded here as recommendations rather than results. Intraday price histories (the API offers minute and hourly fidelity for active markets) would allow the response to each release to be timed within the day and compared with the response of Treasury futures, which is the natural way to assess price discovery across the two venues; the daily data used here cannot speak to leads of minutes or hours. Federal funds futures or overnight index swap quotes for the June 2026 meeting would allow a direct comparison of the Polymarket-implied expected change with the futures-implied one and an estimate of the difference in risk premia, in the spirit of \citet{piazzesi2008futures}; we do not have those quotes. Historical order books would allow the executable bounds to be tested day by day. Finally, a cross-section of negative-risk groups---other FOMC meetings, other elections---would allow the term structure of the overround and its relation to depth to be estimated rather than described. None of these extensions requires new methods, only data we did not collect. | |
modified
paper/sections/theoretical.tex
+39 −122
@@ -1,152 +1,69 @@ | ||
| 1 | 1 | % ============================================================================ |
| 2 | −% Section 3: Theoretical Framework | |
| 2 | +% Section 3: Conceptual Framework | |
| 3 | 3 | % ============================================================================ |
| 4 | −\section{Theoretical Framework}\label{sec:theoretical} | |
| 4 | +\section{Conceptual Framework}\label{sec:theoretical} | |
| 5 | 5 | |
| 6 | −This section develops the theoretical foundations for interpreting prediction market contracts as Arrow--Debreu securities. We begin by formalizing the structure of the Arrow--Debreu economy, then map this structure onto the Polymarket institutional setting, and finally derive testable hypotheses regarding market completeness, no-arbitrage pricing, and information aggregation. | |
| 6 | +\subsection{State claims and the price of the complete set} | |
| 7 | 7 | |
| 8 | −\subsection{The Arrow--Debreu Economy} | |
| 8 | +Consider a single decision with a finite set of mutually exclusive and exhaustive outcomes $\mathcal{S}=\{s_1,\ldots,s_N\}$, resolved at a known date $T$. A state claim on $s_j$ pays one unit of account at $T$ if $s_j$ obtains and nothing otherwise; its payoff is $a_j(s)=\mathbf{1}\{s=s_j\}$. Let $p_{j,t}$ be the price of the claim at date $t<T$ and $\boldsymbol{p}_t=(p_{1,t},\ldots,p_{N,t})'$. | |
| 9 | 9 | |
| 10 | −We consider a single-period economy with dates $t = 0$ (today) and $t = 1$ (the resolution date). Uncertainty at date 1 is represented by a finite state space $\mathcal{S} = \{s_1, s_2, \ldots, s_N\}$ with $N \geq 2$. Each state $s_j$ corresponds to a mutually exclusive and collectively exhaustive outcome. | |
| 11 | − | |
| 12 | −\begin{definition}[Arrow--Debreu Security]\label{def:ad_security} | |
| 13 | −An Arrow--Debreu security for state $s_j$ is a financial contract that pays one unit of the numeraire at date $t = 1$ if state $s_j$ is realized and zero otherwise. Formally, the payoff function of the $j$-th Arrow--Debreu security is | |
| 14 | −\[ | |
| 15 | − a_j(s) = \mathbf{1}\{s = s_j\}, \quad j = 1, \ldots, N, | |
| 16 | −\] | |
| 17 | −where $\mathbf{1}\{\cdot\}$ denotes the indicator function. | |
| 18 | −\end{definition} | |
| 19 | − | |
| 20 | −Let $\psi_j \geq 0$ denote the date-0 price of the Arrow--Debreu security for state $s_j$. The vector $\boldsymbol{\psi} = (\psi_1, \ldots, \psi_N)' \in \mathbb{R}^N_+$ is called the state-price vector. In an economy with a risk-free asset that pays one unit in every state, the risk-free rate $r_f$ is determined by the relation | |
| 21 | −\begin{equation}\label{eq:rf} | |
| 22 | − \frac{1}{1 + r_f} = \sum_{j=1}^{N} \psi_j. | |
| 23 | −\end{equation} | |
| 24 | − | |
| 25 | −This equation establishes a fundamental link: the sum of all state prices equals the price of the risk-free bond, which is the reciprocal of the gross risk-free rate of return. | |
| 26 | − | |
| 27 | −\begin{definition}[Market Completeness]\label{def:completeness} | |
| 28 | −A securities market is said to be complete if, for every contingent claim $c : \mathcal{S} \to \mathbb{R}$, there exists a portfolio of traded securities that replicates $c$ in every state. Equivalently, markets are complete if and only if the payoff matrix of traded securities has rank $N$ (equal to the number of states). | |
| 10 | +\begin{definition}[Spanning]\label{def:completeness} | |
| 11 | +The market spans $\mathcal{S}$ if every payoff $c:\mathcal{S}\to\mathbb{R}$ can be replicated by a portfolio of traded claims. With one state claim per outcome the payoff matrix is the identity and spanning holds by construction. | |
| 29 | 12 | \end{definition} |
| 30 | 13 | |
| 31 | −When $N$ Arrow--Debreu securities are available for trade with linearly independent payoffs, the payoff matrix is the $N \times N$ identity matrix, which trivially has full rank. In this case, completeness is achieved and any contingent claim $c = (c_1, \ldots, c_N)'$ can be replicated at cost $\sum_{j=1}^N c_j \psi_j$. | |
| 32 | − | |
| 33 | −\subsection{State Prices, Risk-Neutral Probabilities, and No Arbitrage} | |
| 34 | − | |
| 35 | −The Fundamental Theorem of Asset Pricing establishes the equivalence between no arbitrage and the existence of positive state prices. | |
| 36 | − | |
| 37 | −\begin{proposition}[No Arbitrage and State Prices]\label{prop:no_arb} | |
| 38 | −In the finite-state economy described above, the following conditions are equivalent: | |
| 39 | −\begin{enumerate}[label=(\roman*)] | |
| 40 | − \item There are no arbitrage opportunities. | |
| 41 | − \item There exists a strictly positive state-price vector $\boldsymbol{\psi} \in \mathbb{R}^N_{++}$ such that the price of any traded security equals the inner product of its payoff vector with $\boldsymbol{\psi}$. | |
| 42 | − \item There exists a probability measure $\mathbb{Q}$ equivalent to the physical measure $\mathbb{P}$ and a discount factor $\delta > 0$ such that the price of any traded security equals the discounted $\mathbb{Q}$-expectation of its payoff. | |
| 43 | −\end{enumerate} | |
| 44 | −\end{proposition} | |
| 45 | − | |
| 46 | −The measure $\mathbb{Q}$ in condition (iii) is the risk-neutral probability measure, and its elements are related to state prices by | |
| 47 | −\begin{equation}\label{eq:rn_prob} | |
| 48 | − q_j = \frac{\psi_j}{\sum_{k=1}^{N} \psi_k} = (1 + r_f) \psi_j, \quad j = 1, \ldots, N. | |
| 49 | −\end{equation} | |
| 50 | − | |
| 51 | −Under the risk-neutral measure, the price of an Arrow--Debreu security is simply the discounted risk-neutral probability of the associated state: | |
| 52 | −\[ | |
| 53 | − \psi_j = \frac{q_j}{1 + r_f}. | |
| 54 | −\] | |
| 55 | − | |
| 56 | −In a complete market, the risk-neutral measure $\mathbb{Q}$ is unique. In an incomplete market, no-arbitrage is consistent with multiple risk-neutral measures, and the state-price vector is not uniquely determined by observed prices alone. This distinction motivates our focus on markets with a complete set of outcome contracts. | |
| 57 | − | |
| 58 | −\subsection{Mapping Polymarket Contracts to Arrow--Debreu Securities} | |
| 14 | +Spanning is therefore not an empirical property of a negative-risk group: the platform lists one claim per outcome and its settlement rules guarantee that exactly one claim pays. What the data can test is how the complete set is priced. | |
| 59 | 15 | |
| 60 | −We now map the theoretical framework onto the institutional structure of Polymarket. Consider a Polymarket neg-risk market with $N$ outcome contracts $\{C_1, C_2, \ldots, C_N\}$. Each contract $C_j$ is a binary claim that pays \$1 if outcome $j$ is realized and \$0 otherwise. The outcomes are mutually exclusive and collectively exhaustive by construction: the Polymarket neg-risk protocol enforces the constraint that exactly one contract in the group resolves to \$1. | |
| 61 | − | |
| 62 | −Let $p_j(t)$ denote the market price of contract $C_j$ at time $t$. Under the Arrow--Debreu interpretation, $p_j(t) = \psi_j(t)$, the state price for outcome $j$ at time $t$. | |
| 63 | − | |
| 64 | −\begin{definition}[State Price Sum]\label{def:sp_sum} | |
| 65 | −The state price sum at time $t$ is defined as | |
| 16 | +\begin{proposition}[Absence of arbitrage]\label{prop:no_arb} | |
| 17 | +If there is no arbitrage, there exist a strictly positive state-price vector $\boldsymbol{\psi}_t\in\mathbb{R}^N_{++}$ and, equivalently, a discount factor $\delta_t\in(0,1]$ and a probability measure $\mathbb{Q}_t$ on $\mathcal{S}$ such that $p_{j,t}=\psi_{j,t}=\delta_t\,q_{j,t}$ for every $j$. The price of the complete set is the price of a riskless claim to one unit of account at $T$: | |
| 66 | 18 | \begin{equation}\label{eq:sp_sum} |
| 67 | − \Sigma(t) = \sum_{j=1}^{N} p_j(t). | |
| 19 | + \Sigma_t \equiv \sum_{j=1}^{N} p_{j,t} = \delta_t = \frac{1}{(1+r_t)^{\tau_t}}, | |
| 68 | 20 | \end{equation} |
| 69 | −Under Arrow--Debreu completeness with a risk-free rate $r_f(t)$, the theoretical prediction is $\Sigma(t) = 1/(1 + r_f(t))$. | |
| 70 | −\end{definition} | |
| 71 | − | |
| 72 | −In practice, the overnight risk-free rate over the sample period is sufficiently small that $1/(1 + r_f) \approx 1$. Deviations of $\Sigma(t)$ from unity therefore measure violations of the completeness condition, up to a small correction for the time value of money. | |
| 21 | +where $r_t$ is the riskless rate and $\tau_t=T-t$ the remaining time to resolution. | |
| 22 | +\end{proposition} | |
| 73 | 23 | |
| 74 | −Several sources of deviation merit discussion. Transaction costs, including the Polymarket trading fee and blockchain gas costs, create a wedge between theoretical and observed state prices. If buyers must pay a premium above fair value and sellers must accept a discount below fair value, the observed state price sum will exceed unity by an amount proportional to the round-trip transaction cost. Similarly, the vigorish (or overround) familiar from bookmaking---in which the implied probabilities of all outcomes sum to more than one---represents a form of transaction cost that accrues to the market operator or liquidity providers. | |
| 24 | +Equation~\eqref{eq:sp_sum} is the Arrow--Debreu restriction tested in this paper. Its two ingredients deserve separate statements. Positivity, $p_{j,t}>0$, is required for $\mathbb{Q}_t$ to be equivalent to the physical measure; on an order book with a minimum tick it is satisfied mechanically whenever a claim is quoted, so that it is a necessary condition without empirical content. The restriction with content is on the level of $\Sigma_t$. | |
| 75 | 25 | |
| 76 | −\subsection{Risk-Neutral Density Estimation} | |
| 26 | +\subsection{Executable bounds} | |
| 77 | 27 | |
| 78 | −Given a complete set of state prices, the risk-neutral density over the outcome space can be recovered by normalizing the state prices to sum to unity. This yields the risk-neutral probability mass function: | |
| 79 | −\begin{equation}\label{eq:rn_density} | |
| 80 | − q_j(t) = \frac{p_j(t)}{\Sigma(t)}, \quad j = 1, \ldots, N. | |
| 28 | +In a frictionless market $\Sigma_t=\delta_t$. On Polymarket the complete set can be traded in two directions with different settlement timing, which makes the no-arbitrage band asymmetric. If $\Sigma_t<\delta_t$, a trader buys one unit of each claim for $\Sigma_t$ and holds the set to resolution, when exactly one claim pays one unit; the profit is $1-\Sigma_t$ at $T$, or $\delta_t-\Sigma_t$ in present value, and the capital is tied up for $\tau_t$. If $\Sigma_t>1$, a trader splits one unit of collateral into $N$ YES--NO pairs (one per outcome), sells the $N$ YES tokens for $\Sigma_t$, and converts the $N$ NO tokens through the negative-risk adapter into $N-1$ units of collateral immediately; the round trip costs one unit and returns $\Sigma_t+N-1$, a riskless profit of $\Sigma_t-1$ realised at $t$ rather than at $T$. Allowing for a cost $c_t$ of executing the $N$ legs at the quotes, the executable bounds are | |
| 29 | +\begin{equation}\label{eq:bounds} | |
| 30 | + \delta_t - c_t \;\le\; \Sigma_t \;\le\; 1 + c_t . | |
| 81 | 31 | \end{equation} |
| 32 | +The lower bound depends on the riskless rate and on the horizon, the upper bound does not. With $r_t\approx 3.6$ percent and $\tau_t$ up to half a year, $\delta_t$ ranges from 0.98 to 1 over the Fed sample, so that the band is about two percentage points wide at the start of the sample and collapses to the width of the spread costs at the end. The transaction-cost term $c_t$ is naturally measured by the sum across claims of half the quoted spread: for five contracts quoted at a tick of 0.001 with one-tick spreads, $c_t=0.0025$, and we use $0.005$ as a conservative value in the tables. | |
| 82 | 33 | |
| 83 | −The time series of risk-neutral densities $\{q_j(t)\}_{t=1}^{T}$ provides a window into the evolution of market expectations about the distribution of outcomes. Changes in the risk-neutral density can be decomposed into changes in physical probabilities and changes in risk premia, though this decomposition requires additional identifying assumptions. | |
| 84 | − | |
| 85 | −For the Federal Reserve rate decision market with $N = 5$ states (50+ basis point decrease, 25 basis point decrease, no change, 25 basis point increase, 50+ basis point increase), the risk-neutral density at each date is a discrete probability distribution over the five possible rate actions. The evolution of this distribution over time reflects the market's assessment of monetary policy expectations as macroeconomic data are released and FOMC communications are made. | |
| 34 | +A positive overround, $\Sigma_t>1$, therefore cannot be explained by the time value of money, which pushes $\Sigma_t$ below one. It can be explained by the convention that the daily price is the last trade or midpoint of each contract: when four of five contracts trade at a few tenths of a cent with one-tick spreads, the sum of midpoints exceeds the sum of bids by $N/2$ ticks, and the last trades of thinly traded claims tend to occur on the ask side. It can also reflect a genuine but small premium for the convenience of the conversion mechanism, or, in the first days of a market, quotes seeded by the platform before trading begins. | |
| 86 | 35 | |
| 87 | −\subsection{Returns, Abnormal Returns, and Event Studies} | |
| 36 | +\subsection{The risk-neutral distribution and the expected policy change} | |
| 88 | 37 | |
| 89 | −We define log returns on prediction market contracts as follows. Let $p_j(t)$ denote the price of contract $j$ at the close of trading day $t$. The continuously compounded return is | |
| 90 | −\begin{equation}\label{eq:return} | |
| 91 | − r_j(t) = \ln\left(\frac{p_j(t)}{p_j(t-1)}\right). | |
| 92 | −\end{equation} | |
| 93 | − | |
| 94 | −For the event study analysis, we follow the standard methodology of \citet{mackinlay1997event}. Abnormal returns are defined relative to a benchmark model estimated over a pre-event window. Let $[\tau_0, \tau_1]$ denote the estimation window and $[\tau_1 + 1, \tau_2]$ denote the event window. We employ a constant mean return model as the benchmark: | |
| 95 | −\begin{equation}\label{eq:ar} | |
| 96 | − AR_j(t) = r_j(t) - \hat{\mu}_j, \quad t \in [\tau_1 + 1, \tau_2], | |
| 38 | +Normalising prices by their sum removes the discount factor: | |
| 39 | +\begin{equation}\label{eq:rn_density} | |
| 40 | + q_{j,t}=\frac{p_{j,t}}{\Sigma_t}, \qquad \sum_{j=1}^{N} q_{j,t}=1 . | |
| 97 | 41 | \end{equation} |
| 98 | −where $\hat{\mu}_j = \frac{1}{\tau_1 - \tau_0} \sum_{t=\tau_0+1}^{\tau_1} r_j(t)$ is the sample mean return over the estimation window. Cumulative abnormal returns over the event window $[t_1, t_2]$ are | |
| 99 | −\begin{equation}\label{eq:car} | |
| 100 | − CAR_j(t_1, t_2) = \sum_{t=t_1}^{t_2} AR_j(t). | |
| 42 | +For the Fed group, assign to each state the policy change $x_j\in\{-50,-25,0,25,50\}$ basis points, with the two open-ended states valued at $\pm 50$. The risk-neutral expected policy change and its dispersion are | |
| 43 | +\begin{equation}\label{eq:eq} | |
| 44 | + \mathbb{E}^{\mathbb{Q}}_t[\Delta r] = \sum_{j=1}^{N} q_{j,t}\,x_j, \qquad | |
| 45 | + \mathrm{SD}^{\mathbb{Q}}_t[\Delta r] = \Big(\sum_{j=1}^{N} q_{j,t}\,(x_j-\mathbb{E}^{\mathbb{Q}}_t[\Delta r])^2\Big)^{1/2}. | |
| 101 | 46 | \end{equation} |
| 47 | +$\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ is the Polymarket analogue of the futures-implied expected rate change used in the monetary-policy literature; like it, it embeds a risk premium \citep{piazzesi2008futures}. Under $\mathbb{Q}_t$ each $p_{j,t}$ is a martingale up to the discount factor, so that daily changes in $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ should be unpredictable from past information and their variance should reflect the arrival of news. This is the property exploited in the announcement-day analysis. | |
| 102 | 48 | |
| 103 | −The cross-sectional test statistic for the null hypothesis that the mean CAR across events is zero follows \citet{patell1976corporate} and \citet{boehmer1991event}: | |
| 104 | −\begin{equation}\label{eq:tstat} | |
| 105 | − t_{CAR} = \frac{\overline{CAR}}{\hat{\sigma}_{CAR} / \sqrt{K}}, | |
| 106 | −\end{equation} | |
| 107 | −where $\overline{CAR}$ is the mean CAR across $K$ events and $\hat{\sigma}_{CAR}$ is the cross-sectional standard deviation. | |
| 49 | +\subsection{Hypotheses} | |
| 108 | 50 | |
| 109 | −\subsection{Testable Hypotheses} | |
| 110 | − | |
| 111 | −The theoretical framework yields the following testable hypotheses. | |
| 112 | − | |
| 113 | −\begin{hypothesis}[Market Completeness]\label{hyp:completeness} | |
| 114 | −If Polymarket neg-risk contract markets function as Arrow--Debreu economies, then: | |
| 115 | −\begin{enumerate}[label=(\alph*)] | |
| 116 | − \item The state price sum $\Sigma(t) = \sum_{j=1}^{N} p_j(t)$ is statistically indistinguishable from $1/(1+r_f)$ for all $t$. | |
| 117 | − \item All individual state prices $p_j(t)$ are strictly positive for all $j$ and $t$. | |
| 118 | − \item The deviation of $\Sigma(t)$ from unity is small, stationary, and attributable to transaction costs. | |
| 119 | −\end{enumerate} | |
| 120 | −\end{hypothesis} | |
| 51 | +The framework yields the following hypotheses, stated so that each can be rejected by the data. | |
| 121 | 52 | |
| 122 | −\begin{hypothesis}[No Arbitrage]\label{hyp:no_arb} | |
| 123 | −If no-arbitrage conditions hold in the prediction market: | |
| 124 | −\begin{enumerate}[label=(\alph*)] | |
| 125 | − \item There are no persistent violations of the law of one price: the state price sum does not systematically exceed or fall below unity by more than transaction costs. | |
| 126 | − \item Temporary deviations from the no-arbitrage bounds are quickly corrected through arbitrage activity, implying mean-reversion in $\Sigma(t) - 1$. | |
| 127 | −\end{enumerate} | |
| 53 | +\begin{hypothesis}[Law of one price for the complete set]\label{hyp:completeness} | |
| 54 | +$\Sigma_t$ lies within the executable bounds \eqref{eq:bounds} on most days; deviations are small relative to quoted spreads, decline as the lower bound rises towards one, and are transitory (stationary with a half-life of a few days). | |
| 128 | 55 | \end{hypothesis} |
| 129 | 56 | |
| 130 | −\begin{hypothesis}[Information Aggregation]\label{hyp:info} | |
| 131 | −If prediction market prices efficiently aggregate information: | |
| 132 | −\begin{enumerate}[label=(\alph*)] | |
| 133 | − \item Prediction market returns exhibit no predictable patterns conditional on publicly available information (weak-form efficiency). | |
| 134 | − \item Prediction market prices respond to macroeconomic news releases (FOMC announcements, CPI releases) in a manner consistent with the informational content of the release. | |
| 135 | − \item Prediction market returns Granger-cause returns in related traditional financial markets (SPY, VIX, BTC), reflecting the information content of state-contingent prices. | |
| 136 | −\end{enumerate} | |
| 57 | +\begin{hypothesis}[Information on scheduled release days]\label{hyp:info} | |
| 58 | +Absolute daily changes in $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ and in the modal state price are larger on days of scheduled FOMC statements, CPI releases and employment reports than on other days; changes on weekend days, when conventional markets are closed, are smaller than on weekdays. | |
| 137 | 59 | \end{hypothesis} |
| 138 | 60 | |
| 139 | −\begin{hypothesis}[Volatility Dynamics]\label{hyp:vol} | |
| 140 | −If prediction market returns exhibit volatility dynamics similar to those documented in traditional financial markets: | |
| 141 | −\begin{enumerate}[label=(\alph*)] | |
| 142 | − \item Conditional volatility is time-varying and exhibits clustering, consistent with ARCH/GARCH effects. | |
| 143 | − \item Negative return shocks have a larger impact on future volatility than positive return shocks of equal magnitude (leverage effect), implying that the GJR-GARCH model fits better than the symmetric GARCH. | |
| 144 | − \item Realized volatility exhibits persistence at multiple time horizons, consistent with the heterogeneous market hypothesis underlying the HAR-RV model. | |
| 145 | −\end{enumerate} | |
| 61 | +\begin{hypothesis}[Lead--lag with conventional markets]\label{hyp:leadlag} | |
| 62 | +Daily changes in $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ neither Granger-cause nor are Granger-caused by daily changes in the ten-year Treasury yield, the S\&P~500, the VIX or Bitcoin, once the series are aligned on the same trading calendar. | |
| 146 | 63 | \end{hypothesis} |
| 147 | 64 | |
| 148 | −\subsection{Theoretical Limitations and Caveats} | |
| 65 | +Hypothesis~\ref{hyp:leadlag} is stated as a null of no predictability because it is the prediction of informational efficiency in both markets; a rejection in either direction would be the interesting finding, and we show in Appendix~\ref{app:reconciliation} how easily spurious rejections arise. A fourth hypothesis on the conditional volatility of the modal state price, which played a prominent role in the earlier version of this paper, is examined in Appendix~\ref{app:volatility}. | |
| 149 | 66 | |
| 150 | −Several theoretical limitations of the Arrow--Debreu framework as applied to prediction markets warrant acknowledgment. First, the single-period nature of the Arrow--Debreu model abstracts from the dynamic trading that occurs in practice. Prediction market contracts are traded continuously over weeks or months before resolution, and the mapping between theory and empirics requires treating each trading day as a snapshot of the equilibrium state-price vector. Second, the finite-state assumption, while natural for markets with discrete outcomes (five possible Fed rate actions), becomes strained for markets with continuous outcome spaces (e.g., the level of GDP growth). Third, the assumption of competitive price-taking may be violated in prediction markets where a small number of large traders can exert significant price impact. Fourth, the theoretical framework assumes that all agents agree on the state space; in practice, ambiguity about the precise definition of contract resolution rules can introduce basis risk between the prediction market contract and the underlying event of interest. | |
| 67 | +\subsection{Caveats} | |
| 151 | 68 | |
| 152 | −Despite these limitations, the Arrow--Debreu framework provides a disciplined lens through which to evaluate the structural properties of prediction markets. The hypotheses formulated above are designed to be robust to these concerns: we test for the conditions that must hold if the market functions as an Arrow--Debreu economy, while acknowledging that departures from these conditions may reflect institutional frictions rather than fundamental inefficiency. | |
| 69 | +The framework is a single-period abstraction applied to a market that trades for six months. Treating each daily close as a snapshot of the state-price vector is innocuous for the pricing restriction, which must hold at every date, but it means that the risk-neutral distribution is conditional on the information of that day and that its evolution mixes news with changes in risk premia. The finite state space is natural for an FOMC decision and for an election winner; it would not be for a continuous outcome. The ``$\pm 50$'' valuation of the open-ended states is a convention that matters little while those states carry a few percent of risk-neutral mass, as they do here. Finally, the mapping from the contract to the economic event depends on the resolution rules and on the oracle; the possibility of a disputed resolution adds a basis risk that we cannot measure in these two markets but discuss in Section~\ref{sec:conclusion}. | |
added
results/revision_stats.json
+1395 −0
@@ -0,0 +1,1395 @@ | ||
| 1 | +{ | |
| 2 | + "fed": { | |
| 3 | + "first_day": "2025-12-10", | |
| 4 | + "last_day": "2026-05-22", | |
| 5 | + "n_rows_union": 147, | |
| 6 | + "n_complete": 147, | |
| 7 | + "n_main": 146, | |
| 8 | + "listing_sigma": 1.57, | |
| 9 | + "listing_prices": { | |
| 10 | + "50+ bps decrease": 0.15, | |
| 11 | + "25 bps decrease": 0.5, | |
| 12 | + "No change": 0.575, | |
| 13 | + "25 bps increase": 0.25, | |
| 14 | + "50+ bps increase": 0.095 | |
| 15 | + }, | |
| 16 | + "n_weekend_days": 42, | |
| 17 | + "calendar_span_days": 164, | |
| 18 | + "p_nochange_first": 0.36, | |
| 19 | + "p_nochange_last": 0.9775, | |
| 20 | + "p_cut25_first": 0.535, | |
| 21 | + "p_cut25_last": 0.0085, | |
| 22 | + "dff_start": 3.64, | |
| 23 | + "dff_end": 3.62, | |
| 24 | + "dff_before_listing": 3.89, | |
| 25 | + "min_price_by_state": { | |
| 26 | + "50+ bps decrease": 0.0045, | |
| 27 | + "25 bps decrease": 0.0065, | |
| 28 | + "No change": 0.3, | |
| 29 | + "25 bps increase": 0.0055, | |
| 30 | + "50+ bps increase": 0.002 | |
| 31 | + }, | |
| 32 | + "volume_usd": { | |
| 33 | + "25 bps decrease": 6849280.4962568935, | |
| 34 | + "25 bps increase": 6923151.7191110235, | |
| 35 | + "50+ bps decrease": 8765441.70633689, | |
| 36 | + "No change": 6483788.5788109135, | |
| 37 | + "50+ bps increase": 8740315.62308676 | |
| 38 | + }, | |
| 39 | + "liquidity_usd": { | |
| 40 | + "25 bps decrease": 225585.95757, | |
| 41 | + "25 bps increase": 255430.817, | |
| 42 | + "50+ bps decrease": 780011.07761, | |
| 43 | + "No change": 964295.27259, | |
| 44 | + "50+ bps increase": 1849158.00742 | |
| 45 | + }, | |
| 46 | + "total_volume_usd": 37761978.12360248 | |
| 47 | + }, | |
| 48 | + "completeness": { | |
| 49 | + "fed": { | |
| 50 | + "label": "Fed June 2026", | |
| 51 | + "T": 146, | |
| 52 | + "mean": 1.0166575342465753, | |
| 53 | + "sd": 0.02609946184044584, | |
| 54 | + "median": 1.0092500000000002, | |
| 55 | + "min": 0.9605, | |
| 56 | + "max": 1.108, | |
| 57 | + "mean_dev": 0.016657534246575352, | |
| 58 | + "mean_abs_dev": 0.020931506849315083, | |
| 59 | + "max_abs_dev": 0.1080000000000001, | |
| 60 | + "nw_se": 0.004382590895223717, | |
| 61 | + "nw_t": 3.800841704100021, | |
| 62 | + "nw_p": 0.00014420540719273573, | |
| 63 | + "share_above_1": 0.8356164383561644, | |
| 64 | + "share_below_1": 0.1643835616438356, | |
| 65 | + "share_within_tickband": 0.2534246575342466, | |
| 66 | + "share_within_1pp": 0.4383561643835616, | |
| 67 | + "share_within_2pp": 0.6506849315068494, | |
| 68 | + "share_within_5pp": 0.8698630136986302, | |
| 69 | + "mean_lower_bound": 0.988977568991014, | |
| 70 | + "min_lower_bound": 0.9814261666080099, | |
| 71 | + "mean_dev_from_lower": 0.02767996525556114, | |
| 72 | + "share_inside_band": 0.2945205479452055, | |
| 73 | + "share_above_upper_band": 0.6506849315068494, | |
| 74 | + "adf_stat": -2.824663391311878, | |
| 75 | + "adf_p": 0.054836225018752044, | |
| 76 | + "ar1": 0.7210289659250017, | |
| 77 | + "half_life": 2.119223815538501, | |
| 78 | + "tick_band": 0.005, | |
| 79 | + "first_half_mean": 1.0303698630136988, | |
| 80 | + "second_half_mean": 1.002945205479452, | |
| 81 | + "last30_mean": 1.00395, | |
| 82 | + "last30_sd": 0.003620701970422451, | |
| 83 | + "first30_mean": 1.05095, | |
| 84 | + "first30_sd": 0.029101590784816164, | |
| 85 | + "slope_tau": 0.11291525712696912, | |
| 86 | + "slope_tau_t": 4.869878296401516, | |
| 87 | + "const_tau": -0.017763714618645402 | |
| 88 | + }, | |
| 89 | + "fed_incl_listing": { | |
| 90 | + "label": "Fed incl. listing day", | |
| 91 | + "T": 147, | |
| 92 | + "mean": 1.020421768707483, | |
| 93 | + "sd": 0.05253024897260834, | |
| 94 | + "median": 1.0095, | |
| 95 | + "min": 0.9605, | |
| 96 | + "max": 1.57, | |
| 97 | + "mean_dev": 0.020421768707483003, | |
| 98 | + "mean_abs_dev": 0.024666666666666674, | |
| 99 | + "max_abs_dev": 0.5700000000000001, | |
| 100 | + "nw_se": 0.006175375910426348, | |
| 101 | + "nw_t": 3.3069677058854676, | |
| 102 | + "nw_p": 0.0009431176403822239, | |
| 103 | + "share_above_1": 0.8367346938775511, | |
| 104 | + "share_below_1": 0.16326530612244897, | |
| 105 | + "share_within_tickband": 0.25170068027210885, | |
| 106 | + "share_within_1pp": 0.43537414965986393, | |
| 107 | + "share_within_2pp": 0.6462585034013606, | |
| 108 | + "share_within_5pp": 0.8639455782312925, | |
| 109 | + "mean_lower_bound": 0.9889168968890468, | |
| 110 | + "min_lower_bound": 0.9800587700017923, | |
| 111 | + "mean_dev_from_lower": 0.031504871818436295, | |
| 112 | + "share_inside_band": 0.2925170068027211, | |
| 113 | + "share_above_upper_band": 0.6530612244897959, | |
| 114 | + "adf_stat": -3.636990376942642, | |
| 115 | + "adf_p": 0.005091979798054538, | |
| 116 | + "ar1": 0.29037816577169256, | |
| 117 | + "half_life": 0.5605396507978315, | |
| 118 | + "tick_band": 0.005, | |
| 119 | + "first_half_mean": 1.038, | |
| 120 | + "second_half_mean": 1.0030810810810813, | |
| 121 | + "last30_mean": 1.00395, | |
| 122 | + "last30_sd": 0.003620701970422451, | |
| 123 | + "first30_mean": 1.0679166666666666, | |
| 124 | + "first30_sd": 0.09917522661790416, | |
| 125 | + "slope_tau": 0.1567878449320486, | |
| 126 | + "slope_tau_t": 3.1250305272158014, | |
| 127 | + "const_tau": -0.02760080968434045 | |
| 128 | + }, | |
| 129 | + "election": { | |
| 130 | + "label": "Election 2024", | |
| 131 | + "T": 304, | |
| 132 | + "mean": 1.014564144736842, | |
| 133 | + "sd": 0.03131138191696335, | |
| 134 | + "median": 1.0105, | |
| 135 | + "min": 0.966, | |
| 136 | + "max": 1.515, | |
| 137 | + "mean_dev": 0.014564144736842054, | |
| 138 | + "mean_abs_dev": 0.0161694078947368, | |
| 139 | + "max_abs_dev": 0.5149999999999999, | |
| 140 | + "nw_se": 0.001964025998163385, | |
| 141 | + "nw_t": 7.415454149008917, | |
| 142 | + "nw_p": 1.212087343497518e-13, | |
| 143 | + "share_above_1": 0.9177631578947368, | |
| 144 | + "share_below_1": 0.08223684210526316, | |
| 145 | + "share_within_tickband": 0.12828947368421054, | |
| 146 | + "share_within_1pp": 0.4243421052631579, | |
| 147 | + "share_within_2pp": 0.7401315789473685, | |
| 148 | + "share_within_5pp": 0.9868421052631579, | |
| 149 | + "mean_lower_bound": 0.9782506932840836, | |
| 150 | + "min_lower_bound": 0.9567182874265443, | |
| 151 | + "mean_dev_from_lower": 0.03631345145275835, | |
| 152 | + "share_inside_band": 0.18421052631578946, | |
| 153 | + "share_above_upper_band": 0.8125, | |
| 154 | + "adf_stat": -16.39552618729936, | |
| 155 | + "adf_p": 2.668730873158365e-29, | |
| 156 | + "ar1": 0.06008962529422464, | |
| 157 | + "half_life": 0.2465033339263409, | |
| 158 | + "tick_band": 0.005, | |
| 159 | + "first_half_mean": 1.0182697368421054, | |
| 160 | + "second_half_mean": 1.0108585526315788, | |
| 161 | + "last30_mean": 1.0077166666666666, | |
| 162 | + "last30_sd": 0.0011039375711151365, | |
| 163 | + "first30_mean": 1.0219166666666666, | |
| 164 | + "first30_sd": 0.0145998838760931, | |
| 165 | + "slope_tau": 0.020176704162004122, | |
| 166 | + "slope_tau_t": 3.7337648706866897, | |
| 167 | + "const_tau": 0.0061894305435718465 | |
| 168 | + }, | |
| 169 | + "election_incl_listing": { | |
| 170 | + "label": "Election incl. listing day", | |
| 171 | + "T": 305, | |
| 172 | + "mean": 1.0147098360655737, | |
| 173 | + "sd": 0.03136321966365071, | |
| 174 | + "median": 1.0105, | |
| 175 | + "min": 0.966, | |
| 176 | + "max": 1.515, | |
| 177 | + "mean_dev": 0.014709836065573719, | |
| 178 | + "mean_abs_dev": 0.016309836065573728, | |
| 179 | + "max_abs_dev": 0.5149999999999999, | |
| 180 | + "nw_se": 0.001975684002223267, | |
| 181 | + "nw_t": 7.4454396801414156, | |
| 182 | + "nw_p": 9.662207202914288e-14, | |
| 183 | + "share_above_1": 0.9180327868852459, | |
| 184 | + "share_below_1": 0.08196721311475409, | |
| 185 | + "share_within_tickband": 0.12786885245901639, | |
| 186 | + "share_within_1pp": 0.42295081967213116, | |
| 187 | + "share_within_2pp": 0.7377049180327869, | |
| 188 | + "share_within_5pp": 0.9836065573770492, | |
| 189 | + "mean_lower_bound": 0.9781796372095298, | |
| 190 | + "min_lower_bound": 0.9565785905451543, | |
| 191 | + "mean_dev_from_lower": 0.03653019885604389, | |
| 192 | + "share_inside_band": 0.18360655737704917, | |
| 193 | + "share_above_upper_band": 0.8131147540983606, | |
| 194 | + "adf_stat": -16.31008384447893, | |
| 195 | + "adf_p": 3.2025297766613e-29, | |
| 196 | + "ar1": 0.06659270126292301, | |
| 197 | + "half_life": 0.2558531442562161, | |
| 198 | + "tick_band": 0.005, | |
| 199 | + "first_half_mean": 1.0185625, | |
| 200 | + "second_half_mean": 1.0108823529411763, | |
| 201 | + "last30_mean": 1.0077166666666666, | |
| 202 | + "last30_sd": 0.0011039375711151365, | |
| 203 | + "first30_mean": 1.0236500000000002, | |
| 204 | + "first30_sd": 0.015804926119889744, | |
| 205 | + "slope_tau": 0.021021586179769923, | |
| 206 | + "slope_tau_t": 3.8229904719842165, | |
| 207 | + "const_tau": 0.005955641272902408 | |
| 208 | + }, | |
| 209 | + "election_n_contracts": 17, | |
| 210 | + "election_T_union": 307, | |
| 211 | + "election_first": "2024-01-04", | |
| 212 | + "election_last": "2024-11-05" | |
| 213 | + }, | |
| 214 | + "orderbook": { | |
| 215 | + "25 bps decrease": { | |
| 216 | + "bid": 0.008, | |
| 217 | + "ask": 0.009, | |
| 218 | + "mid": 0.0085, | |
| 219 | + "spread": 0.0009999999999999992, | |
| 220 | + "rel_spread_pct": 11.764705882352931, | |
| 221 | + "depth_best_bid": 20071.21, | |
| 222 | + "depth_best_ask": 14497.87, | |
| 223 | + "depth_bid_usd": 11104.63257, | |
| 224 | + "depth_ask_usd": 31781557.3332, | |
| 225 | + "shares_bid": 7514486.29, | |
| 226 | + "shares_ask": 31994947.36, | |
| 227 | + "depth_within_1c_bid_usd": 11104.63257, | |
| 228 | + "depth_within_1c_ask_usd": 936.20033, | |
| 229 | + "timestamp": 1779439865176 | |
| 230 | + }, | |
| 231 | + "25 bps increase": { | |
| 232 | + "bid": 0.008, | |
| 233 | + "ask": 0.009, | |
| 234 | + "mid": 0.0085, | |
| 235 | + "spread": 0.0009999999999999992, | |
| 236 | + "rel_spread_pct": 11.764705882352931, | |
| 237 | + "depth_best_bid": 44819.49, | |
| 238 | + "depth_best_ask": 5226.98, | |
| 239 | + "depth_bid_usd": 25556.908280000003, | |
| 240 | + "depth_ask_usd": 21849955.61628, | |
| 241 | + "shares_bid": 13110649.360000001, | |
| 242 | + "shares_ask": 22079400.4, | |
| 243 | + "depth_within_1c_bid_usd": 25556.908280000003, | |
| 244 | + "depth_within_1c_ask_usd": 1303.0173, | |
| 245 | + "timestamp": 1779439875574 | |
| 246 | + }, | |
| 247 | + "50+ bps decrease": { | |
| 248 | + "bid": 0.004, | |
| 249 | + "ask": 0.005, | |
| 250 | + "mid": 0.0045000000000000005, | |
| 251 | + "spread": 0.001, | |
| 252 | + "rel_spread_pct": 22.22222222222222, | |
| 253 | + "depth_best_bid": 569147.34, | |
| 254 | + "depth_best_ask": 99356.07, | |
| 255 | + "depth_bid_usd": 25893.295530000003, | |
| 256 | + "depth_ask_usd": 32024093.48412, | |
| 257 | + "shares_bid": 15570497.3, | |
| 258 | + "shares_ask": 32778182.84, | |
| 259 | + "depth_within_1c_bid_usd": 25893.295530000003, | |
| 260 | + "depth_within_1c_ask_usd": 1303.5379500000001, | |
| 261 | + "timestamp": 1779439874142 | |
| 262 | + }, | |
| 263 | + "No change": { | |
| 264 | + "bid": 0.977, | |
| 265 | + "ask": 0.978, | |
| 266 | + "mid": 0.9775, | |
| 267 | + "spread": 0.0010000000000000009, | |
| 268 | + "rel_spread_pct": 0.10230179028133, | |
| 269 | + "depth_best_bid": 22838.54, | |
| 270 | + "depth_best_ask": 20673.3, | |
| 271 | + "depth_bid_usd": 943466.11015, | |
| 272 | + "depth_ask_usd": 6727863.0406599995, | |
| 273 | + "shares_bid": 23205854.76, | |
| 274 | + "shares_ask": 6748290.22, | |
| 275 | + "depth_within_1c_bid_usd": 748002.39559, | |
| 276 | + "depth_within_1c_ask_usd": 600038.95133, | |
| 277 | + "timestamp": 1779439874130 | |
| 278 | + }, | |
| 279 | + "50+ bps increase": { | |
| 280 | + "bid": 0.002, | |
| 281 | + "ask": 0.003, | |
| 282 | + "mid": 0.0025, | |
| 283 | + "spread": 0.001, | |
| 284 | + "rel_spread_pct": 40.0, | |
| 285 | + "depth_best_bid": 5574520.3, | |
| 286 | + "depth_best_ask": 1619035.96, | |
| 287 | + "depth_bid_usd": 23013.14171, | |
| 288 | + "depth_ask_usd": 22012817.603350002, | |
| 289 | + "shares_bid": 17438621.41, | |
| 290 | + "shares_ask": 23836717.3, | |
| 291 | + "depth_within_1c_bid_usd": 23013.14171, | |
| 292 | + "depth_within_1c_ask_usd": 5528.6968, | |
| 293 | + "timestamp": 1779439842641 | |
| 294 | + }, | |
| 295 | + "sum_bid": 0.999, | |
| 296 | + "sum_ask": 1.004, | |
| 297 | + "sum_mid": 1.0015, | |
| 298 | + "snapshot_utc": "2026-05-22 08:51:05.176000" | |
| 299 | + }, | |
| 300 | + "events": { | |
| 301 | + "event_map": { | |
| 302 | + "2025-12-17": "2025-12-17", | |
| 303 | + "2026-01-28": "2026-01-28", | |
| 304 | + "2026-03-18": "2026-03-18", | |
| 305 | + "2026-05-06": "2026-05-06", | |
| 306 | + "2026-01-14": "2026-01-14", | |
| 307 | + "2026-02-11": "2026-02-11", | |
| 308 | + "2026-03-11": "2026-03-11", | |
| 309 | + "2026-05-12": "2026-05-12", | |
| 310 | + "2026-01-09": "2026-01-09", | |
| 311 | + "2026-02-06": "2026-02-06", | |
| 312 | + "2026-03-06": "2026-03-06", | |
| 313 | + "2026-04-04": "2026-04-03", | |
| 314 | + "2026-05-08": "2026-05-08" | |
| 315 | + }, | |
| 316 | + "fomc": [ | |
| 317 | + "2025-12-17", | |
| 318 | + "2026-01-28", | |
| 319 | + "2026-03-18", | |
| 320 | + "2026-05-06" | |
| 321 | + ], | |
| 322 | + "cpi": [ | |
| 323 | + "2026-01-14", | |
| 324 | + "2026-02-11", | |
| 325 | + "2026-03-11", | |
| 326 | + "2026-05-12" | |
| 327 | + ], | |
| 328 | + "nfp": [ | |
| 329 | + "2026-01-09", | |
| 330 | + "2026-02-06", | |
| 331 | + "2026-03-06", | |
| 332 | + "2026-04-04", | |
| 333 | + "2026-05-08" | |
| 334 | + ], | |
| 335 | + "eq_first": -15.472942246475672, | |
| 336 | + "eq_last": -0.09985022466300547, | |
| 337 | + "eq_min": -17.350746268656717, | |
| 338 | + "eq_max": -0.04982561036372694, | |
| 339 | + "sd_q_first": 21.699172524565792, | |
| 340 | + "sd_q_last": 5.298387077130647, | |
| 341 | + "records": [ | |
| 342 | + { | |
| 343 | + "type": "FOMC", | |
| 344 | + "date": "2025-12-17", | |
| 345 | + "d_eq_0": 0.3947706111907934, | |
| 346 | + "d_eq_m1p1": 1.2297093001818133, | |
| 347 | + "d_eq_m3p3": 1.0338709235321275, | |
| 348 | + "d_pnc_0": 1.5000000000000013, | |
| 349 | + "d_pnc_m1p1": 0.0, | |
| 350 | + "d_pnc_m3p3": 0.0, | |
| 351 | + "eq_level": -11.618062088428976 | |
| 352 | + }, | |
| 353 | + { | |
| 354 | + "type": "FOMC", | |
| 355 | + "date": "2026-01-28", | |
| 356 | + "d_eq_0": 0.9949509793630487, | |
| 357 | + "d_eq_m1p1": -1.0602654050649605, | |
| 358 | + "d_eq_m3p3": 1.0762448132780076, | |
| 359 | + "d_pnc_0": -11.5, | |
| 360 | + "d_pnc_m1p1": -8.999999999999998, | |
| 361 | + "d_pnc_m3p3": -10.0, | |
| 362 | + "eq_level": -14.456521739130435 | |
| 363 | + }, | |
| 364 | + { | |
| 365 | + "type": "FOMC", | |
| 366 | + "date": "2026-03-18", | |
| 367 | + "d_eq_0": 6.018332770547766, | |
| 368 | + "d_eq_m1p1": 6.284832325283193, | |
| 369 | + "d_eq_m3p3": 6.053775073458311, | |
| 370 | + "d_pnc_0": 23.0, | |
| 371 | + "d_pnc_m1p1": 24.0, | |
| 372 | + "d_pnc_m3p3": 21.999999999999996, | |
| 373 | + "eq_level": -1.557050323866468 | |
| 374 | + }, | |
| 375 | + { | |
| 376 | + "type": "FOMC", | |
| 377 | + "date": "2026-05-06", | |
| 378 | + "d_eq_0": -0.1205596786530253, | |
| 379 | + "d_eq_m1p1": -0.29526825517298955, | |
| 380 | + "d_eq_m3p3": 0.5438731851366572, | |
| 381 | + "d_pnc_0": 0.0, | |
| 382 | + "d_pnc_m1p1": 0.0, | |
| 383 | + "d_pnc_m3p3": 1.9500000000000073, | |
| 384 | + "eq_level": -0.7199602780536246 | |
| 385 | + }, | |
| 386 | + { | |
| 387 | + "type": "CPI", | |
| 388 | + "date": "2026-01-14", | |
| 389 | + "d_eq_0": -0.03787622463326912, | |
| 390 | + "d_eq_m1p1": -0.40257651766449953, | |
| 391 | + "d_eq_m3p3": 0.1266166122974841, | |
| 392 | + "d_pnc_0": 0.0, | |
| 393 | + "d_pnc_m1p1": 0.0, | |
| 394 | + "d_pnc_m3p3": -0.9999999999999953, | |
| 395 | + "eq_level": -14.088263821532495 | |
| 396 | + }, | |
| 397 | + { | |
| 398 | + "type": "CPI", | |
| 399 | + "date": "2026-02-11", | |
| 400 | + "d_eq_0": 1.2447566363656826, | |
| 401 | + "d_eq_m1p1": 0.1876980544196023, | |
| 402 | + "d_eq_m3p3": 0.3420236770029117, | |
| 403 | + "d_pnc_0": 7.000000000000001, | |
| 404 | + "d_pnc_m1p1": 7.000000000000001, | |
| 405 | + "d_pnc_m3p3": 8.000000000000002, | |
| 406 | + "eq_level": -15.47972304648863 | |
| 407 | + }, | |
| 408 | + { | |
| 409 | + "type": "CPI", | |
| 410 | + "date": "2026-03-11", | |
| 411 | + "d_eq_0": 1.3178583250579283, | |
| 412 | + "d_eq_m1p1": -0.48324332450591356, | |
| 413 | + "d_eq_m3p3": 2.4971258976326345, | |
| 414 | + "d_pnc_0": 4.0000000000000036, | |
| 415 | + "d_pnc_m1p1": 1.5000000000000009, | |
| 416 | + "d_pnc_m3p3": 10.999999999999998, | |
| 417 | + "eq_level": -9.098808341608738 | |
| 418 | + }, | |
| 419 | + { | |
| 420 | + "type": "CPI", | |
| 421 | + "date": "2026-05-12", | |
| 422 | + "d_eq_0": 0.14992414330392262, | |
| 423 | + "d_eq_m1p1": 0.19952565225295338, | |
| 424 | + "d_eq_m3p3": 0.22481240732417584, | |
| 425 | + "d_pnc_0": 0.9000000000000008, | |
| 426 | + "d_pnc_m1p1": 0.6000000000000005, | |
| 427 | + "d_pnc_m3p3": 1.0000000000000009, | |
| 428 | + "eq_level": -0.2989536621823617 | |
| 429 | + }, | |
| 430 | + { | |
| 431 | + "type": "Employment report", | |
| 432 | + "date": "2026-01-09", | |
| 433 | + "d_eq_0": -1.6552968424508983, | |
| 434 | + "d_eq_m1p1": -3.444052246942997, | |
| 435 | + "d_eq_m3p3": -3.270460215517444, | |
| 436 | + "d_pnc_0": -0.5000000000000004, | |
| 437 | + "d_pnc_m1p1": 0.0, | |
| 438 | + "d_pnc_m3p3": 0.0, | |
| 439 | + "eq_level": -12.747408105560794 | |
| 440 | + }, | |
| 441 | + { | |
| 442 | + "type": "Employment report", | |
| 443 | + "date": "2026-02-06", | |
| 444 | + "d_eq_0": -0.683769630203166, | |
| 445 | + "d_eq_m1p1": -1.379456379743015, | |
| 446 | + "d_eq_m3p3": -1.9160922879200033, | |
| 447 | + "d_pnc_0": -3.500000000000003, | |
| 448 | + "d_pnc_m1p1": -11.499999999999998, | |
| 449 | + "d_pnc_m3p3": -11.499999999999998, | |
| 450 | + "eq_level": -15.818698347107443 | |
| 451 | + }, | |
| 452 | + { | |
| 453 | + "type": "Employment report", | |
| 454 | + "date": "2026-03-06", | |
| 455 | + "d_eq_0": -1.0154616343390463, | |
| 456 | + "d_eq_m1p1": -2.206242326629689, | |
| 457 | + "d_eq_m3p3": 3.2795733154294044, | |
| 458 | + "d_pnc_0": -12.0, | |
| 459 | + "d_pnc_m1p1": -11.5, | |
| 460 | + "d_pnc_m3p3": 7.999999999999996, | |
| 461 | + "eq_level": -8.147668393782384 | |
| 462 | + }, | |
| 463 | + { | |
| 464 | + "type": "Employment report", | |
| 465 | + "date": "2026-04-04", | |
| 466 | + "d_eq_0": -0.961602124591707, | |
| 467 | + "d_eq_m1p1": -1.4835664209421533, | |
| 468 | + "d_eq_m3p3": -0.49906057553278016, | |
| 469 | + "d_pnc_0": 6.000000000000005, | |
| 470 | + "d_pnc_m1p1": 4.0000000000000036, | |
| 471 | + "d_pnc_m3p3": 6.000000000000005, | |
| 472 | + "eq_level": -1.2867647058823526 | |
| 473 | + }, | |
| 474 | + { | |
| 475 | + "type": "Employment report", | |
| 476 | + "date": "2026-05-08", | |
| 477 | + "d_eq_0": 0.3093010906315811, | |
| 478 | + "d_eq_m1p1": 0.4461922342507377, | |
| 479 | + "d_eq_m3p3": -0.060406627541422064, | |
| 480 | + "d_pnc_0": 1.550000000000007, | |
| 481 | + "d_pnc_m1p1": 1.9500000000000073, | |
| 482 | + "d_pnc_m3p3": 1.1500000000000066, | |
| 483 | + "eq_level": -0.37443834248627067 | |
| 484 | + } | |
| 485 | + ] | |
| 486 | + }, | |
| 487 | + "announcement": { | |
| 488 | + "All scheduled releases": { | |
| 489 | + "eq": { | |
| 490 | + "label": "All scheduled releases", | |
| 491 | + "n_a": 13, | |
| 492 | + "n_b": 132, | |
| 493 | + "mean_abs_a": 1.1464969762562949, | |
| 494 | + "mean_abs_b": 0.5112837193584133, | |
| 495 | + "median_abs_a": 0.961602124591707, | |
| 496 | + "median_abs_b": 0.23992913024620854, | |
| 497 | + "ratio_mean": 2.242388976701589, | |
| 498 | + "sd_a": 1.897841415951149, | |
| 499 | + "sd_b": 0.8618516866943308, | |
| 500 | + "var_ratio": 4.849028848889816, | |
| 501 | + "mw_p": 0.01170854860954363, | |
| 502 | + "bf_stat": 7.247563316712681, | |
| 503 | + "bf_p": 0.007947324226515031, | |
| 504 | + "mean_a": 0.4581021862761239, | |
| 505 | + "mean_b": 0.07134669394108376 | |
| 506 | + }, | |
| 507 | + "pnc": { | |
| 508 | + "label": "All scheduled releases", | |
| 509 | + "n_a": 13, | |
| 510 | + "n_b": 132, | |
| 511 | + "mean_abs_a": 5.496153846153849, | |
| 512 | + "mean_abs_b": 1.3825757575757576, | |
| 513 | + "median_abs_a": 3.500000000000003, | |
| 514 | + "median_abs_b": 0.5000000000000004, | |
| 515 | + "ratio_mean": 3.9753003161222358, | |
| 516 | + "sd_a": 8.67658209913771, | |
| 517 | + "sd_b": 2.300023006251289, | |
| 518 | + "var_ratio": 14.230920770303182, | |
| 519 | + "mw_p": 0.0029421475535682962, | |
| 520 | + "bf_stat": 28.289448732880746, | |
| 521 | + "bf_p": 3.9385391601826543e-07, | |
| 522 | + "mean_a": 1.2653846153846167, | |
| 523 | + "mean_b": 0.34318181818181814 | |
| 524 | + } | |
| 525 | + }, | |
| 526 | + "FOMC": { | |
| 527 | + "eq": { | |
| 528 | + "label": "FOMC", | |
| 529 | + "n_a": 4, | |
| 530 | + "n_b": 141, | |
| 531 | + "mean_abs_a": 1.8821535099386584, | |
| 532 | + "mean_abs_b": 0.5309595574956579, | |
| 533 | + "median_abs_a": 0.694860795276921, | |
| 534 | + "median_abs_b": 0.2511827537433593, | |
| 535 | + "ratio_mean": 3.5448151998922257, | |
| 536 | + "sd_a": 2.834533505022324, | |
| 537 | + "sd_b": 0.8704788085275927, | |
| 538 | + "var_ratio": 10.603440018127257, | |
| 539 | + "mw_p": 0.11252202091969732, | |
| 540 | + "bf_stat": 8.775076239372682, | |
| 541 | + "bf_p": 0.0035773399356579492, | |
| 542 | + "mean_a": 1.8218736706121457, | |
| 543 | + "mean_b": 0.05734466198130557 | |
| 544 | + }, | |
| 545 | + "pnc": { | |
| 546 | + "label": "FOMC", | |
| 547 | + "n_a": 4, | |
| 548 | + "n_b": 141, | |
| 549 | + "mean_abs_a": 9.0, | |
| 550 | + "mean_abs_b": 1.545744680851064, | |
| 551 | + "median_abs_a": 6.500000000000001, | |
| 552 | + "median_abs_b": 0.5000000000000004, | |
| 553 | + "ratio_mean": 5.822436338609772, | |
| 554 | + "sd_a": 14.390390312056631, | |
| 555 | + "sd_b": 2.6082389335232508, | |
| 556 | + "var_ratio": 30.44040317389043, | |
| 557 | + "mw_p": 0.08290611000594683, | |
| 558 | + "bf_stat": 32.376231716103156, | |
| 559 | + "bf_p": 6.928603560038152e-08, | |
| 560 | + "mean_a": 3.2500000000000004, | |
| 561 | + "mean_b": 0.34574468085106386 | |
| 562 | + } | |
| 563 | + }, | |
| 564 | + "CPI": { | |
| 565 | + "eq": { | |
| 566 | + "label": "CPI", | |
| 567 | + "n_a": 4, | |
| 568 | + "n_b": 141, | |
| 569 | + "mean_abs_a": 0.6876038323402006, | |
| 570 | + "mean_abs_b": 0.5648474916119262, | |
| 571 | + "median_abs_a": 0.6973403898348026, | |
| 572 | + "median_abs_b": 0.2558515559475314, | |
| 573 | + "ratio_mean": 1.217326521850987, | |
| 574 | + "sd_a": 0.712185866493723, | |
| 575 | + "sd_b": 0.9981170547744919, | |
| 576 | + "var_ratio": 0.5091242093406645, | |
| 577 | + "mw_p": 0.3518745939625127, | |
| 578 | + "bf_stat": 0.01340693968022251, | |
| 579 | + "bf_p": 0.9079827323946646, | |
| 580 | + "mean_a": 0.6686657200235661, | |
| 581 | + "mean_b": 0.09005978114693902 | |
| 582 | + }, | |
| 583 | + "pnc": { | |
| 584 | + "label": "CPI", | |
| 585 | + "n_a": 4, | |
| 586 | + "n_b": 141, | |
| 587 | + "mean_abs_a": 2.975000000000001, | |
| 588 | + "mean_abs_b": 1.7166666666666668, | |
| 589 | + "median_abs_a": 2.450000000000002, | |
| 590 | + "median_abs_b": 0.5000000000000004, | |
| 591 | + "ratio_mean": 1.7330097087378644, | |
| 592 | + "sd_a": 3.1836823543396, | |
| 593 | + "sd_b": 3.326654504528917, | |
| 594 | + "var_ratio": 0.9158915728656231, | |
| 595 | + "mw_p": 0.1761812793150006, | |
| 596 | + "bf_stat": 0.31399975982486794, | |
| 597 | + "bf_p": 0.5761129196745849, | |
| 598 | + "mean_a": 2.975000000000001, | |
| 599 | + "mean_b": 0.3535460992907801 | |
| 600 | + } | |
| 601 | + }, | |
| 602 | + "Employment report": { | |
| 603 | + "eq": { | |
| 604 | + "label": "Employment report", | |
| 605 | + "n_a": 5, | |
| 606 | + "n_b": 140, | |
| 607 | + "mean_abs_a": 0.9250862644432797, | |
| 608 | + "mean_abs_b": 0.5554891451744713, | |
| 609 | + "median_abs_a": 0.961602124591707, | |
| 610 | + "median_abs_b": 0.24112470247756068, | |
| 611 | + "ratio_mean": 1.6653543502685784, | |
| 612 | + "sd_a": 0.7155628435639625, | |
| 613 | + "sd_b": 0.989095911530549, | |
| 614 | + "var_ratio": 0.5233819598077479, | |
| 615 | + "mw_p": 0.0175334281548438, | |
| 616 | + "bf_stat": 0.06549264006126108, | |
| 617 | + "bf_p": 0.7983840036253295, | |
| 618 | + "mean_a": -0.8013658281906473, | |
| 619 | + "mean_b": 0.13842800830547075 | |
| 620 | + }, | |
| 621 | + "pnc": { | |
| 622 | + "label": "Employment report", | |
| 623 | + "n_a": 5, | |
| 624 | + "n_b": 140, | |
| 625 | + "mean_abs_a": 4.710000000000003, | |
| 626 | + "mean_abs_b": 1.6457142857142855, | |
| 627 | + "median_abs_a": 3.500000000000003, | |
| 628 | + "median_abs_b": 0.5000000000000004, | |
| 629 | + "ratio_mean": 2.8619791666666687, | |
| 630 | + "sd_a": 6.719784222726206, | |
| 631 | + "sd_b": 3.1766455705967873, | |
| 632 | + "var_ratio": 4.474794874390677, | |
| 633 | + "mw_p": 0.013126752408909698, | |
| 634 | + "bf_stat": 5.320495027714307, | |
| 635 | + "bf_p": 0.02251258620022381, | |
| 636 | + "mean_a": -1.6899999999999984, | |
| 637 | + "mean_b": 0.5014285714285713 | |
| 638 | + } | |
| 639 | + }, | |
| 640 | + "Weekend": { | |
| 641 | + "eq": { | |
| 642 | + "label": "Weekend", | |
| 643 | + "n_a": 41, | |
| 644 | + "n_b": 91, | |
| 645 | + "mean_abs_a": 0.36946982933327494, | |
| 646 | + "mean_abs_b": 0.5751778895895197, | |
| 647 | + "median_abs_a": 0.23992913024620854, | |
| 648 | + "median_abs_b": 0.24232027470891282, | |
| 649 | + "ratio_mean": 0.6423574967336628, | |
| 650 | + "sd_a": 0.5591334956226544, | |
| 651 | + "sd_b": 0.9695036359955652, | |
| 652 | + "var_ratio": 0.3326075748433643, | |
| 653 | + "mw_p": 0.8614348455246099, | |
| 654 | + "bf_stat": 2.540099379094205, | |
| 655 | + "bf_p": 0.11341627626133437, | |
| 656 | + "mean_a": 0.012535133669573493, | |
| 657 | + "mean_b": 0.09784421010736859 | |
| 658 | + }, | |
| 659 | + "pnc": { | |
| 660 | + "label": "Weekend", | |
| 661 | + "n_a": 41, | |
| 662 | + "n_b": 91, | |
| 663 | + "mean_abs_a": 0.9146341463414636, | |
| 664 | + "mean_abs_b": 1.593406593406593, | |
| 665 | + "median_abs_a": 0.4999999999999949, | |
| 666 | + "median_abs_b": 0.5000000000000004, | |
| 667 | + "ratio_mean": 0.5740117746005048, | |
| 668 | + "sd_a": 1.5056762519246154, | |
| 669 | + "sd_b": 2.5869749825693247, | |
| 670 | + "var_ratio": 0.3387495628665577, | |
| 671 | + "mw_p": 0.9698191066607764, | |
| 672 | + "bf_stat": 3.819761182152622, | |
| 673 | + "bf_p": 0.05279795917614046, | |
| 674 | + "mean_a": 0.3487804878048783, | |
| 675 | + "mean_b": 0.34065934065934056 | |
| 676 | + } | |
| 677 | + }, | |
| 678 | + "TNX": { | |
| 679 | + "label": "TNX all releases", | |
| 680 | + "n_a": 12, | |
| 681 | + "n_b": 98, | |
| 682 | + "mean_abs_a": 3.2083352406819663, | |
| 683 | + "mean_abs_b": 3.267346109662736, | |
| 684 | + "median_abs_a": 2.80001163482666, | |
| 685 | + "median_abs_b": 2.6000022888183594, | |
| 686 | + "ratio_mean": 0.9819392047857272, | |
| 687 | + "sd_a": 4.007824408946774, | |
| 688 | + "sd_b": 4.227165333177843, | |
| 689 | + "var_ratio": 0.8989155708154338, | |
| 690 | + "mw_p": 0.4371358288836797, | |
| 691 | + "bf_stat": 0.001799578875738812, | |
| 692 | + "bf_p": 0.9662410632071017, | |
| 693 | + "mean_a": 0.7416566212972006, | |
| 694 | + "mean_b": 0.3632667113323601 | |
| 695 | + } | |
| 696 | + }, | |
| 697 | + "granger": { | |
| 698 | + "T": 110, | |
| 699 | + "first": "2025-12-12", | |
| 700 | + "last": "2026-05-21", | |
| 701 | + "aic_lag": 0, | |
| 702 | + "bic_lag": 0, | |
| 703 | + "hqic_lag": 0, | |
| 704 | + "pairs": { | |
| 705 | + "Fed->TNX": { | |
| 706 | + "1": [ | |
| 707 | + 0.1863339397593936, | |
| 708 | + 0.6664241925558971, | |
| 709 | + 0.3885838573665635, | |
| 710 | + 0.5343837498947184 | |
| 711 | + ], | |
| 712 | + "2": [ | |
| 713 | + 1.3874403205096448, | |
| 714 | + 0.2520371495561303, | |
| 715 | + 1.0239298892366513, | |
| 716 | + 0.36280714281775245 | |
| 717 | + ], | |
| 718 | + "5": [ | |
| 719 | + 1.0842747012110616, | |
| 720 | + 0.3704860260893849, | |
| 721 | + 0.73161562318152, | |
| 722 | + 0.6015055689782183 | |
| 723 | + ] | |
| 724 | + }, | |
| 725 | + "Fed->SPY": { | |
| 726 | + "1": [ | |
| 727 | + 0.8974021752143663, | |
| 728 | + 0.3445577769231798, | |
| 729 | + 1.6761911601534514, | |
| 730 | + 0.1982444622613216 | |
| 731 | + ], | |
| 732 | + "2": [ | |
| 733 | + 1.014830722955339, | |
| 734 | + 0.3642685543965053, | |
| 735 | + 1.8744047044770427, | |
| 736 | + 0.1586428542293419 | |
| 737 | + ], | |
| 738 | + "5": [ | |
| 739 | + 1.3298759342479411, | |
| 740 | + 0.2532683559647529, | |
| 741 | + 1.9144674342729417, | |
| 742 | + 0.09916536452285221 | |
| 743 | + ] | |
| 744 | + }, | |
| 745 | + "Fed->VIX": { | |
| 746 | + "1": [ | |
| 747 | + 0.3895364715960159, | |
| 748 | + 0.5332141826227197, | |
| 749 | + 0.44668801931964447, | |
| 750 | + 0.5053647481027369 | |
| 751 | + ], | |
| 752 | + "2": [ | |
| 753 | + 0.9901118983459772, | |
| 754 | + 0.37329610220309206, | |
| 755 | + 1.9667138291736195, | |
| 756 | + 0.14513509493915333 | |
| 757 | + ], | |
| 758 | + "5": [ | |
| 759 | + 2.171233592444379, | |
| 760 | + 0.059052553921702965, | |
| 761 | + 2.5434914590968805, | |
| 762 | + 0.033247936384588006 | |
| 763 | + ] | |
| 764 | + }, | |
| 765 | + "Fed->BTC": { | |
| 766 | + "1": [ | |
| 767 | + 1.7482703334437522, | |
| 768 | + 0.18751909012007564, | |
| 769 | + 1.2590180911138602, | |
| 770 | + 0.2643723188708833 | |
| 771 | + ], | |
| 772 | + "2": [ | |
| 773 | + 0.4644220455518459, | |
| 774 | + 0.6291546701951847, | |
| 775 | + 0.30284916718004057, | |
| 776 | + 0.7393660268195892 | |
| 777 | + ], | |
| 778 | + "5": [ | |
| 779 | + 3.3918536224249003, | |
| 780 | + 0.005874078347737074, | |
| 781 | + 1.1972930944823486, | |
| 782 | + 0.3165571111098045 | |
| 783 | + ] | |
| 784 | + }, | |
| 785 | + "TNX->Fed": { | |
| 786 | + "1": [ | |
| 787 | + 0.13085671195776155, | |
| 788 | + 0.7179057064058231, | |
| 789 | + 0.2265472090368293, | |
| 790 | + 0.6350754548129782 | |
| 791 | + ], | |
| 792 | + "2": [ | |
| 793 | + 1.2910095187367312, | |
| 794 | + 0.27720840449641143, | |
| 795 | + 1.290736817156522, | |
| 796 | + 0.27947922397179426 | |
| 797 | + ], | |
| 798 | + "5": [ | |
| 799 | + 0.5925081754810047, | |
| 800 | + 0.7057224606042711, | |
| 801 | + 1.0029546040451196, | |
| 802 | + 0.42044563208307234 | |
| 803 | + ] | |
| 804 | + }, | |
| 805 | + "SPY->Fed": { | |
| 806 | + "1": [ | |
| 807 | + 0.345162792711609, | |
| 808 | + 0.5574894330522158, | |
| 809 | + 1.4723417162668087, | |
| 810 | + 0.227673503364037 | |
| 811 | + ], | |
| 812 | + "2": [ | |
| 813 | + 0.20304670723391113, | |
| 814 | + 0.8164032769812575, | |
| 815 | + 0.8350153442352659, | |
| 816 | + 0.4367832445950324 | |
| 817 | + ], | |
| 818 | + "5": [ | |
| 819 | + 0.3075545878332942, | |
| 820 | + 0.9079734271676, | |
| 821 | + 0.7425479915893026, | |
| 822 | + 0.5935340751185334 | |
| 823 | + ] | |
| 824 | + }, | |
| 825 | + "VIX->Fed": { | |
| 826 | + "1": [ | |
| 827 | + 0.29330021986423277, | |
| 828 | + 0.5886820875273053, | |
| 829 | + 0.5426998895735522, | |
| 830 | + 0.4629432929278815 | |
| 831 | + ], | |
| 832 | + "2": [ | |
| 833 | + 1.0029952428665716, | |
| 834 | + 0.3685631455653098, | |
| 835 | + 4.04952618405227, | |
| 836 | + 0.02027840585230258 | |
| 837 | + ], | |
| 838 | + "5": [ | |
| 839 | + 0.41852031283823987, | |
| 840 | + 0.8354851082873194, | |
| 841 | + 2.359831029229888, | |
| 842 | + 0.04592688350750352 | |
| 843 | + ] | |
| 844 | + }, | |
| 845 | + "BTC->Fed": { | |
| 846 | + "1": [ | |
| 847 | + 0.016888075122404315, | |
| 848 | + 0.896725939730768, | |
| 849 | + 0.021248620838427684, | |
| 850 | + 0.884380537492728 | |
| 851 | + ], | |
| 852 | + "2": [ | |
| 853 | + 0.016662123271762, | |
| 854 | + 0.9834772474201544, | |
| 855 | + 0.021219050775550963, | |
| 856 | + 0.9790087677837672 | |
| 857 | + ], | |
| 858 | + "5": [ | |
| 859 | + 0.5381648994569957, | |
| 860 | + 0.7471925415004497, | |
| 861 | + 1.2029400954850953, | |
| 862 | + 0.313873897619873 | |
| 863 | + ] | |
| 864 | + } | |
| 865 | + }, | |
| 866 | + "min_p_over_lags_aligned": { | |
| 867 | + "Fed->VIX": { | |
| 868 | + "minp_lag": 5, | |
| 869 | + "F": 2.1712335924443793, | |
| 870 | + "p": 0.06380336350061507 | |
| 871 | + }, | |
| 872 | + "VIX->Fed": { | |
| 873 | + "minp_lag": 2, | |
| 874 | + "F": 1.0029952428665576, | |
| 875 | + "p": 0.37033278965289224 | |
| 876 | + }, | |
| 877 | + "Fed->SPY": { | |
| 878 | + "minp_lag": 5, | |
| 879 | + "F": 1.3298759342479411, | |
| 880 | + "p": 0.25834087681035917 | |
| 881 | + } | |
| 882 | + }, | |
| 883 | + "var1_r2": { | |
| 884 | + "Fed": 0.017800710744077408, | |
| 885 | + "TNX": 0.03614521956324901, | |
| 886 | + "SPY": 0.05373902807218256, | |
| 887 | + "VIX": 0.05725716355125987, | |
| 888 | + "BTC": 0.052273490896193486 | |
| 889 | + }, | |
| 890 | + "contemp_corr": { | |
| 891 | + "Fed": { | |
| 892 | + "Fed": 1.0, | |
| 893 | + "TNX": 0.262, | |
| 894 | + "SPY": -0.152, | |
| 895 | + "VIX": 0.084, | |
| 896 | + "BTC": 0.066 | |
| 897 | + }, | |
| 898 | + "TNX": { | |
| 899 | + "Fed": 0.262, | |
| 900 | + "TNX": 1.0, | |
| 901 | + "SPY": -0.391, | |
| 902 | + "VIX": 0.259, | |
| 903 | + "BTC": -0.038 | |
| 904 | + }, | |
| 905 | + "SPY": { | |
| 906 | + "Fed": -0.152, | |
| 907 | + "TNX": -0.391, | |
| 908 | + "SPY": 1.0, | |
| 909 | + "VIX": -0.823, | |
| 910 | + "BTC": 0.508 | |
| 911 | + }, | |
| 912 | + "VIX": { | |
| 913 | + "Fed": 0.084, | |
| 914 | + "TNX": 0.259, | |
| 915 | + "SPY": -0.823, | |
| 916 | + "VIX": 1.0, | |
| 917 | + "BTC": -0.429 | |
| 918 | + }, | |
| 919 | + "BTC": { | |
| 920 | + "Fed": 0.066, | |
| 921 | + "TNX": -0.038, | |
| 922 | + "SPY": 0.508, | |
| 923 | + "VIX": -0.429, | |
| 924 | + "BTC": 1.0 | |
| 925 | + } | |
| 926 | + }, | |
| 927 | + "full_matrix_p": { | |
| 928 | + "Fed": { | |
| 929 | + "Fed": null, | |
| 930 | + "TNX": 0.6664, | |
| 931 | + "SPY": 0.3446, | |
| 932 | + "VIX": 0.5332, | |
| 933 | + "BTC": 0.1875 | |
| 934 | + }, | |
| 935 | + "TNX": { | |
| 936 | + "Fed": 0.7179, | |
| 937 | + "TNX": null, | |
| 938 | + "SPY": 0.0552, | |
| 939 | + "VIX": 0.0432, | |
| 940 | + "BTC": 0.0907 | |
| 941 | + }, | |
| 942 | + "SPY": { | |
| 943 | + "Fed": 0.5575, | |
| 944 | + "TNX": 0.1289, | |
| 945 | + "SPY": null, | |
| 946 | + "VIX": 0.3098, | |
| 947 | + "BTC": 0.7937 | |
| 948 | + }, | |
| 949 | + "VIX": { | |
| 950 | + "Fed": 0.5887, | |
| 951 | + "TNX": 0.1846, | |
| 952 | + "SPY": 0.1186, | |
| 953 | + "VIX": null, | |
| 954 | + "BTC": 0.6391 | |
| 955 | + }, | |
| 956 | + "BTC": { | |
| 957 | + "Fed": 0.8967, | |
| 958 | + "TNX": 0.6625, | |
| 959 | + "SPY": 0.8925, | |
| 960 | + "VIX": 0.392, | |
| 961 | + "BTC": null | |
| 962 | + } | |
| 963 | + } | |
| 964 | + }, | |
| 965 | + "garch": { | |
| 966 | + "T": 145, | |
| 967 | + "mean": 0.688892593385769, | |
| 968 | + "sd": 6.666641909375379, | |
| 969 | + "min": -31.55168714452249, | |
| 970 | + "max": 30.910450803918764, | |
| 971 | + "arch_lm_stat": 4.919228730512842, | |
| 972 | + "arch_lm_p": 0.4258170297225744, | |
| 973 | + "lb_sq_10_stat": 10.681617789595382, | |
| 974 | + "lb_sq_10_p": 0.382854794798534, | |
| 975 | + "lb_ret_10_stat": 20.71109865529393, | |
| 976 | + "lb_ret_10_p": 0.023200637918181728, | |
| 977 | + "GARCH(1,1), normal": { | |
| 978 | + "params": { | |
| 979 | + "mu": 0.43292447003003315, | |
| 980 | + "omega": 0.5282128458546858, | |
| 981 | + "alpha[1]": 0.18316655849510838, | |
| 982 | + "beta[1]": 0.8168338397296401 | |
| 983 | + }, | |
| 984 | + "se": { | |
| 985 | + "mu": 0.2732571795115338, | |
| 986 | + "omega": 0.8616445342042954, | |
| 987 | + "alpha[1]": 0.08319604557816088, | |
| 988 | + "beta[1]": 0.035647507978630914 | |
| 989 | + }, | |
| 990 | + "pvalues": { | |
| 991 | + "mu": 0.1131228683375588, | |
| 992 | + "omega": 0.5398573498202864, | |
| 993 | + "alpha[1]": 0.027691753555133567, | |
| 994 | + "beta[1]": 3.354596406540161e-116 | |
| 995 | + }, | |
| 996 | + "loglik": -461.18359402066426, | |
| 997 | + "aic": 930.3671880413285, | |
| 998 | + "bic": 942.2741230110108, | |
| 999 | + "persistence": 1.0000003982247485, | |
| 1000 | + "lb_z2_10_p": 0.9868935456013539, | |
| 1001 | + "kurt_z": 27.182703798057872 | |
| 1002 | + }, | |
| 1003 | + "GJR-GARCH(1,1), normal": { | |
| 1004 | + "params": { | |
| 1005 | + "mu": 0.08922418283611282, | |
| 1006 | + "omega": 4.413760321440682e-07, | |
| 1007 | + "alpha[1]": 0.0, | |
| 1008 | + "gamma[1]": 0.3043149191505187, | |
| 1009 | + "beta[1]": 0.8478425410898527 | |
| 1010 | + }, | |
| 1011 | + "se": { | |
| 1012 | + "mu": 0.10378028532651684, | |
| 1013 | + "omega": 0.1746409410577467, | |
| 1014 | + "alpha[1]": 0.8902216294750634, | |
| 1015 | + "gamma[1]": 0.7210797762860356, | |
| 1016 | + "beta[1]": 0.5213660883059804 | |
| 1017 | + }, | |
| 1018 | + "pvalues": { | |
| 1019 | + "mu": 0.38993174073366166, | |
| 1020 | + "omega": 0.9999979834790204, | |
| 1021 | + "alpha[1]": 1.0, | |
| 1022 | + "gamma[1]": 0.6730055282116443, | |
| 1023 | + "beta[1]": 0.10390833648874477 | |
| 1024 | + }, | |
| 1025 | + "loglik": -425.30315972827566, | |
| 1026 | + "aic": 860.6063194565513, | |
| 1027 | + "bic": 875.4899881686542, | |
| 1028 | + "persistence": 1.000000000665112, | |
| 1029 | + "lb_z2_10_p": 0.454809464563824, | |
| 1030 | + "kurt_z": 14.591472332198457 | |
| 1031 | + }, | |
| 1032 | + "GARCH(1,1), Student-$t$": { | |
| 1033 | + "params": { | |
| 1034 | + "mu": 0.01080620205192211, | |
| 1035 | + "omega": 4.413760321440682e-07, | |
| 1036 | + "alpha[1]": 0.2910964309825612, | |
| 1037 | + "beta[1]": 0.7089035691103386, | |
| 1038 | + "nu": 2.583195805612878 | |
| 1039 | + }, | |
| 1040 | + "se": { | |
| 1041 | + "mu": 0.033415453260166796, | |
| 1042 | + "omega": 0.019149752749949955, | |
| 1043 | + "alpha[1]": 0.14124782742670744, | |
| 1044 | + "beta[1]": 0.14742810350845165, | |
| 1045 | + "nu": 0.1756560058672706 | |
| 1046 | + }, | |
| 1047 | + "pvalues": { | |
| 1048 | + "mu": 0.7464003863232888, | |
| 1049 | + "omega": 0.9999816098345434, | |
| 1050 | + "alpha[1]": 0.039313403177623496, | |
| 1051 | + "beta[1]": 1.5209007323129607e-06, | |
| 1052 | + "nu": 5.8999986563568226e-49 | |
| 1053 | + }, | |
| 1054 | + "loglik": -382.3777530142225, | |
| 1055 | + "aic": 774.755506028445, | |
| 1056 | + "bic": 789.6391747405479, | |
| 1057 | + "persistence": 1.0000000000929, | |
| 1058 | + "lb_z2_10_p": 0.9868427804969433, | |
| 1059 | + "kurt_z": 30.114669477713395 | |
| 1060 | + }, | |
| 1061 | + "GJR-GARCH(1,1), Student-$t$": { | |
| 1062 | + "params": { | |
| 1063 | + "mu": -0.0032423872199223124, | |
| 1064 | + "omega": 4.413760329732358e-07, | |
| 1065 | + "alpha[1]": 0.0, | |
| 1066 | + "gamma[1]": 0.33375152461405594, | |
| 1067 | + "beta[1]": 0.8331242376930014, | |
| 1068 | + "nu": 2.820103191932808 | |
| 1069 | + }, | |
| 1070 | + "se": { | |
| 1071 | + "mu": 0.03327615091183796, | |
| 1072 | + "omega": 0.01838368307704134, | |
| 1073 | + "alpha[1]": 0.05451432268729888, | |
| 1074 | + "gamma[1]": 0.08409669841897541, | |
| 1075 | + "beta[1]": 0.0471784165075155, | |
| 1076 | + "nu": 0.2365984251852136 | |
| 1077 | + }, | |
| 1078 | + "pvalues": { | |
| 1079 | + "mu": 0.9223779570747657, | |
| 1080 | + "omega": 0.9999808434947063, | |
| 1081 | + "alpha[1]": 1.0, | |
| 1082 | + "gamma[1]": 7.227676125896561e-05, | |
| 1083 | + "beta[1]": 8.674430036506562e-70, | |
| 1084 | + "nu": 9.381991294800639e-33 | |
| 1085 | + }, | |
| 1086 | + "loglik": -373.5546737365763, | |
| 1087 | + "aic": 759.1093474731526, | |
| 1088 | + "bic": 776.969749927676, | |
| 1089 | + "persistence": 1.0000000000000293, | |
| 1090 | + "lb_z2_10_p": 0.3835085139708553, | |
| 1091 | + "kurt_z": 13.54795505803205 | |
| 1092 | + }, | |
| 1093 | + "lr_gjr_vs_garch": 71.7608685847772, | |
| 1094 | + "lr_p": 0.0 | |
| 1095 | + }, | |
| 1096 | + "har": { | |
| 1097 | + "abs": { | |
| 1098 | + "params": { | |
| 1099 | + "const": 0.9937857241870695, | |
| 1100 | + "rv_d": -0.05786549468399581, | |
| 1101 | + "rv_w": 0.6282362183488193, | |
| 1102 | + "rv_m": 0.13210054468493249 | |
| 1103 | + }, | |
| 1104 | + "t": { | |
| 1105 | + "const": 1.3698205263059708, | |
| 1106 | + "rv_d": -0.5248824925864882, | |
| 1107 | + "rv_w": 2.2360871823371835, | |
| 1108 | + "rv_m": 0.5044809942003677 | |
| 1109 | + }, | |
| 1110 | + "r2": 0.15223632339243465, | |
| 1111 | + "adj_r2": 0.1308641298645129, | |
| 1112 | + "n": 123, | |
| 1113 | + "F_p": 9.049747001580785e-07 | |
| 1114 | + }, | |
| 1115 | + "sq": { | |
| 1116 | + "params": { | |
| 1117 | + "const": 32.29624840651522, | |
| 1118 | + "rv_d": -0.07531812929600283, | |
| 1119 | + "rv_w": 0.324632044064453, | |
| 1120 | + "rv_m": 0.07448519680909282 | |
| 1121 | + }, | |
| 1122 | + "t": { | |
| 1123 | + "const": 1.6928675981926542, | |
| 1124 | + "rv_d": -1.2758705508545272, | |
| 1125 | + "rv_w": 1.10236740136372, | |
| 1126 | + "rv_m": 0.24039557813665555 | |
| 1127 | + }, | |
| 1128 | + "r2": 0.021035179086499878, | |
| 1129 | + "adj_r2": -0.003644606314680665, | |
| 1130 | + "n": 123, | |
| 1131 | + "F_p": 0.4884919016543112 | |
| 1132 | + } | |
| 1133 | + }, | |
| 1134 | + "roll": { | |
| 1135 | + "nochange_mean": 0.01320944537404523, | |
| 1136 | + "nochange_median": 0.014931597945200764, | |
| 1137 | + "nochange_first30_mean": 0.015778724736937935, | |
| 1138 | + "nochange_last30_mean": 0.011101339228384655, | |
| 1139 | + "share_zero": 0.31746031746031744, | |
| 1140 | + "autocov_sign_share_negative": 0.6825396825396826 | |
| 1141 | + }, | |
| 1142 | + "election": { | |
| 1143 | + "trump_last": 0.58, | |
| 1144 | + "trump_max": 0.705, | |
| 1145 | + "trump_min": 0.405, | |
| 1146 | + "trump_mean": 0.5266498371335504, | |
| 1147 | + "harris_last": 0.4215, | |
| 1148 | + "harris_max": 0.539, | |
| 1149 | + "biden_before_dropout": 0.0695, | |
| 1150 | + "biden_after_dropout": 0.0005, | |
| 1151 | + "harris_before_dropout": 0.1825, | |
| 1152 | + "harris_after_dropout": 0.3235, | |
| 1153 | + "trump_jul12": 0.595, | |
| 1154 | + "trump_jul14": 0.695, | |
| 1155 | + "trump_sep9": 0.5225, | |
| 1156 | + "trump_sep11": 0.496, | |
| 1157 | + "trump_oct_peak": 0.6655, | |
| 1158 | + "trump_oct_peak_date": "2024-10-29", | |
| 1159 | + "trump_nov5": 0.58, | |
| 1160 | + "harris_nov5": 0.4215, | |
| 1161 | + "others_sum_nov5": 0.007500000000000003, | |
| 1162 | + "n_contracts": 17, | |
| 1163 | + "T": 307, | |
| 1164 | + "T_complete": 304 | |
| 1165 | + }, | |
| 1166 | + "sensitivity": { | |
| 1167 | + "ex_two_largest_days": { | |
| 1168 | + "days": [ | |
| 1169 | + "2026-03-18", | |
| 1170 | + "2026-03-06" | |
| 1171 | + ], | |
| 1172 | + "pnc": { | |
| 1173 | + "label": "All releases ex 2 largest FOMC days", | |
| 1174 | + "n_a": 11, | |
| 1175 | + "n_b": 132, | |
| 1176 | + "mean_abs_a": 3.3136363636363653, | |
| 1177 | + "mean_abs_b": 1.3825757575757576, | |
| 1178 | + "median_abs_a": 1.550000000000007, | |
| 1179 | + "median_abs_b": 0.5000000000000004, | |
| 1180 | + "ratio_mean": 2.3967123287671246, | |
| 1181 | + "sd_a": 4.985100527845681, | |
| 1182 | + "sd_b": 2.300023006251289, | |
| 1183 | + "var_ratio": 4.697680552089278, | |
| 1184 | + "mw_p": 0.02295811640354038, | |
| 1185 | + "bf_stat": 8.27506804791274, | |
| 1186 | + "bf_p": 0.004644235760332439, | |
| 1187 | + "mean_a": 0.49545454545454687, | |
| 1188 | + "mean_b": 0.34318181818181814 | |
| 1189 | + }, | |
| 1190 | + "eq": { | |
| 1191 | + "label": "All releases ex 2 largest FOMC days", | |
| 1192 | + "n_a": 11, | |
| 1193 | + "n_b": 132, | |
| 1194 | + "mean_abs_a": 0.7155151169495475, | |
| 1195 | + "mean_abs_b": 0.5112837193584133, | |
| 1196 | + "median_abs_a": 0.683769630203166, | |
| 1197 | + "median_abs_b": 0.23992913024620854, | |
| 1198 | + "ratio_mean": 1.3994482708102165, | |
| 1199 | + "sd_a": 0.9282139483746646, | |
| 1200 | + "sd_b": 0.8618516866943308, | |
| 1201 | + "var_ratio": 1.1599282047446187, | |
| 1202 | + "mw_p": 0.0512789503834107, | |
| 1203 | + "bf_stat": 0.7850936058518846, | |
| 1204 | + "bf_p": 0.3770965232963983, | |
| 1205 | + "mean_a": 0.08658702594371737, | |
| 1206 | + "mean_b": 0.07134669394108376 | |
| 1207 | + } | |
| 1208 | + }, | |
| 1209 | + "share_inside_band_1c": 0.4863013698630137, | |
| 1210 | + "share_inside_band_roll": 0.4178082191780822, | |
| 1211 | + "max_abs_diff_lower_bound_ub_vs_dff": 0.0005558943735577415, | |
| 1212 | + "eq75_corr_with_eq50": 0.985731311990418, | |
| 1213 | + "eq75_sd_ratio": 1.1116016188824058, | |
| 1214 | + "eq75_all_releases": { | |
| 1215 | + "label": "All releases, \u00b175", | |
| 1216 | + "n_a": 13, | |
| 1217 | + "n_b": 132, | |
| 1218 | + "mean_abs_a": 1.3219973509782226, | |
| 1219 | + "mean_abs_b": 0.5719710241766248, | |
| 1220 | + "median_abs_a": 0.9266747639199657, | |
| 1221 | + "median_abs_b": 0.27409409417243935, | |
| 1222 | + "ratio_mean": 2.3113012636982626, | |
| 1223 | + "sd_a": 2.121695069802198, | |
| 1224 | + "sd_b": 0.9560748038224701, | |
| 1225 | + "var_ratio": 4.924727314595579, | |
| 1226 | + "mw_p": 0.011498600878724214, | |
| 1227 | + "bf_stat": 8.364898234055897, | |
| 1228 | + "bf_p": 0.004423733786410003, | |
| 1229 | + "mean_a": 0.5002558208979113, | |
| 1230 | + "mean_b": 0.08231989362224046 | |
| 1231 | + }, | |
| 1232 | + "granger_pnc": { | |
| 1233 | + "Fed->TNX": { | |
| 1234 | + "1": [ | |
| 1235 | + 0.0374774797562875, | |
| 1236 | + 0.8466814922394058 | |
| 1237 | + ], | |
| 1238 | + "2": [ | |
| 1239 | + 2.284972408597407, | |
| 1240 | + 0.10435090410280286 | |
| 1241 | + ] | |
| 1242 | + }, | |
| 1243 | + "Fed->SPY": { | |
| 1244 | + "1": [ | |
| 1245 | + 3.3090187896013985, | |
| 1246 | + 0.0703114249606613 | |
| 1247 | + ], | |
| 1248 | + "2": [ | |
| 1249 | + 3.368909157367895, | |
| 1250 | + 0.03633452465181853 | |
| 1251 | + ] | |
| 1252 | + }, | |
| 1253 | + "Fed->VIX": { | |
| 1254 | + "1": [ | |
| 1255 | + 2.068482409262194, | |
| 1256 | + 0.15184564244653573 | |
| 1257 | + ], | |
| 1258 | + "2": [ | |
| 1259 | + 1.9981101325611137, | |
| 1260 | + 0.13821063845448414 | |
| 1261 | + ] | |
| 1262 | + }, | |
| 1263 | + "Fed->BTC": { | |
| 1264 | + "1": [ | |
| 1265 | + 0.7150108861250926, | |
| 1266 | + 0.3987386728441283 | |
| 1267 | + ], | |
| 1268 | + "2": [ | |
| 1269 | + 0.31966179540603123, | |
| 1270 | + 0.7267543295650584 | |
| 1271 | + ] | |
| 1272 | + }, | |
| 1273 | + "TNX->Fed": { | |
| 1274 | + "1": [ | |
| 1275 | + 0.17090280611372952, | |
| 1276 | + 0.6797285601290812 | |
| 1277 | + ], | |
| 1278 | + "2": [ | |
| 1279 | + 0.2622398362186393, | |
| 1280 | + 0.7695829239274447 | |
| 1281 | + ] | |
| 1282 | + }, | |
| 1283 | + "SPY->Fed": { | |
| 1284 | + "1": [ | |
| 1285 | + 0.5643198104738099, | |
| 1286 | + 0.45335801171061973 | |
| 1287 | + ], | |
| 1288 | + "2": [ | |
| 1289 | + 0.5542089383142024, | |
| 1290 | + 0.5753807647803562 | |
| 1291 | + ] | |
| 1292 | + }, | |
| 1293 | + "VIX->Fed": { | |
| 1294 | + "1": [ | |
| 1295 | + 0.26535430348694033, | |
| 1296 | + 0.6070020020179456 | |
| 1297 | + ], | |
| 1298 | + "2": [ | |
| 1299 | + 1.0195362295238948, | |
| 1300 | + 0.3625751963406258 | |
| 1301 | + ] | |
| 1302 | + }, | |
| 1303 | + "BTC->Fed": { | |
| 1304 | + "1": [ | |
| 1305 | + 0.3360602120006573, | |
| 1306 | + 0.5627277647739939 | |
| 1307 | + ], | |
| 1308 | + "2": [ | |
| 1309 | + 1.0250698227550588, | |
| 1310 | + 0.3605940031339766 | |
| 1311 | + ] | |
| 1312 | + } | |
| 1313 | + }, | |
| 1314 | + "granger_halves_p1": { | |
| 1315 | + "first_half": { | |
| 1316 | + "Fed->TNX": [ | |
| 1317 | + 0.2925070868281205, | |
| 1318 | + 0.5897975545235102 | |
| 1319 | + ], | |
| 1320 | + "Fed->SPY": [ | |
| 1321 | + 0.4103946000709298, | |
| 1322 | + 0.5232059117641644 | |
| 1323 | + ], | |
| 1324 | + "Fed->VIX": [ | |
| 1325 | + 0.026428954247282834, | |
| 1326 | + 0.8711787651310898 | |
| 1327 | + ], | |
| 1328 | + "Fed->BTC": [ | |
| 1329 | + 0.3935540417271184, | |
| 1330 | + 0.5318389643942933 | |
| 1331 | + ], | |
| 1332 | + "TNX->Fed": [ | |
| 1333 | + 1.1039169934353035, | |
| 1334 | + 0.2958910193712852 | |
| 1335 | + ], | |
| 1336 | + "SPY->Fed": [ | |
| 1337 | + 0.22455868931332754, | |
| 1338 | + 0.636600939070492 | |
| 1339 | + ], | |
| 1340 | + "VIX->Fed": [ | |
| 1341 | + 1.5581393983174456, | |
| 1342 | + 0.21479557092977886 | |
| 1343 | + ], | |
| 1344 | + "BTC->Fed": [ | |
| 1345 | + 0.08974150174508609, | |
| 1346 | + 0.7651156278935385 | |
| 1347 | + ], | |
| 1348 | + "T": 55 | |
| 1349 | + }, | |
| 1350 | + "second_half": { | |
| 1351 | + "Fed->TNX": [ | |
| 1352 | + 0.010691160305605707, | |
| 1353 | + 0.917850069565024 | |
| 1354 | + ], | |
| 1355 | + "Fed->SPY": [ | |
| 1356 | + 0.5066711550779139, | |
| 1357 | + 0.47820831412756515 | |
| 1358 | + ], | |
| 1359 | + "Fed->VIX": [ | |
| 1360 | + 0.593690123942978, | |
| 1361 | + 0.44277674067578454 | |
| 1362 | + ], | |
| 1363 | + "Fed->BTC": [ | |
| 1364 | + 1.5249037117277322, | |
| 1365 | + 0.2197160023824929 | |
| 1366 | + ], | |
| 1367 | + "TNX->Fed": [ | |
| 1368 | + 0.17506691283590012, | |
| 1369 | + 0.6765270361233128 | |
| 1370 | + ], | |
| 1371 | + "SPY->Fed": [ | |
| 1372 | + 0.10591589721980661, | |
| 1373 | + 0.7455092687180812 | |
| 1374 | + ], | |
| 1375 | + "VIX->Fed": [ | |
| 1376 | + 0.4704887947894797, | |
| 1377 | + 0.4943185344351174 | |
| 1378 | + ], | |
| 1379 | + "BTC->Fed": [ | |
| 1380 | + 0.09304278120732723, | |
| 1381 | + 0.7609655026198815 | |
| 1382 | + ], | |
| 1383 | + "T": 55 | |
| 1384 | + } | |
| 1385 | + }, | |
| 1386 | + "trump_max_date": "2024-07-15", | |
| 1387 | + "trump_max": 0.705, | |
| 1388 | + "nochange_mar17": 0.635, | |
| 1389 | + "nochange_mar18": 0.865, | |
| 1390 | + "cut25_mar17": 0.295, | |
| 1391 | + "cut25_mar18": 0.085, | |
| 1392 | + "n_release_days": 13, | |
| 1393 | + "n_other_days": 132 | |
| 1394 | + } | |
| 1395 | +} | |
| \ No newline at end of file | ||
modified
results/tables/table1_descriptive_stats.tex
+31 −26
@@ -1,38 +1,43 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\footnotesize | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{Descriptive Statistics of Polymarket Contracts} | |
| 4 | +\caption{Markets analysed: Polymarket metadata and daily closing prices} | |
| 5 | 5 | \label{tab:descriptive_stats} |
| 6 | −\begin{tabular}{l S S c S S} | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l r r r r r r r r} | |
| 7 | 8 | \toprule |
| 8 | −Market & {Volume (\$)} & {Liquidity (\$)} & Obs & {Mean Price} & {Std Dev} \\ | |
| 9 | +Contract & Volume & Liquidity & $T$ & First & Mean & Min & Max & Last \\ | |
| 9 | 10 | \midrule |
| 10 | − Will Marco Rubio win the 2028 US Preside & 9,962,958 & 160,002 & 0 & & \\ | |
| 11 | − Will Anže Logar be the next Prime Minist & 995,465 & 11,011 & 0 & & \\ | |
| 12 | − Will Stephen Cloobeck win the California & 995,372 & 184,072 & 0 & & \\ | |
| 13 | − Will the Republicans win the 2028 US Pre & 994,905 & 331,418 & 0 & & \\ | |
| 14 | − Will Ethereum dip to \$1,500 by December & 994,496 & 43,390 & 0 & & \\ | |
| 15 | − Will Ahmed al-Sharaa win the Nobel Peace & 993,894 & 42,726 & 0 & & \\ | |
| 16 | − US strike on Colombia by December 31? & 991,582 & 6,051 & 0 & & \\ | |
| 17 | − Over \$3M committed to the Printr public & 990,487 & 25,664 & 0 & & \\ | |
| 18 | − Will Lance Stroll be the 2026 F1 Drivers & 9,845,762 & 836,174 & 0 & & \\ | |
| 19 | − Will Michael Younger win the California & 977,490 & 193,379 & 0 & & \\ | |
| 20 | − Will Anthropic have the best AI model at & 975,748 & 28,076 & 0 & & \\ | |
| 21 | − Will the Los Angeles Angels win the 2026 & 973,951 & 95,205 & 0 & & \\ | |
| 22 | − Will PSG win the 2025–26 Champions Leagu & 9,718,043 & 670,357 & 0 & & \\ | |
| 23 | − Will Kamala Harris win the California Go & 970,214 & 82,083 & 0 & & \\ | |
| 24 | − Will Lovable be acquired before 2027? & 969,501 & 3,864 & 0 & & \\ | |
| 25 | − Will Gretchen Whitmer win the 2028 Democ & 9,646,053 & 576,258 & 0 & & \\ | |
| 26 | − Will MetaMask launch a token by Septembe & 964,498 & 4,197 & 0 & & \\ | |
| 27 | − New "Stranger Things" episode released b & 963,189 & 36,759 & 0 & & \\ | |
| 28 | − Will Dawn Buckingham win the 2026 Texas & 961,827 & 26,871 & 0 & & \\ | |
| 29 | − Will no qualifying diplomatic US-Iran me & 958,458 & 51,713 & 0 & & \\ | |
| 11 | +\multicolumn{9}{l}{\textit{Panel A: Fed decision, June 2026 FOMC meeting (event 101772; volume and liquidity in USD)}} \\ | |
| 12 | + 25 bps decrease & 6,849,280 & 225,586 & 146 & 0.535 & 0.301 & 0.006 & 0.570 & 0.009 \\ | |
| 13 | + 25 bps increase & 6,923,152 & 255,431 & 146 & 0.035 & 0.032 & 0.005 & 0.084 & 0.009 \\ | |
| 14 | + 50+ bps decrease & 8,765,442 & 780,011 & 146 & 0.130 & 0.057 & 0.004 & 0.130 & 0.004 \\ | |
| 15 | + No change & 6,483,789 & 964,295 & 146 & 0.360 & 0.610 & 0.300 & 0.981 & 0.978 \\ | |
| 16 | + 50+ bps increase & 8,740,316 & 1,849,158 & 146 & 0.040 & 0.016 & 0.002 & 0.061 & 0.003 \\ | |
| 17 | +\midrule | |
| 18 | +\multicolumn{9}{l}{\textit{Panel B: Presidential Election Winner 2024 (event 903193; volume, USD million)}} \\ | |
| 19 | + Donald Trump & 1,531.5 & -- & 306 & 0.405 & 0.527 & 0.405 & 0.705 & 0.580 \\ | |
| 20 | + Kamala Harris & 1,037.0 & -- & 305 & 0.027 & 0.177 & 0.006 & 0.539 & 0.421 \\ | |
| 21 | + Other Republican Politician & 241.7 & -- & 304 & 0.009 & 0.005 & 0.001 & 0.015 & 0.001 \\ | |
| 22 | + Michelle Obama & 153.4 & -- & 305 & 0.013 & 0.024 & 0.001 & 0.080 & 0.001 \\ | |
| 23 | + Robert F. Kennedy Jr. & 141.6 & -- & 306 & 0.029 & 0.017 & 0.001 & 0.049 & 0.001 \\ | |
| 24 | + Other Democrat Politician & 116.6 & -- & 304 & 0.007 & 0.009 & 0.001 & 0.081 & 0.001 \\ | |
| 25 | + Nikki Haley & 107.5 & -- & 306 & 0.085 & 0.006 & 0.001 & 0.085 & 0.001 \\ | |
| 26 | + Hillary Clinton & 93.3 & -- & 305 & 0.008 & 0.002 & 0.001 & 0.025 & 0.001 \\ | |
| 27 | + Joe Biden & 72.2 & -- & 306 & 0.365 & 0.227 & 0.001 & 0.445 & 0.001 \\ | |
| 28 | + Gavin Newsom & 54.2 & -- & 306 & 0.050 & 0.012 & 0.001 & 0.074 & 0.001 \\ | |
| 29 | + Ron DeSantis & 46.3 & -- & 305 & 0.023 & 0.003 & 0.001 & 0.023 & 0.001 \\ | |
| 30 | + AOC & 22.0 & -- & 304 & 0.011 & 0.003 & 0.001 & 0.500 & 0.001 \\ | |
| 31 | + Vivek Ramaswamy & 21.2 & -- & 305 & 0.019 & 0.002 & 0.001 & 0.019 & 0.001 \\ | |
| 32 | + Elizabeth Warren & 14.7 & -- & 304 & 0.008 & 0.001 & 0.001 & 0.008 & 0.001 \\ | |
| 33 | + Chris Christie & 14.2 & -- & 304 & 0.002 & 0.001 & 0.001 & 0.003 & 0.001 \\ | |
| 34 | + Bernie Sanders & 9.8 & -- & 304 & 0.002 & 0.001 & 0.001 & 0.005 & 0.001 \\ | |
| 35 | + Kanye & 9.2 & -- & 304 & 0.007 & 0.001 & 0.001 & 0.007 & 0.001 \\ | |
| 30 | 36 | \bottomrule |
| 31 | 37 | \end{tabular} |
| 32 | 38 | \begin{tablenotes} |
| 33 | 39 | \small |
| 34 | −\item \textit{Notes:} This table reports summary statistics for the Polymarket contracts analyzed. | |
| 35 | −Volume and liquidity are reported in US dollars. Mean price represents the average implied probability. | |
| 40 | +\item \textit{Notes:} Volume is cumulative traded notional reported by the Gamma API at the snapshot date (22 May 2026); liquidity is the resting order-book depth reported by the same end-point (not available for closed markets). $T$ is the number of daily closes after exclusion of each contract's first recorded point, which carries the quote seeded at listing (0.50 for most election contracts; the Fed seeds are reported in Section~\ref{sec:data}); ``First'' is the first regular close. The maximum of 0.500 for the AOC contract is an isolated print on 9 April 2024. Prices are in USDC per \$1 payoff. Panel B contracts are ordered by volume; the sample ends at the close of 5 November 2024 (00:00 UTC on 6 November), before results were known. | |
| 36 | 41 | \end{tablenotes} |
| 37 | 42 | \end{threeparttable} |
| 38 | 43 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table2_summary_stats.tex
+14 −11
@@ -1,23 +1,26 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\small | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{Summary Statistics of Prediction Market Prices} | |
| 4 | +\caption{Summary statistics: Fed June 2026 state prices (11 December 2025 -- 22 May 2026)} | |
| 5 | 5 | \label{tab:summary_stats} |
| 6 | −\begin{tabular}{l S S S S S S S} | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l rrrr rrrr r} | |
| 7 | 8 | \toprule |
| 8 | −Market & {Mean} & {Std} & {Min} & {Max} & {Skew} & {Kurt} & {JB} \\ | |
| 9 | + & \multicolumn{4}{c}{Level $p_{j,t}$} & \multicolumn{5}{c}{Daily change $\Delta p_{j,t}$ (percentage points)} \\ | |
| 10 | +\cmidrule(lr){2-5}\cmidrule(lr){6-10} | |
| 11 | +Contract & Mean & SD & Min & Max & Mean & SD & Skew & Ex.\ kurt & ADF \\ | |
| 9 | 12 | \midrule |
| 10 | − 50+ bps decrease & 0.058 & 0.042 & 0.004 & 0.150 & -0.03 & -1.45 & 12.7 \\ | |
| 11 | − 25 bps decrease & 0.304 & 0.194 & 0.006 & 0.570 & -0.47 & -1.46 & 18.0 \\ | |
| 12 | − No change & 0.608 & 0.235 & 0.300 & 0.981 & 0.55 & -1.41 & 19.1 \\ | |
| 13 | − 25 bps increase & 0.034 & 0.026 & 0.005 & 0.250 & 3.98 & 30.46 & 5628.7 \\ | |
| 14 | − 50+ bps increase & 0.016 & 0.016 & 0.002 & 0.095 & 1.66 & 3.55 & 135.8 \\ | |
| 13 | + 50+ bps decrease & 0.057 & 0.041 & 0.004 & 0.130 & -0.087 & 0.76 & -1.70 & 13.2 & -5.35 \\ | |
| 14 | + 25 bps decrease & 0.301 & 0.195 & 0.006 & 0.570 & -0.363 & 3.21 & -2.61 & 14.4 & -5.82 \\ | |
| 15 | + No change & 0.610 & 0.237 & 0.300 & 0.981 & 0.426 & 3.34 & 1.65 & 16.1 & -10.47 \\ | |
| 16 | + 25 bps increase & 0.032 & 0.019 & 0.005 & 0.084 & -0.018 & 1.16 & 0.98 & 9.8 & -5.76 \\ | |
| 17 | + 50+ bps increase & 0.016 & 0.015 & 0.002 & 0.061 & -0.026 & 0.63 & 1.12 & 17.0 & -7.84 \\ | |
| 18 | + State-price sum $\Sigma_t$ & 1.0167 & 0.0261 & 0.9605 & 1.1080 & -0.068 & 1.83 & -0.41 & 2.5 & -8.71 \\ | |
| 15 | 19 | \bottomrule |
| 16 | 20 | \end{tabular} |
| 17 | 21 | \begin{tablenotes} |
| 18 | 22 | \small |
| 19 | −\item \textit{Notes:} JB is the Jarque--Bera test statistic for normality. | |
| 20 | −$^{***}$, $^{**}$, and $^{*}$ denote significance at the 1\%, 5\%, and 10\% levels. | |
| 23 | +\item \textit{Notes:} $T=146$ daily closes (calendar days, Polymarket trades continuously) after exclusion of the listing day. Levels are in USDC; changes are in percentage points of the \$1 payoff. ADF is the augmented Dickey--Fuller statistic (constant, AIC lag) for the daily changes; the 1\% critical value is $-3.48$. Prices are bounded in $[0,1]$ and converge to 0 or 1 at resolution, so level series are not stationary by construction. | |
| 21 | 24 | \end{tablenotes} |
| 22 | 25 | \end{threeparttable} |
| 23 | 26 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table3_completeness.tex
+38 −15
@@ -1,27 +1,50 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\small | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{Arrow--Debreu Market Completeness Tests} | |
| 4 | +\caption{Price of the complete set of state claims: law-of-one-price tests} | |
| 5 | 5 | \label{tab:completeness} |
| 6 | −\begin{tabular}{l S} | |
| 6 | +\begin{tabular}{l r r} | |
| 7 | 7 | \toprule |
| 8 | −Statistic & {Value} \\ | |
| 8 | + & Fed June 2026 & Election 2024 \\ | |
| 9 | + & ($N=5$ states) & ($N=17$ candidates) \\ | |
| 9 | 10 | \midrule |
| 10 | − Mean state price sum & 1.0205 \\ | |
| 11 | − Std of state price sum & 0.0527 \\ | |
| 12 | − Mean deviation from unity & 0.0248 \\ | |
| 13 | − Max absolute deviation & 0.5700 \\ | |
| 14 | − All state prices positive & {Yes} \\ | |
| 15 | − Implied discount factor & 1.0205 \\ | |
| 16 | − Number of observations & 146 \\ | |
| 11 | +\multicolumn{3}{l}{\textit{Panel A: distribution of $\Sigma_t=\sum_j p_{j,t}$}} \\ | |
| 12 | + Observations $T$ & 146 & 304 \\ | |
| 13 | + Mean & 1.0167 & 1.0146 \\ | |
| 14 | + Median & 1.0093 & 1.0105 \\ | |
| 15 | + Standard deviation & 0.0261 & 0.0313 \\ | |
| 16 | + Minimum & 0.9605 & 0.9660 \\ | |
| 17 | + Maximum & 1.1080 & 1.5150 \\ | |
| 18 | +\midrule | |
| 19 | +\multicolumn{3}{l}{\textit{Panel B: deviation $\Sigma_t-1$}} \\ | |
| 20 | + Mean deviation (overround) & 0.0167 & 0.0146 \\ | |
| 21 | + HAC standard error (5 lags) & 0.0044 & 0.0020 \\ | |
| 22 | + $t$-statistic, $H_0$: $\mathbb{{E}}[\Sigma_t-1]=0$ & 3.80 & 7.42 \\ | |
| 23 | + Mean absolute deviation & 0.0209 & 0.0162 \\ | |
| 24 | + Share of days with $\Sigma_t>1$ & 83.6\% & 91.8\% \\ | |
| 25 | + Share within $\pm 0.5$ pp & 25.3\% & 12.8\% \\ | |
| 26 | + Share within $\pm 1$ pp & 43.8\% & 42.4\% \\ | |
| 27 | + Share within $\pm 2$ pp & 65.1\% & 74.0\% \\ | |
| 28 | + Share within $\pm 5$ pp & 87.0\% & 98.7\% \\ | |
| 29 | +\midrule | |
| 30 | +\multicolumn{3}{l}{\textit{Panel C: discount-adjusted bounds, $e^{-r_t\tau_t}\le\Sigma_t\le 1$}} \\ | |
| 31 | + Mean lower bound $e^{{-r_t\tau_t}}$ & 0.9890 & 0.9783 \\ | |
| 32 | + Mean $\Sigma_t-e^{{-r_t\tau_t}}$ & 0.0277 & 0.0363 \\ | |
| 33 | + Share inside bounds ($\pm 0.5$ pp) & 29.5\% & 18.4\% \\ | |
| 34 | + Share above upper bound & 65.1\% & 81.2\% \\ | |
| 35 | +\midrule | |
| 36 | +\multicolumn{3}{l}{\textit{Panel D: dynamics of $\Sigma_t-1$}} \\ | |
| 37 | + AR(1) coefficient & 0.721 & 0.060 \\ | |
| 38 | + Half-life (days) & 2.1 & 0.2 \\ | |
| 39 | + ADF statistic (constant, AIC lag) & -2.82 & -16.40 \\ | |
| 40 | + ADF $p$-value & 0.055 & 0.000 \\ | |
| 41 | + Slope on time-to-resolution $\tau_t$ (years) & 0.113 & 0.020 \\ | |
| 42 | + \quad HAC $t$-statistic & 4.87 & 3.73 \\ | |
| 17 | 43 | \bottomrule |
| 18 | 44 | \end{tabular} |
| 19 | 45 | \begin{tablenotes} |
| 20 | 46 | \small |
| 21 | −\item \textit{Notes:} This table reports results from testing Arrow--Debreu market completeness | |
| 22 | −conditions using the Fed rate decision markets on Polymarket. Under complete markets, | |
| 23 | −the sum of state prices equals $1/(1+r_f)$. Mean deviation measures the average | |
| 24 | −departure from this theoretical prediction. | |
| 47 | +\item \textit{Notes:} $\Sigma_t$ is the sum of the daily closing prices of all contracts in the neg-risk group on days when all contracts are quoted. The Fed sample excludes the listing day (10 December 2025, $\Sigma=1.570$ on seeded quotes; including it gives mean 1.0204, SD 0.0525, maximum absolute deviation 0.570); the election sample likewise excludes its first complete day (4 January 2024, $\Sigma=1.515$). The lower bound discounts the \$1 payoff of the complete set at the effective federal funds rate (FRED DFF) over the remaining time to resolution; the upper bound is one because a complete set can be minted and its NO legs converted immediately through the neg-risk adapter. HAC standard errors use the Newey--West estimator with 5 lags. | |
| 25 | 48 | \end{tablenotes} |
| 26 | 49 | \end{threeparttable} |
| 27 | 50 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table4_event_study.tex
+38 −20
@@ -1,32 +1,50 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\footnotesize | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{Event Study: Cumulative Abnormal Returns Around Macroeconomic Events} | |
| 4 | +\caption{Scheduled macroeconomic releases and the risk-neutral expected policy change} | |
| 5 | 5 | \label{tab:event_study} |
| 6 | −\begin{tabular}{l l c c c c} | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l l r rrr rrr} | |
| 7 | 8 | \toprule |
| 8 | −Event Type & Window & {CAR} & {$t$-stat} & {$p$-value} & $N$ \\ | |
| 9 | +\multicolumn{9}{l}{\textit{Panel A: individual releases in the sample}} \\ | |
| 10 | +\addlinespace[2pt] | |
| 11 | + & & $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ & \multicolumn{3}{c}{$\Delta \mathbb{E}^{\mathbb{Q}}[\Delta r]$ (bps)} & \multicolumn{3}{c}{$\Delta p_{\text{No change}}$ (pp)} \\ | |
| 12 | +\cmidrule(lr){4-6}\cmidrule(lr){7-9} | |
| 13 | +Release & Date & level (bps) & $[0]$ & $[-1,+1]$ & $[-3,+3]$ & $[0]$ & $[-1,+1]$ & $[-3,+3]$ \\ | |
| 9 | 14 | \midrule |
| 10 | − FOMC: 25 bps decrease & [-3,3] & $-0.615$ & -5.89 & 0.107 & 2 \\ | |
| 11 | − FOMC: 25 bps increase & [-3,3] & $-0.054$ & -0.21 & 0.866 & 2 \\ | |
| 12 | − FOMC: 50+ bps decrease & [-3,3] & $-0.041$ & -0.08 & 0.951 & 2 \\ | |
| 13 | − FOMC: 50+ bps increase & [-3,3] & $-0.599$ & -0.88 & 0.542 & 2 \\ | |
| 14 | − FOMC: No change & [-3,3] & $0.115$ & 0.52 & 0.694 & 2 \\ | |
| 15 | − CPI: 25 bps decrease & [-3,3] & $-0.116$ & -1.49 & 0.275 & 3 \\ | |
| 16 | − CPI: 25 bps increase & [-3,3] & $-0.999^{*}$ & -3.01 & 0.095 & 3 \\ | |
| 17 | − CPI: 50+ bps decrease & [-3,3] & $-0.228$ & -2.83 & 0.105 & 3 \\ | |
| 18 | − CPI: 50+ bps increase & [-3,3] & $-0.545$ & -1.56 & 0.260 & 3 \\ | |
| 19 | − CPI: No change & [-3,3] & $0.023$ & 0.28 & 0.807 & 3 \\ | |
| 20 | − Election: Donald Trump & [-5,5] & $-0.057$ & -0.88 & 0.470 & 3 \\ | |
| 15 | + FOMC & 17 Dec 2025 & -11.6 & 0.39 & 1.23 & 1.03 & 1.50 & 0.00 & 0.00 \\ | |
| 16 | + FOMC & 28 Jan 2026 & -14.5 & 0.99 & -1.06 & 1.08 & -11.50 & -9.00 & -10.00 \\ | |
| 17 | + FOMC & 18 Mar 2026 & -1.6 & 6.02 & 6.28 & 6.05 & 23.00 & 24.00 & 22.00 \\ | |
| 18 | + FOMC & 06 May 2026 & -0.7 & -0.12 & -0.30 & 0.54 & 0.00 & 0.00 & 1.95 \\ | |
| 19 | + CPI & 14 Jan 2026 & -14.1 & -0.04 & -0.40 & 0.13 & 0.00 & 0.00 & -1.00 \\ | |
| 20 | + CPI & 11 Feb 2026 & -15.5 & 1.24 & 0.19 & 0.34 & 7.00 & 7.00 & 8.00 \\ | |
| 21 | + CPI & 11 Mar 2026 & -9.1 & 1.32 & -0.48 & 2.50 & 4.00 & 1.50 & 11.00 \\ | |
| 22 | + CPI & 12 May 2026 & -0.3 & 0.15 & 0.20 & 0.22 & 0.90 & 0.60 & 1.00 \\ | |
| 23 | + Employment report & 09 Jan 2026 & -12.7 & -1.66 & -3.44 & -3.27 & -0.50 & 0.00 & 0.00 \\ | |
| 24 | + Employment report & 06 Feb 2026 & -15.8 & -0.68 & -1.38 & -1.92 & -3.50 & -11.50 & -11.50 \\ | |
| 25 | + Employment report & 06 Mar 2026 & -8.1 & -1.02 & -2.21 & 3.28 & -12.00 & -11.50 & 8.00 \\ | |
| 26 | + Employment report & 04 Apr 2026 & -1.3 & -0.96 & -1.48 & -0.50 & 6.00 & 4.00 & 6.00 \\ | |
| 27 | + Employment report & 08 May 2026 & -0.4 & 0.31 & 0.45 & -0.06 & 1.55 & 1.95 & 1.15 \\ | |
| 28 | +\bottomrule | |
| 29 | +\end{tabular}\par\bigskip | |
| 30 | +\begin{tabular}{l r rrrrr rrrrr} | |
| 31 | +\toprule | |
| 32 | +\multicolumn{12}{l}{\textit{Panel B: absolute daily changes on release days versus all other days}} \\ | |
| 33 | +\addlinespace[2pt] | |
| 34 | + & & \multicolumn{5}{c}{$|\Delta \mathbb{E}^{\mathbb{Q}}[\Delta r]|$ (bps)} & \multicolumn{5}{c}{$|\Delta p_{\text{No change}}|$ (pp)} \\ | |
| 35 | +\cmidrule(lr){3-7}\cmidrule(lr){8-12} | |
| 36 | +Days & $K$ & Ann. & Other & VR & $p_{BF}$ & $p_{MW}$ & Ann. & Other & VR & $p_{BF}$ & $p_{MW}$ \\ | |
| 37 | +\midrule | |
| 38 | + All scheduled releases & 13 & 1.15 & 0.51 & 4.85 & 0.008 & 0.012 & 5.50 & 1.38 & 14.23 & 0.000 & 0.003 \\ | |
| 39 | + FOMC & 4 & 1.88 & 0.53 & 10.60 & 0.004 & 0.113 & 9.00 & 1.55 & 30.44 & 0.000 & 0.083 \\ | |
| 40 | + CPI & 4 & 0.69 & 0.56 & 0.51 & 0.908 & 0.352 & 2.98 & 1.72 & 0.92 & 0.576 & 0.176 \\ | |
| 41 | + Employment report & 5 & 0.93 & 0.56 & 0.52 & 0.798 & 0.018 & 4.71 & 1.65 & 4.47 & 0.023 & 0.013 \\ | |
| 42 | + Weekend vs.\ weekday (no release) & 41 & 0.37 & 0.58 & 0.33 & 0.113 & 0.861 & 0.91 & 1.59 & 0.34 & 0.053 & 0.970 \\ | |
| 21 | 43 | \bottomrule |
| 22 | 44 | \end{tabular} |
| 23 | 45 | \begin{tablenotes} |
| 24 | 46 | \small |
| 25 | −\item \textit{Notes:} This table reports cumulative abnormal returns (CARs) for prediction market | |
| 26 | −prices around macroeconomic events. Abnormal returns are computed relative to a constant mean | |
| 27 | −model estimated over a 60-day estimation window. $t$-statistics are computed using the | |
| 28 | −cross-sectional standard deviation of CARs. $^{***}$, $^{**}$, $^{*}$ denote | |
| 29 | −significance at 1\%, 5\%, 10\%. | |
| 47 | +\item \textit{Notes:} $\mathbb{E}^{\mathbb{Q}}_t[\Delta r]=\sum_j q_{j,t}\,x_j$ with $x=(-50,-25,0,25,50)$ basis points and $q_{j,t}=p_{j,t}/\Sigma_t$; the open-ended states are valued at $\pm 50$ bps. Day 0 is the UTC calendar day of the release (FOMC statements at 14:00 ET, CPI and employment reports at 08:30 ET), which is contained in the Polymarket close of that day (00:00 UTC). Windows cumulate daily changes; the 3 April 2026 employment report (Good Friday) is assigned the first subsequent close, and the 14 April 2026 CPI release has no close within two days and is dropped. Panel B compares absolute daily changes on the $K$ release days with all other days ($T=145$ daily changes, listing day excluded): ``Ann.'' and ``Other'' are means, VR is the ratio of variances, $p_{BF}$ the Brown--Forsythe test of equal variances and $p_{MW}$ the one-sided Mann--Whitney test that absolute changes are larger on release days. The last row compares weekend days with weekdays among non-release days. For comparison, the absolute daily change in the 10-year Treasury yield (CBOE TNX) is 3.2 bps on release days versus 3.3 bps otherwise (variance ratio 0.90, $p_{BF}=0.966$). | |
| 30 | 48 | \end{tablenotes} |
| 31 | 49 | \end{threeparttable} |
| 32 | 50 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table5_granger.tex
+16 −20
@@ -1,32 +1,28 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\small | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{Granger Causality Tests} | |
| 4 | +\caption{Granger causality between the Fed state-price panel and U.S. asset returns} | |
| 5 | 5 | \label{tab:granger} |
| 6 | −\begin{tabular}{l c c} | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l rrr rrr} | |
| 7 | 8 | \toprule |
| 8 | −Direction & {$F$-stat} & {$p$-value} \\ | |
| 9 | + & \multicolumn{3}{c}{VAR($p^*$), $p^*=1$ (AIC)} & \multicolumn{3}{c}{$p$-value at fixed lag} \\ | |
| 10 | +\cmidrule(lr){2-4}\cmidrule(lr){5-7} | |
| 11 | +Direction & $F$ & $p$ & $p$ (HAC) & $p=1$ & $p=2$ & $p=5$ \\ | |
| 9 | 12 | \midrule |
| 10 | − SPY $\to$ Fed\_NoChange & $1.28$ & 0.285 \\ | |
| 11 | − BTC $\to$ Fed\_NoChange & $1.95$ & 0.110 \\ | |
| 12 | − VIX $\to$ Fed\_NoChange & $2.73^{**}$ & 0.049 \\ | |
| 13 | − Fed\_NoChange $\to$ SPY & $2.42^{*}$ & 0.072 \\ | |
| 14 | − BTC $\to$ SPY & $2.42^{*}$ & 0.055 \\ | |
| 15 | − VIX $\to$ SPY & $1.93$ & 0.112 \\ | |
| 16 | − Fed\_NoChange $\to$ BTC & $1.51$ & 0.196 \\ | |
| 17 | − SPY $\to$ BTC & $0.30$ & 0.585 \\ | |
| 18 | − VIX $\to$ BTC & $2.12$ & 0.149 \\ | |
| 19 | − Fed\_NoChange $\to$ VIX & $4.96^{***}$ & 0.001 \\ | |
| 20 | − SPY $\to$ VIX & $1.29$ & 0.280 \\ | |
| 21 | − BTC $\to$ VIX & $3.57^{***}$ & 0.010 \\ | |
| 13 | + $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ $\to$ 10-year yield & 0.19 & 0.666 & 0.534 & 0.666 & 0.252 & 0.370 \\ | |
| 14 | + $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ $\to$ SPY & 0.90 & 0.345 & 0.198 & 0.345 & 0.364 & 0.253 \\ | |
| 15 | + $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ $\to$ VIX & 0.39 & 0.533 & 0.505 & 0.533 & 0.373 & 0.059 \\ | |
| 16 | + $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ $\to$ BTC & 1.75 & 0.188 & 0.264 & 0.188 & 0.629 & 0.006 \\ | |
| 17 | + 10-year yield $\to$ $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ & 0.13 & 0.718 & 0.635 & 0.718 & 0.277 & 0.706 \\ | |
| 18 | + SPY $\to$ $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ & 0.35 & 0.557 & 0.228 & 0.557 & 0.816 & 0.908 \\ | |
| 19 | + VIX $\to$ $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ & 0.29 & 0.589 & 0.463 & 0.589 & 0.369 & 0.835 \\ | |
| 20 | + BTC $\to$ $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ & 0.02 & 0.897 & 0.884 & 0.897 & 0.983 & 0.747 \\ | |
| 22 | 21 | \bottomrule |
| 23 | 22 | \end{tabular} |
| 24 | 23 | \begin{tablenotes} |
| 25 | 24 | \small |
| 26 | −\item \textit{Notes:} This table reports $F$-statistics and $p$-values for pairwise Granger | |
| 27 | −causality tests. The null hypothesis is that the causing variable does not Granger-cause | |
| 28 | −the caused variable. Lag length selected by AIC. $^{***}$, $^{**}$, $^{*}$ denote | |
| 29 | −significance at 1\%, 5\%, 10\%. | |
| 25 | +\item \textit{Notes:} Bivariate VAR Granger tests on $T=110$ U.S. trading days (12 Dec 2025 -- 21 May 2026). The Fed variable is the daily change in the risk-neutral expected June 2026 policy change (basis points), measured at the Polymarket close of the same calendar day (00:00 UTC, about four hours after the U.S. cash close); changes over weekends are assigned to Monday, as for the financial series. TNX is the daily change in the CBOE 10-year Treasury yield index (bps); SPY, VIX and BTC are daily log changes in percent. The lag order is selected by the AIC on the five-variable system (BIC selects 0, HQIC 0). $F$ and $p$ are the conventional Granger $F$-test; $p$ (HAC) is the Wald test with Newey--West (5 lags) covariance. $^{***}$, $^{**}$, $^{*}$: 1\%, 5\%, 10\%. | |
| 30 | 26 | \end{tablenotes} |
| 31 | 27 | \end{threeparttable} |
| 32 | 28 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table6_var.tex
+23 −8
@@ -1,20 +1,35 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\small | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{Vector Autoregression Estimates} | |
| 4 | +\caption{VAR(1) estimates on the trading-day grid} | |
| 5 | 5 | \label{tab:var} |
| 6 | −\begin{tabular}{l S S S S } | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l rrrrr} | |
| 7 | 8 | \toprule |
| 8 | −Variable & {Fed\_NoChange} & {SPY} & {BTC} & {VIX} \\ | |
| 9 | + & \multicolumn{5}{c}{Dependent variable (day $t$)} \\ | |
| 10 | +\cmidrule(lr){2-6} | |
| 11 | +Regressor & $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$ & 10-year yield & SPY & VIX & BTC \\ | |
| 9 | 12 | \midrule |
| 10 | − const & 0.009 & 0.000 & -0.001 & 0.003 \\ | |
| 13 | + Constant & 0.137 & 0.325 & 0.094 & -0.123 & -0.087 \\ | |
| 14 | + & (1.27) & (0.82) & (1.18) & (-0.20) & (-0.30) \\ | |
| 15 | + $\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$$_{t-1}$ & -0.123 & -0.117 & -0.039 & 0.157 & -0.260 \\ | |
| 16 | + & (-1.40) & (-0.39) & (-0.75) & (0.26) & (-0.80) \\ | |
| 17 | + 10-year yield$_{t-1}$ & 0.002 & -0.034 & -0.035 & 0.364 & -0.113$^{*}$ \\ | |
| 18 | + & (0.10) & (-0.39) & (-1.29) & (1.52) & (-1.80) \\ | |
| 19 | + SPY$_{t-1}$ & -0.085 & 0.781 & 0.099 & -0.012 & 0.161 \\ | |
| 20 | + & (-0.43) & (1.01) & (0.69) & (-0.01) & (0.31) \\ | |
| 21 | + VIX$_{t-1}$ & 0.003 & -0.017 & 0.025 & -0.202 & 0.058 \\ | |
| 22 | + & (0.10) & (-0.21) & (1.60) & (-1.58) & (1.07) \\ | |
| 23 | + BTC$_{t-1}$ & 0.020 & -0.063 & 0.010 & -0.277 & -0.053 \\ | |
| 24 | + & (0.60) & (-0.55) & (0.37) & (-1.00) & (-0.48) \\ | |
| 25 | +\midrule | |
| 26 | +$R^2$ & 0.018 & 0.036 & 0.054 & 0.057 & 0.052 \\ | |
| 27 | +Observations & \multicolumn{5}{c}{109} \\ | |
| 11 | 28 | \bottomrule |
| 12 | 29 | \end{tabular} |
| 13 | 30 | \begin{tablenotes} |
| 14 | 31 | \small |
| 15 | −\item \textit{Notes:} VAR model estimates. Optimal lag length selected by AIC. | |
| 16 | −Standard errors in parentheses. $^{***}$, $^{**}$, $^{*}$ denote significance | |
| 17 | −at 1\%, 5\%, 10\%. | |
| 32 | +\item \textit{Notes:} Equation-by-equation OLS of each variable on one lag of all five variables (the AIC-selected order; see Table~\ref{tab:granger}). Newey--West (5 lags) $t$-statistics in parentheses. Variables are defined in Table~\ref{tab:granger}. $^{***}$, $^{**}$, $^{*}$: 1\%, 5\%, 10\%. | |
| 18 | 33 | \end{tablenotes} |
| 19 | 34 | \end{threeparttable} |
| 20 | 35 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table7_garch.tex
+26 −15
@@ -1,27 +1,38 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\small | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{GARCH Model Estimates} | |
| 4 | +\caption{GARCH-family estimates for the ``No change'' contract (daily log returns, percent)} | |
| 5 | 5 | \label{tab:garch} |
| 6 | −\begin{tabular}{l S l} | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l rrrr} | |
| 7 | 8 | \toprule |
| 8 | −Parameter & {Estimate} & (Std Err) \\ | |
| 9 | + & GARCH & GJR-GARCH & GARCH & GJR-GARCH \\ | |
| 10 | +Parameter & normal & normal & Student-$t$ & Student-$t$ \\ | |
| 9 | 11 | \midrule |
| 10 | − GARCH: mu & 0.1498 & (0.0921) \\ | |
| 11 | − GARCH: omega & 0.0000 & (0.0385) \\ | |
| 12 | − GARCH: alpha[1] & 0.1951 & (0.0383) \\ | |
| 13 | − GARCH: beta[1] & 0.8049 & (0.0252) \\ | |
| 14 | − GJR-GARCH: mu & 0.0960 & (0.3060) \\ | |
| 15 | − GJR-GARCH: omega & 0.0000 & (0.2216) \\ | |
| 16 | − GJR-GARCH: alpha[1] & 0.0000 & (0.5240) \\ | |
| 17 | − GJR-GARCH: gamma[1] & 0.3037 & (0.3723) \\ | |
| 18 | − GJR-GARCH: beta[1] & 0.8482 & (0.3778) \\ | |
| 12 | + $\mu$ & 0.433 & 0.089 & 0.011 & -0.003 \\ | |
| 13 | + & (0.273) & (0.104) & (0.033) & (0.033) \\ | |
| 14 | + $\omega$ & 0.528 & 0.000 & 0.000 & 0.000 \\ | |
| 15 | + & (0.862) & (0.175) & (0.019) & (0.018) \\ | |
| 16 | + $\alpha_1$ & 0.183$^{**}$ & 0.000 & 0.291$^{**}$ & 0.000 \\ | |
| 17 | + & (0.083) & (0.890) & (0.141) & (0.055) \\ | |
| 18 | + $\gamma_1$ & -- & 0.304 & -- & 0.334$^{***}$ \\ | |
| 19 | + & & (0.721) & & (0.084) \\ | |
| 20 | + $\beta_1$ & 0.817$^{***}$ & 0.848 & 0.709$^{***}$ & 0.833$^{***}$ \\ | |
| 21 | + & (0.036) & (0.521) & (0.147) & (0.047) \\ | |
| 22 | + $\nu$ & -- & -- & 2.583$^{***}$ & 2.820$^{***}$ \\ | |
| 23 | + & & & (0.176) & (0.237) \\ | |
| 24 | +\midrule | |
| 25 | +Log-likelihood & -461.2 & -425.3 & -382.4 & -373.6 \\ | |
| 26 | +AIC & 930.4 & 860.6 & 774.8 & 759.1 \\ | |
| 27 | +BIC & 942.3 & 875.5 & 789.6 & 777.0 \\ | |
| 28 | +Persistence $\alpha_1+\beta_1+\gamma_1/2$ & 1.000 & 1.000 & 1.000 & 1.000 \\ | |
| 29 | +Ljung--Box $p$, $z_t^2$ (10 lags) & 0.987 & 0.455 & 0.987 & 0.384 \\ | |
| 30 | +Observations & \multicolumn{4}{c}{145} \\ | |
| 19 | 31 | \bottomrule |
| 20 | 32 | \end{tabular} |
| 21 | 33 | \begin{tablenotes} |
| 22 | 34 | \small |
| 23 | −\item \textit{Notes:} GARCH(1,1) model estimates for prediction market return volatility. | |
| 24 | −$^{***}$, $^{**}$, $^{*}$ denote significance at 1\%, 5\%, 10\%. | |
| 35 | +\item \textit{Notes:} Constant-mean models estimated by (quasi-)maximum likelihood on calendar-day log returns of the ``No change'' contract, listing day excluded; Bollerslev--Wooldridge robust standard errors in parentheses. The GJR variance equation is $\sigma_t^2=\omega+\alpha_1\varepsilon_{t-1}^2+\gamma_1\varepsilon_{t-1}^2\mathbf{1}\{\varepsilon_{t-1}<0\}+\beta_1\sigma_{t-1}^2$. The likelihood-ratio statistic for $\gamma_1=0$ (normal innovations) is 71.76 ($p=0.000$). Engle's ARCH-LM test (5 lags) on the returns: 4.92 ($p=0.426$). $^{***}$, $^{**}$, $^{*}$: 1\%, 5\%, 10\%. | |
| 25 | 36 | \end{tablenotes} |
| 26 | 37 | \end{threeparttable} |
| 27 | 38 | \end{table} |
| \ No newline at end of file | ||
modified
results/tables/table8_har_rv.tex
+15 −13
@@ -1,26 +1,28 @@ | ||
| 1 | 1 | \begin{table}[htbp] |
| 2 | −\centering | |
| 2 | +\centering\small | |
| 3 | 3 | \begin{threeparttable} |
| 4 | −\caption{HAR-RV Model Estimates} | |
| 4 | +\caption{HAR regressions for the ``No change'' contract} | |
| 5 | 5 | \label{tab:har_rv} |
| 6 | −\begin{tabular}{l S l S} | |
| 6 | +\begin{tabular}{l rr rr} | |
| 7 | 7 | \toprule |
| 8 | −Variable & {Coefficient} & (Std Err) & {$t$-stat} \\ | |
| 8 | + & \multicolumn{2}{c}{$RV_t=|r_t|$} & \multicolumn{2}{c}{$RV_t=r_t^2$} \\ | |
| 9 | +\cmidrule(lr){2-3}\cmidrule(lr){4-5} | |
| 10 | +Regressor & Coef. & (SE) & Coef. & (SE) \\ | |
| 9 | 11 | \midrule |
| 10 | − const & 0.0121 & (0.0081) & 1.50 \\ | |
| 11 | − rv\_d & 0.0082 & (0.1130) & 0.07 \\ | |
| 12 | − rv\_w & 0.1432 & (0.1079) & 1.33 \\ | |
| 13 | − rv\_m & 0.0299 & (0.0373) & 0.80 \\ | |
| 12 | + Constant & 0.994 & (0.725) & 32.296$^{*}$ & (19.078) \\ | |
| 13 | + $RV^{(d)}_t$ & -0.058 & (0.110) & -0.075 & (0.059) \\ | |
| 14 | + $RV^{(w)}_t$ & 0.628$^{**}$ & (0.281) & 0.325 & (0.294) \\ | |
| 15 | + $RV^{(m)}_t$ & 0.132 & (0.262) & 0.074 & (0.310) \\ | |
| 14 | 16 | \midrule |
| 15 | − $R^2$ & \multicolumn{3}{c}{0.106} \\ | |
| 16 | − Adj.~$R^2$ & \multicolumn{3}{c}{0.083} \\ | |
| 17 | +$R^2$ & \multicolumn{2}{c}{0.152} & \multicolumn{2}{c}{0.021} \\ | |
| 18 | +Adjusted $R^2$ & \multicolumn{2}{c}{0.131} & \multicolumn{2}{c}{-0.004} \\ | |
| 19 | +Joint $F$-test $p$-value & \multicolumn{2}{c}{0.000} & \multicolumn{2}{c}{0.488} \\ | |
| 20 | +Observations & \multicolumn{2}{c}{123} & \multicolumn{2}{c}{123} \\ | |
| 17 | 21 | \bottomrule |
| 18 | 22 | \end{tabular} |
| 19 | 23 | \begin{tablenotes} |
| 20 | 24 | \small |
| 21 | −\item \textit{Notes:} HAR-RV model following \citet{corsi2009simple}. | |
| 22 | −RV$_{t+1}^{(d)} = c + \beta_d RV_t^{(d)} + \beta_w RV_t^{(w)} + \beta_m RV_t^{(m)} + \varepsilon_{t+1}$. | |
| 23 | −Newey--West standard errors with 5 lags. | |
| 25 | +\item \textit{Notes:} $RV^{(d)}_{t+1}=c+\beta_d RV^{(d)}_t+\beta_w RV^{(w)}_t+\beta_m RV^{(m)}_t+\varepsilon_{t+1}$ with $RV^{(w)}_t$ and $RV^{(m)}_t$ the averages of the daily measure over the past 5 and 22 calendar days \citep{corsi2009simple}. Daily log returns in percent; listing day excluded. Newey--West (5 lags) standard errors. $^{***}$, $^{**}$, $^{*}$: 1\%, 5\%, 10\%. | |
| 24 | 26 | \end{tablenotes} |
| 25 | 27 | \end{threeparttable} |
| 26 | 28 | \end{table} |
| \ No newline at end of file | ||
added
results/tables/table9_orderbook.tex
+27 −0
@@ -0,0 +1,27 @@ | ||
| 1 | +\begin{table}[htbp] | |
| 2 | +\centering\small | |
| 3 | +\begin{threeparttable} | |
| 4 | +\caption{Order-book snapshot, Fed June 2026 contracts (22 May 2026, 08:51 UTC)} | |
| 5 | +\label{tab:orderbook} | |
| 6 | +\setlength{\tabcolsep}{4pt} | |
| 7 | +\begin{tabular}{l rrrr rr rr} | |
| 8 | +\toprule | |
| 9 | + & Best & Best & Quoted & Relative & \multicolumn{2}{c}{Depth at best (shares)} & \multicolumn{2}{c}{Depth within 1\textcent\ (USD 000)} \\ | |
| 10 | +\cmidrule(lr){6-7}\cmidrule(lr){8-9} | |
| 11 | +Contract & bid & ask & spread & spread (\%) & Bid & Ask & Bid & Ask \\ | |
| 12 | +\midrule | |
| 13 | + 50+ bps decrease & 0.004 & 0.005 & 0.001 & 22.2 & 569,147 & 99,356 & 26 & 1 \\ | |
| 14 | + 25 bps decrease & 0.008 & 0.009 & 0.001 & 11.8 & 20,071 & 14,498 & 11 & 1 \\ | |
| 15 | + No change & 0.977 & 0.978 & 0.001 & 0.1 & 22,839 & 20,673 & 748 & 600 \\ | |
| 16 | + 25 bps increase & 0.008 & 0.009 & 0.001 & 11.8 & 44,819 & 5,227 & 26 & 1 \\ | |
| 17 | + 50+ bps increase & 0.002 & 0.003 & 0.001 & 40.0 & 5,574,520 & 1,619,036 & 23 & 6 \\ | |
| 18 | +\midrule | |
| 19 | +Sum of quotes & 0.999 & 1.004 & & & & & & \\ | |
| 20 | +\bottomrule | |
| 21 | +\end{tabular} | |
| 22 | +\begin{tablenotes} | |
| 23 | +\small | |
| 24 | +\item \textit{Notes:} Snapshot of the CLOB order book (YES tokens) retrieved with the price histories. Quoted spread is in USDC; the relative spread divides it by the midpoint. Depth within 1\textcent\ is the notional resting within one cent of the best quote. The sum of best bids is the proceeds from selling one complete set at market; the sum of best asks is the cost of buying one. | |
| 25 | +\end{tablenotes} | |
| 26 | +\end{threeparttable} | |
| 27 | +\end{table} | |
| \ No newline at end of file | ||
added
scripts/02_revision_analysis.py
+1091 −0
@@ -0,0 +1,1091 @@ | ||
| 1 | +"""Revision analysis (editorial-board review, 2026-10-17) for UQO WP 8. | |
| 2 | + | |
| 3 | +Re-derives every table and figure of the revised paper from the *local* raw data | |
| 4 | +(``data/raw/``) without any network call. Compared with ``run_analysis.py`` the | |
| 5 | +script | |
| 6 | + | |
| 7 | +* labels each Polymarket daily observation by the UTC day it closes (the CLOB | |
| 8 | + ``prices-history`` end-point stamps the daily point at 00:00 UTC of the *next* | |
| 9 | + day), so that Polymarket closes, U.S. market closes and announcement dates share | |
| 10 | + a common calendar; | |
| 11 | +* flags the listing day of the Fed group (10 Dec 2025, seeded quotes) and reports | |
| 12 | + the completeness statistics with and without it; | |
| 13 | +* tests the no-arbitrage restriction on the price of the complete set against | |
| 14 | + discount-adjusted bounds built from the effective federal funds rate (FRED DFF); | |
| 15 | +* replaces the per-contract CAR event study (2–3 events) by an announcement-day | |
| 16 | + analysis of the risk-neutral expected policy change (14 scheduled releases); | |
| 17 | +* re-runs Granger tests on a trading-day grid with information-criterion lag | |
| 18 | + selection (the original code reported the minimum p-value over 1–5 lags) and | |
| 19 | + adds the 10-year Treasury yield; | |
| 20 | +* re-estimates GARCH/GJR/HAR models with the listing day excluded and QML errors; | |
| 21 | +* generates descriptive, order-book and election tables from the raw metadata. | |
| 22 | + | |
| 23 | +Usage: python3 scripts/02_revision_analysis.py (≈ 1 min, offline) | |
| 24 | +Outputs: results/tables/*.tex, results/revision_stats.json, figures/fig*.pdf|png | |
| 25 | +""" | |
| 26 | + | |
| 27 | +from __future__ import annotations | |
| 28 | + | |
| 29 | +import json | |
| 30 | +import sys | |
| 31 | +import warnings | |
| 32 | +from datetime import date | |
| 33 | +from pathlib import Path | |
| 34 | + | |
| 35 | +import numpy as np | |
| 36 | +import pandas as pd | |
| 37 | +from scipy import stats | |
| 38 | + | |
| 39 | +ROOT = Path(__file__).resolve().parents[1] | |
| 40 | +sys.path.insert(0, str(ROOT)) | |
| 41 | + | |
| 42 | +from src.config import ( # noqa: E402 | |
| 43 | + CPI_RELEASE_DATES, | |
| 44 | + DATA_RAW_FRED, | |
| 45 | + DATA_RAW_POLY, | |
| 46 | + DATA_RAW_YAHOO, | |
| 47 | + ELECTION_2024_EVENT_ID, | |
| 48 | + FED_JUNE_2026_EVENT_ID, | |
| 49 | + FIGURES, | |
| 50 | + FOMC_DATES, | |
| 51 | + NFP_RELEASE_DATES, | |
| 52 | + TABLES, | |
| 53 | + ELECTION_KEY_DATES, | |
| 54 | +) | |
| 55 | + | |
| 56 | +warnings.filterwarnings("ignore") | |
| 57 | + | |
| 58 | +import matplotlib # noqa: E402 | |
| 59 | + | |
| 60 | +matplotlib.use("Agg") | |
| 61 | +import matplotlib.dates as mdates # noqa: E402 | |
| 62 | +import matplotlib.pyplot as plt # noqa: E402 | |
| 63 | + | |
| 64 | +# Okabe–Ito palette (CVD-safe, validated), fixed order per state | |
| 65 | +PAL = ["#0072B2", "#D55E00", "#009E73", "#CC79A7", "#56B4E9", "#E69F00", "#000000"] | |
| 66 | +LS = ["-", "--", "-", "-.", ":", "-", "--"] | |
| 67 | +plt.rcParams.update({ | |
| 68 | + "font.family": "serif", "font.serif": ["Times New Roman", "DejaVu Serif"], | |
| 69 | + "font.size": 9, "axes.titlesize": 10, "axes.labelsize": 9, "legend.fontsize": 8, | |
| 70 | + "xtick.labelsize": 8, "ytick.labelsize": 8, "axes.spines.top": False, | |
| 71 | + "axes.spines.right": False, "axes.grid": True, "grid.alpha": 0.25, | |
| 72 | + "grid.linestyle": "--", "lines.linewidth": 1.3, "figure.dpi": 150, | |
| 73 | +}) | |
| 74 | + | |
| 75 | +STATES = ["50+ bps decrease", "25 bps decrease", "No change", "25 bps increase", "50+ bps increase"] | |
| 76 | +STATE_BPS = np.array([-50.0, -25.0, 0.0, 25.0, 50.0]) | |
| 77 | +RESOLUTION_FED = pd.Timestamp("2026-06-17") | |
| 78 | +RESOLUTION_ELECTION = pd.Timestamp("2024-11-05") | |
| 79 | +TICK = 0.001 | |
| 80 | +STATS: dict = {} | |
| 81 | + | |
| 82 | + | |
| 83 | +# ---------------------------------------------------------------------------- | |
| 84 | +# helpers | |
| 85 | +# ---------------------------------------------------------------------------- | |
| 86 | +def save_fig(fig, name: str) -> None: | |
| 87 | + FIGURES.mkdir(parents=True, exist_ok=True) | |
| 88 | + for ext in ("pdf", "png"): | |
| 89 | + fig.savefig(FIGURES / f"{name}.{ext}", bbox_inches="tight", dpi=300) | |
| 90 | + plt.close(fig) | |
| 91 | + | |
| 92 | + | |
| 93 | +def save_table(tex: str, name: str) -> None: | |
| 94 | + TABLES.mkdir(parents=True, exist_ok=True) | |
| 95 | + (TABLES / f"{name}.tex").write_text(tex) | |
| 96 | + | |
| 97 | + | |
| 98 | +def esc(s: str) -> str: | |
| 99 | + return (str(s).replace("&", r"\&").replace("%", r"\%").replace("$", r"\$") | |
| 100 | + .replace("_", r"\_").replace("#", r"\#")) | |
| 101 | + | |
| 102 | + | |
| 103 | +def f(x, d=3, blank="--"): | |
| 104 | + if x is None or (isinstance(x, float) and np.isnan(x)): | |
| 105 | + return blank | |
| 106 | + return f"{x:,.{d}f}" | |
| 107 | + | |
| 108 | + | |
| 109 | +def stars(p): | |
| 110 | + if p is None or np.isnan(p): | |
| 111 | + return "" | |
| 112 | + return "$^{***}$" if p < 0.01 else "$^{**}$" if p < 0.05 else "$^{*}$" if p < 0.10 else "" | |
| 113 | + | |
| 114 | + | |
| 115 | +def nw_mean_test(x: pd.Series, lags: int = 5, mu0: float = 0.0): | |
| 116 | + """HAC (Newey–West) t-test of H0: E[x] = mu0.""" | |
| 117 | + import statsmodels.api as sm | |
| 118 | + x = x.dropna() | |
| 119 | + mod = sm.OLS(x.values - mu0, np.ones((len(x), 1))).fit(cov_type="HAC", cov_kwds={"maxlags": lags}) | |
| 120 | + return float(mod.params[0] + mu0), float(mod.bse[0]), float(mod.tvalues[0]), float(mod.pvalues[0]) | |
| 121 | + | |
| 122 | + | |
| 123 | +def load_history(token: str) -> pd.Series: | |
| 124 | + """Daily close labelled by the UTC day it closes (point stamped 00:00 UTC of day t+1 → day t).""" | |
| 125 | + path = DATA_RAW_POLY / f"price_history_{token[:16]}.json" | |
| 126 | + raw = json.load(open(path)) if path.exists() else [] | |
| 127 | + if not raw: | |
| 128 | + return pd.Series(dtype=float) | |
| 129 | + df = pd.DataFrame(raw) | |
| 130 | + ts = pd.to_datetime(df["t"], unit="s", utc=True) | |
| 131 | + df["day"] = (ts - pd.Timedelta(minutes=5)).dt.normalize().dt.tz_localize(None) | |
| 132 | + df["p"] = df["p"].astype(float) | |
| 133 | + return df.drop_duplicates("day", keep="last").set_index("day")["p"].sort_index() | |
| 134 | + | |
| 135 | + | |
| 136 | +def load_event(event_id: int) -> tuple[dict, list[dict]]: | |
| 137 | + ev = json.load(open(DATA_RAW_POLY / f"event_{event_id}.json")) | |
| 138 | + out = [] | |
| 139 | + for m in ev["markets"]: | |
| 140 | + toks = json.loads(m.get("clobTokenIds", "[]")) | |
| 141 | + out.append({"id": m["id"], "name": m.get("groupItemTitle", m["question"][:40]), | |
| 142 | + "question": m["question"], "yes_token": toks[0] if toks else "", | |
| 143 | + "volume": float(m.get("volumeNum") or 0), "liquidity": float(m.get("liquidityNum") or 0), | |
| 144 | + "closed": m.get("closed", False), "start": m.get("startDate", ""), | |
| 145 | + "end": m.get("endDate", ""), "spread": m.get("spread"), | |
| 146 | + "best_bid": m.get("bestBid"), "best_ask": m.get("bestAsk")}) | |
| 147 | + return ev, out | |
| 148 | + | |
| 149 | + | |
| 150 | +def build_panel(markets: list[dict], order: list[str] | None = None) -> pd.DataFrame: | |
| 151 | + cols = {m["name"]: load_history(m["yes_token"]) for m in markets if m["yes_token"]} | |
| 152 | + cols = {k: v for k, v in cols.items() if len(v)} | |
| 153 | + panel = pd.DataFrame(cols).sort_index() | |
| 154 | + if order: | |
| 155 | + panel = panel[[c for c in order if c in panel.columns]] | |
| 156 | + return panel.ffill(limit=3) | |
| 157 | + | |
| 158 | + | |
| 159 | +# ---------------------------------------------------------------------------- | |
| 160 | +# 1. Data | |
| 161 | +# ---------------------------------------------------------------------------- | |
| 162 | +fed_ev, fed_mk = load_event(FED_JUNE_2026_EVENT_ID) | |
| 163 | +fed = build_panel(fed_mk, STATES) | |
| 164 | +el_ev, el_mk = load_event(ELECTION_2024_EVENT_ID) | |
| 165 | +el_order = sorted(el_mk, key=lambda m: -m["volume"]) | |
| 166 | +election = build_panel(el_order, [m["name"] for m in el_order]) | |
| 167 | + | |
| 168 | +dff = pd.read_csv(DATA_RAW_FRED / "fed_funds_rate.csv", parse_dates=["date"], index_col="date")["DFF"] | |
| 169 | +dff = dff.asfreq("D").ffill() | |
| 170 | +dff = dff.reindex(pd.date_range(dff.index.min(), "2026-06-30")).ffill() | |
| 171 | + | |
| 172 | + | |
| 173 | +def yahoo(ticker: str) -> pd.Series: | |
| 174 | + df = pd.read_csv(DATA_RAW_YAHOO / f"{ticker}.csv", parse_dates=["date"], index_col="date") | |
| 175 | + df.index = pd.to_datetime(df.index, utc=True).normalize().tz_localize(None) | |
| 176 | + return df["Close"].astype(float) | |
| 177 | + | |
| 178 | + | |
| 179 | +spy, vix, tnx, btc = yahoo("SPY"), yahoo("VIX"), yahoo("TNX"), yahoo("BTC_USD") | |
| 180 | + | |
| 181 | +listing_day = fed.index.min() | |
| 182 | +fed_complete = fed.dropna() | |
| 183 | +fed_main = fed_complete[fed_complete.index > listing_day] # listing day excluded | |
| 184 | +sigma_all = fed_complete.sum(axis=1) | |
| 185 | +sigma = fed_main.sum(axis=1) | |
| 186 | +STATS["fed"] = { | |
| 187 | + "first_day": str(fed.index.min().date()), "last_day": str(fed.index.max().date()), | |
| 188 | + "n_rows_union": int(len(fed)), "n_complete": int(len(fed_complete)), "n_main": int(len(fed_main)), | |
| 189 | + "listing_sigma": float(sigma_all.iloc[0]), "listing_prices": fed_complete.iloc[0].round(4).to_dict(), | |
| 190 | + "n_weekend_days": int((fed_main.index.dayofweek >= 5).sum()), | |
| 191 | + "calendar_span_days": int((fed.index.max() - fed.index.min()).days) + 1, | |
| 192 | + "p_nochange_first": float(fed_main["No change"].iloc[0]), "p_nochange_last": float(fed_main["No change"].iloc[-1]), | |
| 193 | + "p_cut25_first": float(fed_main["25 bps decrease"].iloc[0]), "p_cut25_last": float(fed_main["25 bps decrease"].iloc[-1]), | |
| 194 | + "dff_start": float(dff.loc[fed_main.index.min()]), "dff_end": float(dff.loc[fed_main.index.max()]), | |
| 195 | + "dff_before_listing": float(dff.loc[listing_day - pd.Timedelta(days=1)]), | |
| 196 | + "min_price_by_state": fed_main.min().round(4).to_dict(), | |
| 197 | + "volume_usd": {m["name"]: m["volume"] for m in fed_mk}, | |
| 198 | + "liquidity_usd": {m["name"]: m["liquidity"] for m in fed_mk}, | |
| 199 | + "total_volume_usd": float(sum(m["volume"] for m in fed_mk)), | |
| 200 | +} | |
| 201 | + | |
| 202 | +# ---------------------------------------------------------------------------- | |
| 203 | +# 2. Table 1 — markets analysed (descriptive) | |
| 204 | +# ---------------------------------------------------------------------------- | |
| 205 | +rows = [] | |
| 206 | +for m in fed_mk: | |
| 207 | + s = fed[m["name"]].dropna().iloc[1:] # drop seeded listing quote | |
| 208 | + rows.append(f" {esc(m['name'])} & {f(m['volume'],0)} & {f(m['liquidity'],0)} & {len(s)} & " | |
| 209 | + f"{f(s.iloc[0])} & {f(s.mean())} & {f(s.min())} & {f(s.max())} & {f(s.iloc[-1])} \\\\") | |
| 210 | +fed_rows = "\n".join(rows) | |
| 211 | +rows = [] | |
| 212 | +for m in el_order: | |
| 213 | + s = election[m["name"]].dropna().iloc[1:] if m["name"] in election else pd.Series(dtype=float) | |
| 214 | + rows.append(f" {esc(m['name'])} & {f(m['volume']/1e6,1)} & -- & {len(s)} & " | |
| 215 | + f"{f(s.iloc[0]) if len(s) else '--'} & {f(s.mean()) if len(s) else '--'} & {f(s.min()) if len(s) else '--'} & " | |
| 216 | + f"{f(s.max()) if len(s) else '--'} & {f(s.iloc[-1]) if len(s) else '--'} \\\\") | |
| 217 | +el_rows = "\n".join(rows) | |
| 218 | +tex = rf"""\begin{{table}}[htbp] | |
| 219 | +\centering\footnotesize | |
| 220 | +\begin{{threeparttable}} | |
| 221 | +\caption{{Markets analysed: Polymarket metadata and daily closing prices}} | |
| 222 | +\label{{tab:descriptive_stats}} | |
| 223 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 224 | +\begin{{tabular}}{{l r r r r r r r r}} | |
| 225 | +\toprule | |
| 226 | +Contract & Volume & Liquidity & $T$ & First & Mean & Min & Max & Last \\ | |
| 227 | +\midrule | |
| 228 | +\multicolumn{{9}}{{l}}{{\textit{{Panel A: Fed decision, June 2026 FOMC meeting (event 101772; volume and liquidity in USD)}}}} \\ | |
| 229 | +{fed_rows} | |
| 230 | +\midrule | |
| 231 | +\multicolumn{{9}}{{l}}{{\textit{{Panel B: Presidential Election Winner 2024 (event 903193; volume, USD million)}}}} \\ | |
| 232 | +{el_rows} | |
| 233 | +\bottomrule | |
| 234 | +\end{{tabular}} | |
| 235 | +\begin{{tablenotes}} | |
| 236 | +\small | |
| 237 | +\item \textit{{Notes:}} Volume is cumulative traded notional reported by the Gamma API at the snapshot date (22 May 2026); liquidity is the resting order-book depth reported by the same end-point (not available for closed markets). $T$ is the number of daily closes after exclusion of each contract's first recorded point, which carries the quote seeded at listing (0.50 for most election contracts; the Fed seeds are reported in Section~\ref{{sec:data}}); ``First'' is the first regular close. The maximum of 0.500 for the AOC contract is an isolated print on 9 April 2024. Prices are in USDC per \$1 payoff. Panel B contracts are ordered by volume; the sample ends at the close of 5 November 2024 (00:00 UTC on 6 November), before results were known. | |
| 238 | +\end{{tablenotes}} | |
| 239 | +\end{{threeparttable}} | |
| 240 | +\end{{table}}""" | |
| 241 | +save_table(tex, "table1_descriptive_stats") | |
| 242 | + | |
| 243 | +# ---------------------------------------------------------------------------- | |
| 244 | +# 3. Table 2 — summary statistics of state prices and daily changes | |
| 245 | +# ---------------------------------------------------------------------------- | |
| 246 | +rows = [] | |
| 247 | +for c in STATES: | |
| 248 | + s = fed_main[c] | |
| 249 | + d = s.diff().dropna() | |
| 250 | + jb = stats.jarque_bera(d) | |
| 251 | + adf = __import__("statsmodels.tsa.stattools", fromlist=["adfuller"]).adfuller(d, autolag="AIC") | |
| 252 | + rows.append(f" {esc(c)} & {f(s.mean())} & {f(s.std())} & {f(s.min())} & {f(s.max())} & " | |
| 253 | + f"{f(d.mean()*100,3)} & {f(d.std()*100,2)} & {f(d.skew(),2)} & {f(d.kurtosis(),1)} & {f(adf[0],2)} \\\\") | |
| 254 | +sig = sigma | |
| 255 | +d = sig.diff().dropna() | |
| 256 | +rows.append(f" State-price sum $\\Sigma_t$ & {f(sig.mean(),4)} & {f(sig.std(),4)} & {f(sig.min(),4)} & {f(sig.max(),4)} & " | |
| 257 | + f"{f(d.mean()*100,3)} & {f(d.std()*100,2)} & {f(d.skew(),2)} & {f(d.kurtosis(),1)} & " | |
| 258 | + f"{f(__import__('statsmodels.tsa.stattools', fromlist=['adfuller']).adfuller(d, autolag='AIC')[0],2)} \\\\") | |
| 259 | +tex = rf"""\begin{{table}}[htbp] | |
| 260 | +\centering\small | |
| 261 | +\begin{{threeparttable}} | |
| 262 | +\caption{{Summary statistics: Fed June 2026 state prices (11 December 2025 -- 22 May 2026)}} | |
| 263 | +\label{{tab:summary_stats}} | |
| 264 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 265 | +\begin{{tabular}}{{l rrrr rrrr r}} | |
| 266 | +\toprule | |
| 267 | + & \multicolumn{{4}}{{c}}{{Level $p_{{j,t}}$}} & \multicolumn{{5}}{{c}}{{Daily change $\Delta p_{{j,t}}$ (percentage points)}} \\ | |
| 268 | +\cmidrule(lr){{2-5}}\cmidrule(lr){{6-10}} | |
| 269 | +Contract & Mean & SD & Min & Max & Mean & SD & Skew & Ex.\ kurt & ADF \\ | |
| 270 | +\midrule | |
| 271 | +{chr(10).join(rows)} | |
| 272 | +\bottomrule | |
| 273 | +\end{{tabular}} | |
| 274 | +\begin{{tablenotes}} | |
| 275 | +\small | |
| 276 | +\item \textit{{Notes:}} $T={len(fed_main)}$ daily closes (calendar days, Polymarket trades continuously) after exclusion of the listing day. Levels are in USDC; changes are in percentage points of the \$1 payoff. ADF is the augmented Dickey--Fuller statistic (constant, AIC lag) for the daily changes; the 1\% critical value is $-3.48$. Prices are bounded in $[0,1]$ and converge to 0 or 1 at resolution, so level series are not stationary by construction. | |
| 277 | +\end{{tablenotes}} | |
| 278 | +\end{{threeparttable}} | |
| 279 | +\end{{table}}""" | |
| 280 | +save_table(tex, "table2_summary_stats") | |
| 281 | + | |
| 282 | +# ---------------------------------------------------------------------------- | |
| 283 | +# 4. Completeness / no-arbitrage on the complete set (Table 3) | |
| 284 | +# ---------------------------------------------------------------------------- | |
| 285 | +from statsmodels.tsa.stattools import adfuller # noqa: E402 | |
| 286 | + | |
| 287 | + | |
| 288 | +def completeness_block(sig: pd.Series, resolution: pd.Timestamp, n_states: int, tick: float, label: str) -> dict: | |
| 289 | + dev = sig - 1.0 | |
| 290 | + tau = (resolution - sig.index).days.values / 365.0 | |
| 291 | + r = dff.reindex(sig.index).ffill().bfill().values / 100.0 | |
| 292 | + lower = np.exp(-r * tau) # discounted value of the complete set (buy-and-hold bound) | |
| 293 | + dev_disc = sig.values - lower | |
| 294 | + mean, se, t, p = nw_mean_test(dev) | |
| 295 | + adf = adfuller(dev, autolag="AIC", regression="c") | |
| 296 | + phi = np.polyfit(dev.values[:-1], dev.values[1:], 1)[0] | |
| 297 | + hl = -np.log(2) / np.log(abs(phi)) if 0 < abs(phi) < 1 else np.nan | |
| 298 | + band = 0.005 # half a cent on the complete set | |
| 299 | + out = { | |
| 300 | + "label": label, "T": int(len(sig)), "mean": float(sig.mean()), "sd": float(sig.std()), | |
| 301 | + "median": float(sig.median()), "min": float(sig.min()), "max": float(sig.max()), | |
| 302 | + "mean_dev": float(dev.mean()), "mean_abs_dev": float(dev.abs().mean()), "max_abs_dev": float(dev.abs().max()), | |
| 303 | + "nw_se": se, "nw_t": t, "nw_p": p, | |
| 304 | + "share_above_1": float((sig > 1).mean()), "share_below_1": float((sig < 1).mean()), | |
| 305 | + "share_within_tickband": float((dev.abs() <= band).mean()), | |
| 306 | + "share_within_1pp": float((dev.abs() <= 0.01).mean()), "share_within_2pp": float((dev.abs() <= 0.02).mean()), | |
| 307 | + "share_within_5pp": float((dev.abs() <= 0.05).mean()), | |
| 308 | + "mean_lower_bound": float(lower.mean()), "min_lower_bound": float(lower.min()), | |
| 309 | + "mean_dev_from_lower": float(dev_disc.mean()), "share_inside_band": float(((sig.values >= lower - band) & (sig.values <= 1 + band)).mean()), | |
| 310 | + "share_above_upper_band": float((sig.values > 1 + band).mean()), | |
| 311 | + "adf_stat": float(adf[0]), "adf_p": float(adf[1]), "ar1": float(phi), "half_life": float(hl), | |
| 312 | + "tick_band": band, | |
| 313 | + "first_half_mean": float(sig.iloc[: len(sig) // 2].mean()), "second_half_mean": float(sig.iloc[len(sig) // 2:].mean()), | |
| 314 | + "last30_mean": float(sig.iloc[-30:].mean()), "last30_sd": float(sig.iloc[-30:].std()), | |
| 315 | + "first30_mean": float(sig.iloc[:30].mean()), "first30_sd": float(sig.iloc[:30].std()), | |
| 316 | + } | |
| 317 | + # overround vs. time-to-resolution regression | |
| 318 | + import statsmodels.api as sm | |
| 319 | + X = sm.add_constant(tau) | |
| 320 | + m = sm.OLS(dev.values, X).fit(cov_type="HAC", cov_kwds={"maxlags": 5}) | |
| 321 | + out["slope_tau"] = float(m.params[1]); out["slope_tau_t"] = float(m.tvalues[1]); out["const_tau"] = float(m.params[0]) | |
| 322 | + return out, lower | |
| 323 | + | |
| 324 | + | |
| 325 | +el_complete_all = election.dropna() | |
| 326 | +el_complete = el_complete_all.iloc[1:] # first complete day carries seeded listing quotes | |
| 327 | +sigma_el = el_complete.sum(axis=1) | |
| 328 | +sigma_el_all = el_complete_all.sum(axis=1) | |
| 329 | +C_fed, lower_fed = completeness_block(sigma, RESOLUTION_FED, 5, TICK, "Fed June 2026") | |
| 330 | +C_fed_all, _ = completeness_block(sigma_all, RESOLUTION_FED, 5, TICK, "Fed incl. listing day") | |
| 331 | +C_el, lower_el = completeness_block(sigma_el, RESOLUTION_ELECTION, len(el_complete.columns), 0.001, "Election 2024") | |
| 332 | +C_el_all, _ = completeness_block(sigma_el_all, RESOLUTION_ELECTION, len(el_complete.columns), 0.001, "Election incl. listing day") | |
| 333 | +STATS["completeness"] = {"fed": C_fed, "fed_incl_listing": C_fed_all, "election": C_el, "election_incl_listing": C_el_all, | |
| 334 | + "election_n_contracts": int(len(el_complete.columns)), "election_T_union": int(len(election)), | |
| 335 | + "election_first": str(election.index.min().date()), "election_last": str(election.index.max().date())} | |
| 336 | + | |
| 337 | + | |
| 338 | +def row(name, a, b, d=4, pct=False): | |
| 339 | + fa = f(a * 100, 1) + r"\%" if pct else f(a, d) | |
| 340 | + fb = f(b * 100, 1) + r"\%" if pct else f(b, d) | |
| 341 | + return f" {name} & {fa} & {fb} \\\\" | |
| 342 | + | |
| 343 | + | |
| 344 | +tex = rf"""\begin{{table}}[htbp] | |
| 345 | +\centering\small | |
| 346 | +\begin{{threeparttable}} | |
| 347 | +\caption{{Price of the complete set of state claims: law-of-one-price tests}} | |
| 348 | +\label{{tab:completeness}} | |
| 349 | +\begin{{tabular}}{{l r r}} | |
| 350 | +\toprule | |
| 351 | + & Fed June 2026 & Election 2024 \\ | |
| 352 | + & ($N=5$ states) & ($N={len(el_complete.columns)}$ candidates) \\ | |
| 353 | +\midrule | |
| 354 | +\multicolumn{{3}}{{l}}{{\textit{{Panel A: distribution of $\Sigma_t=\sum_j p_{{j,t}}$}}}} \\ | |
| 355 | +{row('Observations $T$', C_fed['T'], C_el['T'], 0)} | |
| 356 | +{row('Mean', C_fed['mean'], C_el['mean'])} | |
| 357 | +{row('Median', C_fed['median'], C_el['median'])} | |
| 358 | +{row('Standard deviation', C_fed['sd'], C_el['sd'])} | |
| 359 | +{row('Minimum', C_fed['min'], C_el['min'])} | |
| 360 | +{row('Maximum', C_fed['max'], C_el['max'])} | |
| 361 | +\midrule | |
| 362 | +\multicolumn{{3}}{{l}}{{\textit{{Panel B: deviation $\Sigma_t-1$}}}} \\ | |
| 363 | +{row('Mean deviation (overround)', C_fed['mean_dev'], C_el['mean_dev'])} | |
| 364 | +{row('HAC standard error (5 lags)', C_fed['nw_se'], C_el['nw_se'])} | |
| 365 | +{row('$t$-statistic, $H_0$: $\\mathbb{{E}}[\\Sigma_t-1]=0$', C_fed['nw_t'], C_el['nw_t'], 2)} | |
| 366 | +{row('Mean absolute deviation', C_fed['mean_abs_dev'], C_el['mean_abs_dev'])} | |
| 367 | +{row('Share of days with $\\Sigma_t>1$', C_fed['share_above_1'], C_el['share_above_1'], pct=True)} | |
| 368 | +{row('Share within $\\pm 0.5$ pp', C_fed['share_within_tickband'], C_el['share_within_tickband'], pct=True)} | |
| 369 | +{row('Share within $\\pm 1$ pp', C_fed['share_within_1pp'], C_el['share_within_1pp'], pct=True)} | |
| 370 | +{row('Share within $\\pm 2$ pp', C_fed['share_within_2pp'], C_el['share_within_2pp'], pct=True)} | |
| 371 | +{row('Share within $\\pm 5$ pp', C_fed['share_within_5pp'], C_el['share_within_5pp'], pct=True)} | |
| 372 | +\midrule | |
| 373 | +\multicolumn{{3}}{{l}}{{\textit{{Panel C: discount-adjusted bounds, $e^{{-r_t\tau_t}}\le\Sigma_t\le 1$}}}} \\ | |
| 374 | +{row('Mean lower bound $e^{{-r_t\\tau_t}}$', C_fed['mean_lower_bound'], C_el['mean_lower_bound'])} | |
| 375 | +{row('Mean $\\Sigma_t-e^{{-r_t\\tau_t}}$', C_fed['mean_dev_from_lower'], C_el['mean_dev_from_lower'])} | |
| 376 | +{row('Share inside bounds ($\\pm 0.5$ pp)', C_fed['share_inside_band'], C_el['share_inside_band'], pct=True)} | |
| 377 | +{row('Share above upper bound', C_fed['share_above_upper_band'], C_el['share_above_upper_band'], pct=True)} | |
| 378 | +\midrule | |
| 379 | +\multicolumn{{3}}{{l}}{{\textit{{Panel D: dynamics of $\Sigma_t-1$}}}} \\ | |
| 380 | +{row('AR(1) coefficient', C_fed['ar1'], C_el['ar1'], 3)} | |
| 381 | +{row('Half-life (days)', C_fed['half_life'], C_el['half_life'], 1)} | |
| 382 | +{row('ADF statistic (constant, AIC lag)', C_fed['adf_stat'], C_el['adf_stat'], 2)} | |
| 383 | +{row('ADF $p$-value', C_fed['adf_p'], C_el['adf_p'], 3)} | |
| 384 | +{row('Slope on time-to-resolution $\\tau_t$ (years)', C_fed['slope_tau'], C_el['slope_tau'], 3)} | |
| 385 | +{row('\\quad HAC $t$-statistic', C_fed['slope_tau_t'], C_el['slope_tau_t'], 2)} | |
| 386 | +\bottomrule | |
| 387 | +\end{{tabular}} | |
| 388 | +\begin{{tablenotes}} | |
| 389 | +\small | |
| 390 | +\item \textit{{Notes:}} $\Sigma_t$ is the sum of the daily closing prices of all contracts in the neg-risk group on days when all contracts are quoted. The Fed sample excludes the listing day (10 December 2025, $\Sigma=1.570$ on seeded quotes; including it gives mean {f(C_fed_all['mean'],4)}, SD {f(C_fed_all['sd'],4)}, maximum absolute deviation {f(C_fed_all['max_abs_dev'],3)}); the election sample likewise excludes its first complete day (4 January 2024, $\Sigma={f(C_el_all['max'],3)}$). The lower bound discounts the \$1 payoff of the complete set at the effective federal funds rate (FRED DFF) over the remaining time to resolution; the upper bound is one because a complete set can be minted and its NO legs converted immediately through the neg-risk adapter. HAC standard errors use the Newey--West estimator with 5 lags. | |
| 391 | +\end{{tablenotes}} | |
| 392 | +\end{{threeparttable}} | |
| 393 | +\end{{table}}""" | |
| 394 | +save_table(tex, "table3_completeness") | |
| 395 | + | |
| 396 | +# ---------------------------------------------------------------------------- | |
| 397 | +# 5. Order-book snapshot (Table 9) | |
| 398 | +# ---------------------------------------------------------------------------- | |
| 399 | +ob_rows, ob = [], {} | |
| 400 | +for m in fed_mk: | |
| 401 | + path = DATA_RAW_POLY / f"order_book_{m['yes_token'][:16]}.json" | |
| 402 | + if not path.exists(): | |
| 403 | + continue | |
| 404 | + d = json.load(open(path)) | |
| 405 | + bids = sorted([(float(b["price"]), float(b["size"])) for b in d["bids"]], reverse=True) | |
| 406 | + asks = sorted([(float(a["price"]), float(a["size"])) for a in d["asks"]]) | |
| 407 | + bb, ba = bids[0][0], asks[0][0] | |
| 408 | + ob[m["name"]] = {"bid": bb, "ask": ba, "mid": (bb + ba) / 2, "spread": ba - bb, | |
| 409 | + "rel_spread_pct": 100 * (ba - bb) / ((bb + ba) / 2), | |
| 410 | + "depth_best_bid": bids[0][1], "depth_best_ask": asks[0][1], | |
| 411 | + "depth_bid_usd": sum(p * s for p, s in bids), "depth_ask_usd": sum(p * s for p, s in asks), | |
| 412 | + "shares_bid": sum(s for _, s in bids), "shares_ask": sum(s for _, s in asks), | |
| 413 | + "depth_within_1c_bid_usd": sum(p * s for p, s in bids if p >= bb - 0.01), | |
| 414 | + "depth_within_1c_ask_usd": sum(p * s for p, s in asks if p <= ba + 0.01), | |
| 415 | + "timestamp": int(d["timestamp"])} | |
| 416 | +STATS["orderbook"] = ob | |
| 417 | +STATS["orderbook"]["sum_bid"] = float(sum(v["bid"] for k, v in ob.items() if isinstance(v, dict))) | |
| 418 | +STATS["orderbook"]["sum_ask"] = float(sum(v["ask"] for k, v in ob.items() if isinstance(v, dict))) | |
| 419 | +STATS["orderbook"]["sum_mid"] = float(sum(v["mid"] for k, v in ob.items() if isinstance(v, dict))) | |
| 420 | +STATS["orderbook"]["snapshot_utc"] = str(pd.to_datetime(list(ob.values())[0]["timestamp"], unit="ms")) | |
| 421 | +for c in STATES: | |
| 422 | + v = ob[c] | |
| 423 | + ob_rows.append(f" {esc(c)} & {v['bid']:.3f} & {v['ask']:.3f} & {v['spread']:.3f} & {f(v['rel_spread_pct'],1)} & " | |
| 424 | + f"{f(v['depth_best_bid'],0)} & {f(v['depth_best_ask'],0)} & {f(v['depth_within_1c_bid_usd']/1e3,0)} & {f(v['depth_within_1c_ask_usd']/1e3,0)} \\\\") | |
| 425 | +tex = rf"""\begin{{table}}[htbp] | |
| 426 | +\centering\small | |
| 427 | +\begin{{threeparttable}} | |
| 428 | +\caption{{Order-book snapshot, Fed June 2026 contracts (22 May 2026, {STATS['orderbook']['snapshot_utc'][11:16]} UTC)}} | |
| 429 | +\label{{tab:orderbook}} | |
| 430 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 431 | +\begin{{tabular}}{{l rrrr rr rr}} | |
| 432 | +\toprule | |
| 433 | + & Best & Best & Quoted & Relative & \multicolumn{{2}}{{c}}{{Depth at best (shares)}} & \multicolumn{{2}}{{c}}{{Depth within 1\textcent\ (USD 000)}} \\ | |
| 434 | +\cmidrule(lr){{6-7}}\cmidrule(lr){{8-9}} | |
| 435 | +Contract & bid & ask & spread & spread (\%) & Bid & Ask & Bid & Ask \\ | |
| 436 | +\midrule | |
| 437 | +{chr(10).join(ob_rows)} | |
| 438 | +\midrule | |
| 439 | +Sum of quotes & {STATS['orderbook']['sum_bid']:.3f} & {STATS['orderbook']['sum_ask']:.3f} & & & & & & \\ | |
| 440 | +\bottomrule | |
| 441 | +\end{{tabular}} | |
| 442 | +\begin{{tablenotes}} | |
| 443 | +\small | |
| 444 | +\item \textit{{Notes:}} Snapshot of the CLOB order book (YES tokens) retrieved with the price histories. Quoted spread is in USDC; the relative spread divides it by the midpoint. Depth within 1\textcent\ is the notional resting within one cent of the best quote. The sum of best bids is the proceeds from selling one complete set at market; the sum of best asks is the cost of buying one. | |
| 445 | +\end{{tablenotes}} | |
| 446 | +\end{{threeparttable}} | |
| 447 | +\end{{table}}""" | |
| 448 | +save_table(tex, "table9_orderbook") | |
| 449 | + | |
| 450 | +# ---------------------------------------------------------------------------- | |
| 451 | +# 6. Risk-neutral density, expected policy change, announcement days (Table 4) | |
| 452 | +# ---------------------------------------------------------------------------- | |
| 453 | +q = fed_main.div(sigma, axis=0) | |
| 454 | +eq = (q.values @ STATE_BPS) | |
| 455 | +eq = pd.Series(eq, index=fed_main.index, name="EQ_bps") | |
| 456 | +var_q = pd.Series(((STATE_BPS[None, :] - eq.values[:, None]) ** 2 * q.values).sum(axis=1), index=fed_main.index) | |
| 457 | +d_eq = eq.diff().dropna() | |
| 458 | +d_pnc = fed_main["No change"].diff().dropna() * 100 # pp | |
| 459 | + | |
| 460 | +def _map(d0: pd.Timestamp) -> pd.Timestamp | None: | |
| 461 | + """First available Polymarket close on or after d0 (gaps of at most 2 days).""" | |
| 462 | + pos = d_eq.index.searchsorted(d0) | |
| 463 | + if pos < len(d_eq.index) and (d_eq.index[pos] - d0).days <= 2: | |
| 464 | + return d_eq.index[pos] | |
| 465 | + return None | |
| 466 | + | |
| 467 | + | |
| 468 | +EVENT_MAP = {} | |
| 469 | +def in_sample(ds): | |
| 470 | + out = [] | |
| 471 | + for x in ds: | |
| 472 | + x = pd.Timestamp(x) | |
| 473 | + if fed_main.index.min() < x <= fed_main.index.max(): | |
| 474 | + m = _map(x) | |
| 475 | + if m is not None: | |
| 476 | + EVENT_MAP[str(m.date())] = str(x.date()); out.append(m) | |
| 477 | + return out | |
| 478 | +fomc = in_sample(FOMC_DATES) | |
| 479 | +cpi = in_sample(CPI_RELEASE_DATES) | |
| 480 | +nfp = in_sample(NFP_RELEASE_DATES) | |
| 481 | +ann = {"FOMC": fomc, "CPI": cpi, "Employment report": nfp} | |
| 482 | +all_ann = sorted(set(fomc + cpi + nfp)) | |
| 483 | +STATS["events"] = {"event_map": EVENT_MAP, "fomc": [str(x.date()) for x in fomc], "cpi": [str(x.date()) for x in cpi], "nfp": [str(x.date()) for x in nfp], | |
| 484 | + "eq_first": float(eq.iloc[0]), "eq_last": float(eq.iloc[-1]), "eq_min": float(eq.min()), "eq_max": float(eq.max()), | |
| 485 | + "sd_q_first": float(np.sqrt(var_q.iloc[0])), "sd_q_last": float(np.sqrt(var_q.iloc[-1]))} | |
| 486 | + | |
| 487 | + | |
| 488 | +def cum(series: pd.Series, d0: pd.Timestamp, a: int, b: int) -> float: | |
| 489 | + idx = series.index | |
| 490 | + pos = idx.searchsorted(d0) | |
| 491 | + if pos >= len(idx) or idx[pos] != d0: | |
| 492 | + return np.nan | |
| 493 | + lo, hi = pos + a, pos + b | |
| 494 | + if lo < 0 or hi >= len(idx): | |
| 495 | + return np.nan | |
| 496 | + return float(series.iloc[lo:hi + 1].sum()) | |
| 497 | + | |
| 498 | + | |
| 499 | +ev_rows, ev_records = [], [] | |
| 500 | +for etype, ds in ann.items(): | |
| 501 | + for d0 in ds: | |
| 502 | + rec = {"type": etype, "date": str(d0.date()), | |
| 503 | + "d_eq_0": cum(d_eq, d0, 0, 0), "d_eq_m1p1": cum(d_eq, d0, -1, 1), "d_eq_m3p3": cum(d_eq, d0, -3, 3), | |
| 504 | + "d_pnc_0": cum(d_pnc, d0, 0, 0), "d_pnc_m1p1": cum(d_pnc, d0, -1, 1), "d_pnc_m3p3": cum(d_pnc, d0, -3, 3), | |
| 505 | + "eq_level": float(eq.loc[d0]) if d0 in eq.index else np.nan} | |
| 506 | + ev_records.append(rec) | |
| 507 | + ev_rows.append(f" {etype} & {d0.strftime('%d %b %Y')} & {f(rec['eq_level'],1)} & {f(rec['d_eq_0'],2)} & {f(rec['d_eq_m1p1'],2)} & " | |
| 508 | + f"{f(rec['d_eq_m3p3'],2)} & {f(rec['d_pnc_0'],2)} & {f(rec['d_pnc_m1p1'],2)} & {f(rec['d_pnc_m3p3'],2)} \\\\") | |
| 509 | +STATS["events"]["records"] = ev_records | |
| 510 | + | |
| 511 | +# announcement-day vs other-day comparison | |
| 512 | +is_ann = d_eq.index.isin(all_ann) | |
| 513 | +is_wkend = d_eq.index.dayofweek >= 5 | |
| 514 | + | |
| 515 | + | |
| 516 | +def compare(x: pd.Series, mask: np.ndarray, label: str) -> dict: | |
| 517 | + a, b = x[mask].abs(), x[~mask].abs() | |
| 518 | + u = stats.mannwhitneyu(a, b, alternative="greater") | |
| 519 | + lev = stats.levene(x[mask], x[~mask], center="median") | |
| 520 | + return {"label": label, "n_a": int(len(a)), "n_b": int(len(b)), "mean_abs_a": float(a.mean()), "mean_abs_b": float(b.mean()), | |
| 521 | + "median_abs_a": float(a.median()), "median_abs_b": float(b.median()), | |
| 522 | + "ratio_mean": float(a.mean() / b.mean()), "sd_a": float(x[mask].std()), "sd_b": float(x[~mask].std()), | |
| 523 | + "var_ratio": float(x[mask].var() / x[~mask].var()), "mw_p": float(u.pvalue), "bf_stat": float(lev.statistic), "bf_p": float(lev.pvalue), | |
| 524 | + "mean_a": float(x[mask].mean()), "mean_b": float(x[~mask].mean())} | |
| 525 | + | |
| 526 | + | |
| 527 | +cmp_rows = [] | |
| 528 | +COMP = {} | |
| 529 | +for lab, mask in [("All scheduled releases", is_ann), ("FOMC", d_eq.index.isin(fomc)), ("CPI", d_eq.index.isin(cpi)), | |
| 530 | + ("Employment report", d_eq.index.isin(nfp))]: | |
| 531 | + c1 = compare(d_eq, mask, lab); c2 = compare(d_pnc, mask, lab) | |
| 532 | + COMP[lab] = {"eq": c1, "pnc": c2} | |
| 533 | + cmp_rows.append(f" {lab} & {c1['n_a']} & {f(c1['mean_abs_a'],2)} & {f(c1['mean_abs_b'],2)} & {f(c1['var_ratio'],2)} & {f(c1['bf_p'],3)} & {f(c1['mw_p'],3)} & " | |
| 534 | + f"{f(c2['mean_abs_a'],2)} & {f(c2['mean_abs_b'],2)} & {f(c2['var_ratio'],2)} & {f(c2['bf_p'],3)} & {f(c2['mw_p'],3)} \\\\") | |
| 535 | +# weekend vs weekday (non-announcement days only) | |
| 536 | +wk_mask = is_wkend & ~is_ann | |
| 537 | +c1 = compare(d_eq[~is_ann], wk_mask[~is_ann], "Weekend"); c2 = compare(d_pnc[~is_ann], wk_mask[~is_ann], "Weekend") | |
| 538 | +COMP["Weekend"] = {"eq": c1, "pnc": c2} | |
| 539 | +# TNX benchmark: |Δ10y yield| on same announcement days | |
| 540 | +tnx_d = (tnx.diff() * 100).dropna() | |
| 541 | +tnx_d = tnx_d[(tnx_d.index > fed_main.index.min()) & (tnx_d.index <= fed_main.index.max())] | |
| 542 | +ct = compare(tnx_d, tnx_d.index.isin(all_ann), "TNX all releases") | |
| 543 | +COMP["TNX"] = ct | |
| 544 | +STATS["announcement"] = COMP | |
| 545 | + | |
| 546 | +tex = rf"""\begin{{table}}[htbp] | |
| 547 | +\centering\footnotesize | |
| 548 | +\begin{{threeparttable}} | |
| 549 | +\caption{{Scheduled macroeconomic releases and the risk-neutral expected policy change}} | |
| 550 | +\label{{tab:event_study}} | |
| 551 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 552 | +\begin{{tabular}}{{l l r rrr rrr}} | |
| 553 | +\toprule | |
| 554 | +\multicolumn{{9}}{{l}}{{\textit{{Panel A: individual releases in the sample}}}} \\ | |
| 555 | +\addlinespace[2pt] | |
| 556 | + & & $\mathbb{{E}}^{{\mathbb{{Q}}}}_t[\Delta r]$ & \multicolumn{{3}}{{c}}{{$\Delta \mathbb{{E}}^{{\mathbb{{Q}}}}[\Delta r]$ (bps)}} & \multicolumn{{3}}{{c}}{{$\Delta p_{{\text{{No change}}}}$ (pp)}} \\ | |
| 557 | +\cmidrule(lr){{4-6}}\cmidrule(lr){{7-9}} | |
| 558 | +Release & Date & level (bps) & $[0]$ & $[-1,+1]$ & $[-3,+3]$ & $[0]$ & $[-1,+1]$ & $[-3,+3]$ \\ | |
| 559 | +\midrule | |
| 560 | +{chr(10).join(ev_rows)} | |
| 561 | +\bottomrule | |
| 562 | +\end{{tabular}}\par\bigskip | |
| 563 | +\begin{{tabular}}{{l r rrrrr rrrrr}} | |
| 564 | +\toprule | |
| 565 | +\multicolumn{{12}}{{l}}{{\textit{{Panel B: absolute daily changes on release days versus all other days}}}} \\ | |
| 566 | +\addlinespace[2pt] | |
| 567 | + & & \multicolumn{{5}}{{c}}{{$|\Delta \mathbb{{E}}^{{\mathbb{{Q}}}}[\Delta r]|$ (bps)}} & \multicolumn{{5}}{{c}}{{$|\Delta p_{{\text{{No change}}}}|$ (pp)}} \\ | |
| 568 | +\cmidrule(lr){{3-7}}\cmidrule(lr){{8-12}} | |
| 569 | +Days & $K$ & Ann. & Other & VR & $p_{{BF}}$ & $p_{{MW}}$ & Ann. & Other & VR & $p_{{BF}}$ & $p_{{MW}}$ \\ | |
| 570 | +\midrule | |
| 571 | +""" | |
| 572 | +for lab in ["All scheduled releases", "FOMC", "CPI", "Employment report"]: | |
| 573 | + c1, c2 = COMP[lab]["eq"], COMP[lab]["pnc"] | |
| 574 | + tex += (f" {lab} & {c1['n_a']} & {f(c1['mean_abs_a'],2)} & {f(c1['mean_abs_b'],2)} & {f(c1['var_ratio'],2)} & {f(c1['bf_p'],3)} & {f(c1['mw_p'],3)} & " | |
| 575 | + f"{f(c2['mean_abs_a'],2)} & {f(c2['mean_abs_b'],2)} & {f(c2['var_ratio'],2)} & {f(c2['bf_p'],3)} & {f(c2['mw_p'],3)} \\\\\n") | |
| 576 | +c1, c2 = COMP["Weekend"]["eq"], COMP["Weekend"]["pnc"] | |
| 577 | +tex += (f" Weekend vs.\\ weekday (no release) & {c1['n_a']} & {f(c1['mean_abs_a'],2)} & {f(c1['mean_abs_b'],2)} & {f(c1['var_ratio'],2)} & {f(c1['bf_p'],3)} & {f(c1['mw_p'],3)} & " | |
| 578 | + f"{f(c2['mean_abs_a'],2)} & {f(c2['mean_abs_b'],2)} & {f(c2['var_ratio'],2)} & {f(c2['bf_p'],3)} & {f(c2['mw_p'],3)} \\\\\n") | |
| 579 | +tex += rf"""\bottomrule | |
| 580 | +\end{{tabular}} | |
| 581 | +\begin{{tablenotes}} | |
| 582 | +\small | |
| 583 | +\item \textit{{Notes:}} $\mathbb{{E}}^{{\mathbb{{Q}}}}_t[\Delta r]=\sum_j q_{{j,t}}\,x_j$ with $x=(-50,-25,0,25,50)$ basis points and $q_{{j,t}}=p_{{j,t}}/\Sigma_t$; the open-ended states are valued at $\pm 50$ bps. Day 0 is the UTC calendar day of the release (FOMC statements at 14:00 ET, CPI and employment reports at 08:30 ET), which is contained in the Polymarket close of that day (00:00 UTC). Windows cumulate daily changes; the 3 April 2026 employment report (Good Friday) is assigned the first subsequent close, and the 14 April 2026 CPI release has no close within two days and is dropped. Panel B compares absolute daily changes on the $K$ release days with all other days ($T={len(d_eq)}$ daily changes, listing day excluded): ``Ann.'' and ``Other'' are means, VR is the ratio of variances, $p_{{BF}}$ the Brown--Forsythe test of equal variances and $p_{{MW}}$ the one-sided Mann--Whitney test that absolute changes are larger on release days. The last row compares weekend days with weekdays among non-release days. For comparison, the absolute daily change in the 10-year Treasury yield (CBOE TNX) is {f(ct['mean_abs_a'],1)} bps on release days versus {f(ct['mean_abs_b'],1)} bps otherwise (variance ratio {f(ct['var_ratio'],2)}, $p_{{BF}}={f(ct['bf_p'],3)}$). | |
| 584 | +\end{{tablenotes}} | |
| 585 | +\end{{threeparttable}} | |
| 586 | +\end{{table}}""" | |
| 587 | +save_table(tex, "table4_event_study") | |
| 588 | + | |
| 589 | +# ---------------------------------------------------------------------------- | |
| 590 | +# 7. Granger causality / VAR on trading-day grid (Tables 5, 6) | |
| 591 | +# ---------------------------------------------------------------------------- | |
| 592 | +from statsmodels.tsa.api import VAR # noqa: E402 | |
| 593 | +import statsmodels.api as sm # noqa: E402 | |
| 594 | + | |
| 595 | +grid = spy.index[(spy.index >= fed_main.index.min()) & (spy.index <= fed_main.index.max())] | |
| 596 | +eq_grid = eq.reindex(grid).ffill() | |
| 597 | +pnc_grid = fed_main["No change"].reindex(grid).ffill() | |
| 598 | +panel = pd.DataFrame({ | |
| 599 | + "Fed": eq_grid.diff(), # Δ E_Q[Δr], bps | |
| 600 | + "TNX": (tnx.reindex(grid).diff() * 100), # Δ 10-year yield, bps | |
| 601 | + "SPY": np.log(spy.reindex(grid)).diff() * 100, | |
| 602 | + "VIX": np.log(vix.reindex(grid)).diff() * 100, | |
| 603 | + "BTC": np.log(btc.reindex(grid)).diff() * 100, | |
| 604 | +}).dropna() | |
| 605 | +STATS["granger"] = {"T": int(len(panel)), "first": str(panel.index.min().date()), "last": str(panel.index.max().date())} | |
| 606 | +sel = VAR(panel).select_order(maxlags=5) | |
| 607 | +STATS["granger"]["aic_lag"] = int(sel.aic); STATS["granger"]["bic_lag"] = int(sel.bic); STATS["granger"]["hqic_lag"] = int(sel.hqic) | |
| 608 | +p_main = max(int(sel.aic), 1) | |
| 609 | + | |
| 610 | + | |
| 611 | +def gc_pair(y: str, x: str, p: int): | |
| 612 | + """Bivariate VAR(p) Granger F-test of x → y with HAC-robust Wald as well.""" | |
| 613 | + df = panel[[y, x]] | |
| 614 | + r = VAR(df).fit(p) | |
| 615 | + t = r.test_causality(y, [x], kind="f") | |
| 616 | + # HAC-robust Wald on single equation | |
| 617 | + Y = df[y].iloc[p:] | |
| 618 | + X = pd.concat([df.shift(k).add_suffix(f"_L{k}") for k in range(1, p + 1)], axis=1).iloc[p:] | |
| 619 | + X = sm.add_constant(X) | |
| 620 | + m = sm.OLS(Y, X).fit(cov_type="HAC", cov_kwds={"maxlags": 5}) | |
| 621 | + R = np.zeros((p, X.shape[1])) | |
| 622 | + for k in range(1, p + 1): | |
| 623 | + R[k - 1, list(X.columns).index(f"{x}_L{k}")] = 1 | |
| 624 | + w = m.wald_test(R, use_f=True, scalar=True) | |
| 625 | + return float(t.test_statistic), float(t.pvalue), float(w.statistic), float(w.pvalue) | |
| 626 | + | |
| 627 | + | |
| 628 | +names = {"Fed": r"$\Delta\mathbb{E}^{\mathbb{Q}}[\Delta r]$", "TNX": "10-year yield", "SPY": "SPY", "VIX": "VIX", "BTC": "BTC"} | |
| 629 | +g_rows, G = [], {} | |
| 630 | +pairs = [("Fed", v) for v in ["TNX", "SPY", "VIX", "BTC"]] + [(v, "Fed") for v in ["TNX", "SPY", "VIX", "BTC"]] | |
| 631 | +for x, y in pairs: | |
| 632 | + res = {} | |
| 633 | + for p in [p_main, 1, 2, 5]: | |
| 634 | + res[p] = gc_pair(y, x, p) | |
| 635 | + G[f"{x}->{y}"] = {str(k): v for k, v in res.items()} | |
| 636 | + Fm, pm, Wm, pwm = res[p_main] | |
| 637 | + g_rows.append(f" {names[x]} $\\to$ {names[y]} & {f(Fm,2)}{stars(pm)} & {f(pm,3)} & {f(pwm,3)} & " | |
| 638 | + f"{f(res[1][1],3)} & {f(res[2][1],3)} & {f(res[5][1],3)} \\\\") | |
| 639 | +STATS["granger"]["pairs"] = G | |
| 640 | +# old-style (min-p over lags 1..5, misaligned returns) for the changelog | |
| 641 | +from statsmodels.tsa.stattools import grangercausalitytests # noqa: E402 | |
| 642 | +old = {} | |
| 643 | +for x, y in [("Fed", "VIX"), ("VIX", "Fed"), ("Fed", "SPY")]: | |
| 644 | + r = grangercausalitytests(panel[[y, x]].values, maxlag=5, verbose=False) | |
| 645 | + best = min(r, key=lambda k: r[k][0]["ssr_ftest"][1]) | |
| 646 | + old[f"{x}->{y}"] = {"minp_lag": int(best), "F": float(r[best][0]["ssr_ftest"][0]), "p": float(r[best][0]["ssr_ftest"][1])} | |
| 647 | +STATS["granger"]["min_p_over_lags_aligned"] = old | |
| 648 | + | |
| 649 | +tex = rf"""\begin{{table}}[htbp] | |
| 650 | +\centering\small | |
| 651 | +\begin{{threeparttable}} | |
| 652 | +\caption{{Granger causality between the Fed state-price panel and U.S. asset returns}} | |
| 653 | +\label{{tab:granger}} | |
| 654 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 655 | +\begin{{tabular}}{{l rrr rrr}} | |
| 656 | +\toprule | |
| 657 | + & \multicolumn{{3}}{{c}}{{VAR($p^*$), $p^*={p_main}$ (AIC)}} & \multicolumn{{3}}{{c}}{{$p$-value at fixed lag}} \\ | |
| 658 | +\cmidrule(lr){{2-4}}\cmidrule(lr){{5-7}} | |
| 659 | +Direction & $F$ & $p$ & $p$ (HAC) & $p=1$ & $p=2$ & $p=5$ \\ | |
| 660 | +\midrule | |
| 661 | +{chr(10).join(g_rows)} | |
| 662 | +\bottomrule | |
| 663 | +\end{{tabular}} | |
| 664 | +\begin{{tablenotes}} | |
| 665 | +\small | |
| 666 | +\item \textit{{Notes:}} Bivariate VAR Granger tests on $T={len(panel)}$ U.S. trading days ({panel.index.min().strftime('%d %b %Y')} -- {panel.index.max().strftime('%d %b %Y')}). The Fed variable is the daily change in the risk-neutral expected June 2026 policy change (basis points), measured at the Polymarket close of the same calendar day (00:00 UTC, about four hours after the U.S. cash close); changes over weekends are assigned to Monday, as for the financial series. TNX is the daily change in the CBOE 10-year Treasury yield index (bps); SPY, VIX and BTC are daily log changes in percent. The lag order is selected by the AIC on the five-variable system (BIC selects {int(sel.bic)}, HQIC {int(sel.hqic)}). $F$ and $p$ are the conventional Granger $F$-test; $p$ (HAC) is the Wald test with Newey--West (5 lags) covariance. $^{{***}}$, $^{{**}}$, $^{{*}}$: 1\%, 5\%, 10\%. | |
| 667 | +\end{{tablenotes}} | |
| 668 | +\end{{threeparttable}} | |
| 669 | +\end{{table}}""" | |
| 670 | +save_table(tex, "table5_granger") | |
| 671 | + | |
| 672 | +# VAR(1) coefficient table with HAC t-stats (equation by equation) | |
| 673 | +var_rows = [] | |
| 674 | +Xv = sm.add_constant(panel.shift(1).iloc[1:]) | |
| 675 | +coef, tval = {}, {} | |
| 676 | +for y in panel.columns: | |
| 677 | + m = sm.OLS(panel[y].iloc[1:], Xv).fit(cov_type="HAC", cov_kwds={"maxlags": 5}) | |
| 678 | + coef[y] = m.params; tval[y] = m.tvalues | |
| 679 | + STATS["granger"].setdefault("var1_r2", {})[y] = float(m.rsquared) | |
| 680 | +for reg in ["const"] + list(panel.columns): | |
| 681 | + lab = "Constant" if reg == "const" else f"{names[reg]}$_{{t-1}}$" | |
| 682 | + cells, tcells = [], [] | |
| 683 | + for y in panel.columns: | |
| 684 | + c, t = coef[y][reg], tval[y][reg] | |
| 685 | + p = 2 * (1 - stats.norm.cdf(abs(t))) | |
| 686 | + cells.append(f"{f(c,3)}{stars(p)}") | |
| 687 | + tcells.append(f"({f(t,2)})") | |
| 688 | + var_rows.append(f" {lab} & " + " & ".join(cells) + " \\\\") | |
| 689 | + var_rows.append(" & " + " & ".join(tcells) + " \\\\") | |
| 690 | +r2 = " & ".join(f(STATS["granger"]["var1_r2"][y], 3) for y in panel.columns) | |
| 691 | +tex = rf"""\begin{{table}}[htbp] | |
| 692 | +\centering\small | |
| 693 | +\begin{{threeparttable}} | |
| 694 | +\caption{{VAR(1) estimates on the trading-day grid}} | |
| 695 | +\label{{tab:var}} | |
| 696 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 697 | +\begin{{tabular}}{{l rrrrr}} | |
| 698 | +\toprule | |
| 699 | + & \multicolumn{{5}}{{c}}{{Dependent variable (day $t$)}} \\ | |
| 700 | +\cmidrule(lr){{2-6}} | |
| 701 | +Regressor & {names['Fed']} & 10-year yield & SPY & VIX & BTC \\ | |
| 702 | +\midrule | |
| 703 | +{chr(10).join(var_rows)} | |
| 704 | +\midrule | |
| 705 | +$R^2$ & {r2} \\ | |
| 706 | +Observations & \multicolumn{{5}}{{c}}{{{len(panel)-1}}} \\ | |
| 707 | +\bottomrule | |
| 708 | +\end{{tabular}} | |
| 709 | +\begin{{tablenotes}} | |
| 710 | +\small | |
| 711 | +\item \textit{{Notes:}} Equation-by-equation OLS of each variable on one lag of all five variables (the AIC-selected order; see Table~\ref{{tab:granger}}). Newey--West (5 lags) $t$-statistics in parentheses. Variables are defined in Table~\ref{{tab:granger}}. $^{{***}}$, $^{{**}}$, $^{{*}}$: 1\%, 5\%, 10\%. | |
| 712 | +\end{{tablenotes}} | |
| 713 | +\end{{threeparttable}} | |
| 714 | +\end{{table}}""" | |
| 715 | +save_table(tex, "table6_var") | |
| 716 | + | |
| 717 | +# contemporaneous correlations (for text) | |
| 718 | +STATS["granger"]["contemp_corr"] = panel.corr().round(3).to_dict() | |
| 719 | + | |
| 720 | +# ---------------------------------------------------------------------------- | |
| 721 | +# 8. Volatility: GARCH / GJR (QML) and HAR (appendix tables 7, 8) | |
| 722 | +# ---------------------------------------------------------------------------- | |
| 723 | +from arch import arch_model # noqa: E402 | |
| 724 | + | |
| 725 | +r_nc = np.log(fed_main["No change"]).diff().dropna() * 100 # percent log returns, calendar days | |
| 726 | +STATS["garch"] = {"T": int(len(r_nc)), "mean": float(r_nc.mean()), "sd": float(r_nc.std()), "min": float(r_nc.min()), "max": float(r_nc.max())} | |
| 727 | +# ARCH-LM | |
| 728 | +from statsmodels.stats.diagnostic import het_arch # noqa: E402 | |
| 729 | +lm = het_arch(r_nc - r_nc.mean(), nlags=5) | |
| 730 | +STATS["garch"]["arch_lm_stat"] = float(lm[0]); STATS["garch"]["arch_lm_p"] = float(lm[1]) | |
| 731 | +lb = __import__("statsmodels.stats.diagnostic", fromlist=["acorr_ljungbox"]).acorr_ljungbox(r_nc ** 2, lags=[10], return_df=True) | |
| 732 | +STATS["garch"]["lb_sq_10_stat"] = float(lb["lb_stat"].iloc[0]); STATS["garch"]["lb_sq_10_p"] = float(lb["lb_pvalue"].iloc[0]) | |
| 733 | +lb1 = __import__("statsmodels.stats.diagnostic", fromlist=["acorr_ljungbox"]).acorr_ljungbox(r_nc, lags=[10], return_df=True) | |
| 734 | +STATS["garch"]["lb_ret_10_stat"] = float(lb1["lb_stat"].iloc[0]); STATS["garch"]["lb_ret_10_p"] = float(lb1["lb_pvalue"].iloc[0]) | |
| 735 | + | |
| 736 | +garch_fits = {} | |
| 737 | +for label, o, dist in [("GARCH(1,1), normal", 0, "normal"), ("GJR-GARCH(1,1), normal", 1, "normal"), | |
| 738 | + ("GARCH(1,1), Student-$t$", 0, "t"), ("GJR-GARCH(1,1), Student-$t$", 1, "t")]: | |
| 739 | + am = arch_model(r_nc, vol="GARCH", p=1, o=o, q=1, dist=dist, mean="Constant") | |
| 740 | + res = am.fit(disp="off", cov_type="robust") | |
| 741 | + garch_fits[label] = res | |
| 742 | + STATS["garch"][label] = {"params": {k: float(v) for k, v in res.params.items()}, "se": {k: float(v) for k, v in res.std_err.items()}, | |
| 743 | + "pvalues": {k: float(v) for k, v in res.pvalues.items()}, | |
| 744 | + "loglik": float(res.loglikelihood), "aic": float(res.aic), "bic": float(res.bic), | |
| 745 | + "persistence": float(res.params.get("alpha[1]", 0) + res.params.get("beta[1]", 0) + 0.5 * res.params.get("gamma[1]", 0))} | |
| 746 | + # Ljung-Box on squared standardised residuals | |
| 747 | + z = res.std_resid.dropna() | |
| 748 | + lbz = __import__("statsmodels.stats.diagnostic", fromlist=["acorr_ljungbox"]).acorr_ljungbox(z ** 2, lags=[10], return_df=True) | |
| 749 | + STATS["garch"][label]["lb_z2_10_p"] = float(lbz["lb_pvalue"].iloc[0]) | |
| 750 | + STATS["garch"][label]["kurt_z"] = float(stats.kurtosis(z, fisher=False)) | |
| 751 | +# LR test GARCH vs GJR (normal) | |
| 752 | +lr = 2 * (garch_fits["GJR-GARCH(1,1), normal"].loglikelihood - garch_fits["GARCH(1,1), normal"].loglikelihood) | |
| 753 | +STATS["garch"]["lr_gjr_vs_garch"] = float(lr); STATS["garch"]["lr_p"] = float(1 - stats.chi2.cdf(lr, 1)) | |
| 754 | + | |
| 755 | +param_order = ["mu", "omega", "alpha[1]", "gamma[1]", "beta[1]", "nu"] | |
| 756 | +pnames = {"mu": r"$\mu$", "omega": r"$\omega$", "alpha[1]": r"$\alpha_1$", "gamma[1]": r"$\gamma_1$", "beta[1]": r"$\beta_1$", "nu": r"$\nu$"} | |
| 757 | +g_rows = [] | |
| 758 | +labels = list(garch_fits.keys()) | |
| 759 | +for pn in param_order: | |
| 760 | + cells, secells = [], [] | |
| 761 | + for lab in labels: | |
| 762 | + res = garch_fits[lab] | |
| 763 | + if pn in res.params: | |
| 764 | + cells.append(f"{f(res.params[pn],3)}{stars(res.pvalues[pn])}"); secells.append(f"({f(res.std_err[pn],3)})") | |
| 765 | + else: | |
| 766 | + cells.append("--"); secells.append("") | |
| 767 | + g_rows.append(f" {pnames[pn]} & " + " & ".join(cells) + " \\\\") | |
| 768 | + g_rows.append(" & " + " & ".join(secells) + " \\\\") | |
| 769 | +ll = " & ".join(f(garch_fits[l].loglikelihood, 1) for l in labels) | |
| 770 | +aic = " & ".join(f(garch_fits[l].aic, 1) for l in labels) | |
| 771 | +bic = " & ".join(f(garch_fits[l].bic, 1) for l in labels) | |
| 772 | +pers = " & ".join(f(STATS["garch"][l]["persistence"], 3) for l in labels) | |
| 773 | +lbz = " & ".join(f(STATS["garch"][l]["lb_z2_10_p"], 3) for l in labels) | |
| 774 | +tex = rf"""\begin{{table}}[htbp] | |
| 775 | +\centering\small | |
| 776 | +\begin{{threeparttable}} | |
| 777 | +\caption{{GARCH-family estimates for the ``No change'' contract (daily log returns, percent)}} | |
| 778 | +\label{{tab:garch}} | |
| 779 | +\setlength{{\tabcolsep}}{{4pt}} | |
| 780 | +\begin{{tabular}}{{l rrrr}} | |
| 781 | +\toprule | |
| 782 | + & GARCH & GJR-GARCH & GARCH & GJR-GARCH \\ | |
| 783 | +Parameter & normal & normal & Student-$t$ & Student-$t$ \\ | |
| 784 | +\midrule | |
| 785 | +{chr(10).join(g_rows)} | |
| 786 | +\midrule | |
| 787 | +Log-likelihood & {ll} \\ | |
| 788 | +AIC & {aic} \\ | |
| 789 | +BIC & {bic} \\ | |
| 790 | +Persistence $\alpha_1+\beta_1+\gamma_1/2$ & {pers} \\ | |
| 791 | +Ljung--Box $p$, $z_t^2$ (10 lags) & {lbz} \\ | |
| 792 | +Observations & \multicolumn{{4}}{{c}}{{{len(r_nc)}}} \\ | |
| 793 | +\bottomrule | |
| 794 | +\end{{tabular}} | |
| 795 | +\begin{{tablenotes}} | |
| 796 | +\small | |
| 797 | +\item \textit{{Notes:}} Constant-mean models estimated by (quasi-)maximum likelihood on calendar-day log returns of the ``No change'' contract, listing day excluded; Bollerslev--Wooldridge robust standard errors in parentheses. The GJR variance equation is $\sigma_t^2=\omega+\alpha_1\varepsilon_{{t-1}}^2+\gamma_1\varepsilon_{{t-1}}^2\mathbf{{1}}\{{\varepsilon_{{t-1}}<0\}}+\beta_1\sigma_{{t-1}}^2$. The likelihood-ratio statistic for $\gamma_1=0$ (normal innovations) is {f(lr,2)} ($p={f(STATS['garch']['lr_p'],3)}$). Engle's ARCH-LM test (5 lags) on the returns: {f(STATS['garch']['arch_lm_stat'],2)} ($p={f(STATS['garch']['arch_lm_p'],3)}$). $^{{***}}$, $^{{**}}$, $^{{*}}$: 1\%, 5\%, 10\%. | |
| 798 | +\end{{tablenotes}} | |
| 799 | +\end{{threeparttable}} | |
| 800 | +\end{{table}}""" | |
| 801 | +save_table(tex, "table7_garch") | |
| 802 | + | |
| 803 | +# HAR with standard component definitions | |
| 804 | +rv_d = r_nc.abs() | |
| 805 | +har = pd.DataFrame({"rv_d": rv_d, "rv_w": rv_d.rolling(5).mean(), "rv_m": rv_d.rolling(22).mean()}) | |
| 806 | +y = rv_d.shift(-1) | |
| 807 | +dat = pd.concat([y.rename("y"), har], axis=1).dropna() | |
| 808 | +hm = sm.OLS(dat["y"], sm.add_constant(dat[["rv_d", "rv_w", "rv_m"]])).fit(cov_type="HAC", cov_kwds={"maxlags": 5}) | |
| 809 | +# squared-return version | |
| 810 | +rv2 = r_nc ** 2 | |
| 811 | +har2 = pd.DataFrame({"rv_d": rv2, "rv_w": rv2.rolling(5).mean(), "rv_m": rv2.rolling(22).mean()}) | |
| 812 | +dat2 = pd.concat([rv2.shift(-1).rename("y"), har2], axis=1).dropna() | |
| 813 | +hm2 = sm.OLS(dat2["y"], sm.add_constant(dat2[["rv_d", "rv_w", "rv_m"]])).fit(cov_type="HAC", cov_kwds={"maxlags": 5}) | |
| 814 | +STATS["har"] = {"abs": {"params": hm.params.to_dict(), "t": hm.tvalues.to_dict(), "r2": float(hm.rsquared), "adj_r2": float(hm.rsquared_adj), "n": int(hm.nobs), | |
| 815 | + "F_p": float(hm.f_pvalue)}, | |
| 816 | + "sq": {"params": hm2.params.to_dict(), "t": hm2.tvalues.to_dict(), "r2": float(hm2.rsquared), "adj_r2": float(hm2.rsquared_adj), "n": int(hm2.nobs), | |
| 817 | + "F_p": float(hm2.f_pvalue)}} | |
| 818 | +hn = {"const": "Constant", "rv_d": r"$RV^{(d)}_t$", "rv_w": r"$RV^{(w)}_t$", "rv_m": r"$RV^{(m)}_t$"} | |
| 819 | +h_rows = [] | |
| 820 | +for k in ["const", "rv_d", "rv_w", "rv_m"]: | |
| 821 | + h_rows.append(f" {hn[k]} & {f(hm.params[k],3)}{stars(hm.pvalues[k])} & ({f(hm.bse[k],3)}) & {f(hm2.params[k],3)}{stars(hm2.pvalues[k])} & ({f(hm2.bse[k],3)}) \\\\") | |
| 822 | +tex = rf"""\begin{{table}}[htbp] | |
| 823 | +\centering\small | |
| 824 | +\begin{{threeparttable}} | |
| 825 | +\caption{{HAR regressions for the ``No change'' contract}} | |
| 826 | +\label{{tab:har_rv}} | |
| 827 | +\begin{{tabular}}{{l rr rr}} | |
| 828 | +\toprule | |
| 829 | + & \multicolumn{{2}}{{c}}{{$RV_t=|r_t|$}} & \multicolumn{{2}}{{c}}{{$RV_t=r_t^2$}} \\ | |
| 830 | +\cmidrule(lr){{2-3}}\cmidrule(lr){{4-5}} | |
| 831 | +Regressor & Coef. & (SE) & Coef. & (SE) \\ | |
| 832 | +\midrule | |
| 833 | +{chr(10).join(h_rows)} | |
| 834 | +\midrule | |
| 835 | +$R^2$ & \multicolumn{{2}}{{c}}{{{f(hm.rsquared,3)}}} & \multicolumn{{2}}{{c}}{{{f(hm2.rsquared,3)}}} \\ | |
| 836 | +Adjusted $R^2$ & \multicolumn{{2}}{{c}}{{{f(hm.rsquared_adj,3)}}} & \multicolumn{{2}}{{c}}{{{f(hm2.rsquared_adj,3)}}} \\ | |
| 837 | +Joint $F$-test $p$-value & \multicolumn{{2}}{{c}}{{{f(hm.f_pvalue,3)}}} & \multicolumn{{2}}{{c}}{{{f(hm2.f_pvalue,3)}}} \\ | |
| 838 | +Observations & \multicolumn{{2}}{{c}}{{{int(hm.nobs)}}} & \multicolumn{{2}}{{c}}{{{int(hm2.nobs)}}} \\ | |
| 839 | +\bottomrule | |
| 840 | +\end{{tabular}} | |
| 841 | +\begin{{tablenotes}} | |
| 842 | +\small | |
| 843 | +\item \textit{{Notes:}} $RV^{{(d)}}_{{t+1}}=c+\beta_d RV^{{(d)}}_t+\beta_w RV^{{(w)}}_t+\beta_m RV^{{(m)}}_t+\varepsilon_{{t+1}}$ with $RV^{{(w)}}_t$ and $RV^{{(m)}}_t$ the averages of the daily measure over the past 5 and 22 calendar days \citep{{corsi2009simple}}. Daily log returns in percent; listing day excluded. Newey--West (5 lags) standard errors. $^{{***}}$, $^{{**}}$, $^{{*}}$: 1\%, 5\%, 10\%. | |
| 844 | +\end{{tablenotes}} | |
| 845 | +\end{{threeparttable}} | |
| 846 | +\end{{table}}""" | |
| 847 | +save_table(tex, "table8_har_rv") | |
| 848 | + | |
| 849 | +# ---------------------------------------------------------------------------- | |
| 850 | +# 9. Roll spread | |
| 851 | +# ---------------------------------------------------------------------------- | |
| 852 | +def roll_spread(p: pd.Series, window: int = 20) -> pd.Series: | |
| 853 | + dp = p.diff() | |
| 854 | + cov = dp.rolling(window).apply(lambda x: np.cov(x[:-1], x[1:])[0, 1] if len(x) > 2 else np.nan, raw=True) | |
| 855 | + return 2 * np.sqrt(np.maximum(-cov, 0)) | |
| 856 | + | |
| 857 | + | |
| 858 | +roll = {c: roll_spread(fed_main[c]) for c in STATES} | |
| 859 | +rs = roll["No change"].dropna() | |
| 860 | +STATS["roll"] = {"nochange_mean": float(rs.mean()), "nochange_median": float(rs.median()), "nochange_first30_mean": float(rs.iloc[:30].mean()), | |
| 861 | + "nochange_last30_mean": float(rs.iloc[-30:].mean()), "share_zero": float((rs == 0).mean()), | |
| 862 | + "autocov_sign_share_negative": float((fed_main["No change"].diff().rolling(20).apply(lambda x: np.cov(x[:-1], x[1:])[0, 1], raw=True).dropna() < 0).mean())} | |
| 863 | + | |
| 864 | +# ---------------------------------------------------------------------------- | |
| 865 | +# 10. Election panel statistics | |
| 866 | +# ---------------------------------------------------------------------------- | |
| 867 | +tr, ha, bi = election["Donald Trump"], election.get("Kamala Harris"), election.get("Joe Biden") | |
| 868 | +STATS["election"] = {"trump_last": float(tr.dropna().iloc[-1]), "trump_max": float(tr.max()), "trump_min": float(tr.min()), | |
| 869 | + "trump_mean": float(tr.mean()), "harris_last": float(ha.dropna().iloc[-1]), "harris_max": float(ha.max()), | |
| 870 | + "biden_before_dropout": float(bi.loc[:pd.Timestamp("2024-07-20")].iloc[-1]), "biden_after_dropout": float(bi.loc[pd.Timestamp("2024-07-22"):].iloc[0]), | |
| 871 | + "harris_before_dropout": float(ha.loc[:pd.Timestamp("2024-07-20")].iloc[-1]), "harris_after_dropout": float(ha.loc[pd.Timestamp("2024-07-22"):].iloc[0]), | |
| 872 | + "trump_jul12": float(tr.loc[pd.Timestamp("2024-07-12")]), "trump_jul14": float(tr.loc[pd.Timestamp("2024-07-14")]), | |
| 873 | + "trump_sep9": float(tr.loc[pd.Timestamp("2024-09-09")]), "trump_sep11": float(tr.loc[pd.Timestamp("2024-09-11")]), | |
| 874 | + "trump_oct_peak": float(tr.loc["2024-10"].max()), "trump_oct_peak_date": str(tr.loc["2024-10"].idxmax().date()), | |
| 875 | + "trump_nov5": float(tr.loc[pd.Timestamp("2024-11-05")]), "harris_nov5": float(ha.loc[pd.Timestamp("2024-11-05")]), | |
| 876 | + "others_sum_nov5": float(el_complete.loc[pd.Timestamp("2024-11-05")].drop(["Donald Trump", "Kamala Harris"]).sum()), | |
| 877 | + "n_contracts": int(election.shape[1]), "T": int(len(election)), "T_complete": int(len(el_complete))} | |
| 878 | + | |
| 879 | +# ---------------------------------------------------------------------------- | |
| 880 | +# 11. Figures | |
| 881 | +# ---------------------------------------------------------------------------- | |
| 882 | +# fig1 state prices | |
| 883 | +fig, ax = plt.subplots(figsize=(6.5, 3.6)) | |
| 884 | +for i, c in enumerate(STATES): | |
| 885 | + ax.plot(fed_main.index, fed_main[c], color=PAL[i], ls=LS[i], label=c) | |
| 886 | +for d0 in fomc: | |
| 887 | + ax.axvline(d0, color="0.6", lw=0.6, ls=":") | |
| 888 | +ax.set_ylabel("State price (USDC per \\$1 payoff)"); ax.set_ylim(-0.02, 1.02) | |
| 889 | +ax.legend(ncol=3, loc="center left", frameon=False) | |
| 890 | +ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %Y")) | |
| 891 | +save_fig(fig, "fig1_state_prices") | |
| 892 | + | |
| 893 | +# fig2 Σ with bounds | |
| 894 | +fig, ax = plt.subplots(figsize=(6.5, 3.4)) | |
| 895 | +ax.plot(sigma.index, sigma.values, color=PAL[0], lw=1.2, label=r"$\Sigma_t$ (sum of closing prices)") | |
| 896 | +ax.plot(sigma.index, lower_fed, color=PAL[1], lw=1.0, ls="--", label=r"Lower bound $e^{-r_t\tau_t}$ (DFF)") | |
| 897 | +ax.axhline(1.0, color="black", lw=0.8, label="Upper bound 1") | |
| 898 | +ax.fill_between(sigma.index, lower_fed - 0.005, 1.005, color="0.85", alpha=0.5, label=r"Bounds $\pm 0.5$ pp") | |
| 899 | +ax.set_ylim(0.95, 1.12); ax.set_ylabel(r"$\Sigma_t$") | |
| 900 | +ax.legend(loc="upper right", frameon=False, ncol=2) | |
| 901 | +ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %Y")) | |
| 902 | +save_fig(fig, "fig2_completeness_test") | |
| 903 | + | |
| 904 | +# fig3 RN density snapshots | |
| 905 | +fig, ax = plt.subplots(figsize=(6.5, 3.4)) | |
| 906 | +idx = q.index | |
| 907 | +snap = [idx[0], idx[len(idx) // 4], idx[len(idx) // 2], idx[3 * len(idx) // 4], idx[-1]] | |
| 908 | +w = 3.5 | |
| 909 | +for i, d0 in enumerate(snap): | |
| 910 | + ax.bar(STATE_BPS + (i - 2) * w, q.loc[d0].values, width=w, color=PAL[i], label=d0.strftime("%d %b %Y"), edgecolor="white", lw=0.5) | |
| 911 | +ax.set_xticks(STATE_BPS); ax.set_xticklabels(["$\\leq-50$", "$-25$", "0", "$+25$", "$\\geq+50$"]) | |
| 912 | +ax.set_xlabel("Change in the target range upper bound, June 2026 meeting (bps)"); ax.set_ylabel("Risk-neutral probability $q_{j,t}$") | |
| 913 | +ax.legend(frameon=False) | |
| 914 | +save_fig(fig, "fig3_risk_neutral_density") | |
| 915 | + | |
| 916 | +# fig4 E_Q path with release markers | |
| 917 | +fig, axes = plt.subplots(2, 1, figsize=(6.5, 5.2), sharex=True, gridspec_kw={"height_ratios": [2, 1.3]}) | |
| 918 | +axes[0].plot(eq.index, eq.values, color=PAL[0], lw=1.2) | |
| 919 | +for lab, ds, mk, col in [("FOMC", fomc, "v", PAL[1]), ("CPI", cpi, "o", PAL[2]), ("Employment report", nfp, "s", PAL[3])]: | |
| 920 | + axes[0].scatter(ds, eq.reindex(ds).values, marker=mk, s=28, color=col, zorder=3, label=lab) | |
| 921 | +axes[0].set_ylabel(r"$\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ (bps)"); axes[0].legend(frameon=False, loc="lower left") | |
| 922 | +axes[1].bar(d_eq.index, d_eq.values, width=1, color=np.where(d_eq.index.isin(all_ann), PAL[1], "0.6")) | |
| 923 | +axes[1].set_ylabel(r"$\Delta\mathbb{E}^{\mathbb{Q}}_t[\Delta r]$ (bps)") | |
| 924 | +axes[1].xaxis.set_major_formatter(mdates.DateFormatter("%b %Y")) | |
| 925 | +save_fig(fig, "fig4_expected_policy_change") | |
| 926 | + | |
| 927 | +# fig5 announcement-day distributions | |
| 928 | +fig, axes = plt.subplots(1, 2, figsize=(6.5, 3.0)) | |
| 929 | +groups = [("Other", d_eq[~is_ann]), ("Employment", d_eq[d_eq.index.isin(nfp)]), ("CPI", d_eq[d_eq.index.isin(cpi)]), ("FOMC", d_eq[d_eq.index.isin(fomc)])] | |
| 930 | +for k, (lab, s) in enumerate(groups): | |
| 931 | + jitter = (np.random.RandomState(k).rand(len(s)) - 0.5) * 0.3 | |
| 932 | + axes[0].scatter(np.full(len(s), k) + jitter, s.abs().values, s=10, color=PAL[k], alpha=0.8) | |
| 933 | + axes[0].hlines(s.abs().mean(), k - 0.3, k + 0.3, color="black", lw=1.2) | |
| 934 | +axes[0].set_xticks(range(4)); axes[0].set_xticklabels([g[0] for g in groups]); axes[0].set_ylabel(r"$|\Delta\mathbb{E}^{\mathbb{Q}}_t[\Delta r]|$ (bps)") | |
| 935 | +axes[0].set_title("A. Expected policy change", loc="left") | |
| 936 | +groups2 = [("Other", d_pnc[~is_ann]), ("Employment", d_pnc[d_pnc.index.isin(nfp)]), ("CPI", d_pnc[d_pnc.index.isin(cpi)]), ("FOMC", d_pnc[d_pnc.index.isin(fomc)])] | |
| 937 | +for k, (lab, s) in enumerate(groups2): | |
| 938 | + jitter = (np.random.RandomState(k).rand(len(s)) - 0.5) * 0.3 | |
| 939 | + axes[1].scatter(np.full(len(s), k) + jitter, s.abs().values, s=10, color=PAL[k], alpha=0.8) | |
| 940 | + axes[1].hlines(s.abs().mean(), k - 0.3, k + 0.3, color="black", lw=1.2) | |
| 941 | +axes[1].set_xticks(range(4)); axes[1].set_xticklabels([g[0] for g in groups2]); axes[1].set_ylabel(r"$|\Delta p_{\mathrm{No\ change}}|$ (pp)") | |
| 942 | +axes[1].set_title("B. ``No change'' state price", loc="left") | |
| 943 | +fig.tight_layout() | |
| 944 | +save_fig(fig, "fig5_event_study_cars") | |
| 945 | + | |
| 946 | +# fig7 Granger p-value heatmap (AIC lag) | |
| 947 | +mat = pd.DataFrame(np.nan, index=panel.columns, columns=panel.columns) | |
| 948 | +for x in panel.columns: | |
| 949 | + for y in panel.columns: | |
| 950 | + if x != y: | |
| 951 | + mat.loc[y, x] = gc_pair(y, x, p_main)[1] | |
| 952 | +fig, ax = plt.subplots(figsize=(4.6, 3.8)) | |
| 953 | +im = ax.imshow(mat.values.astype(float), cmap="Blues_r", vmin=0, vmax=0.5) | |
| 954 | +ax.set_xticks(range(5)); ax.set_xticklabels([names[c].replace("$\\Delta\\mathbb{E}^{\\mathbb{Q}}[\\Delta r]$", "Fed") for c in panel.columns], rotation=30, ha="right") | |
| 955 | +ax.set_yticks(range(5)); ax.set_yticklabels([names[c].replace("$\\Delta\\mathbb{E}^{\\mathbb{Q}}[\\Delta r]$", "Fed") for c in panel.columns]) | |
| 956 | +ax.set_xlabel("Causing variable (lagged)"); ax.set_ylabel("Caused variable"); ax.grid(False) | |
| 957 | +for i in range(5): | |
| 958 | + for j in range(5): | |
| 959 | + v = mat.values[i, j] | |
| 960 | + if not np.isnan(v): | |
| 961 | + ax.text(j, i, f"{v:.2f}", ha="center", va="center", fontsize=8, color="white" if v < 0.2 else "black") | |
| 962 | +fig.colorbar(im, ax=ax, label=f"Granger $p$-value, VAR({p_main})", shrink=0.8) | |
| 963 | +save_fig(fig, "fig7_granger_heatmap") | |
| 964 | +STATS["granger"]["full_matrix_p"] = mat.astype(float).round(4).to_dict() | |
| 965 | + | |
| 966 | +# fig9 volatility | |
| 967 | +fig, axes = plt.subplots(2, 1, figsize=(6.5, 4.6), sharex=True) | |
| 968 | +axes[0].bar(r_nc.index, r_nc.values, width=1, color=PAL[0]); axes[0].set_ylabel("Log return (%)"); axes[0].set_title("A. Daily log return, ``No change''", loc="left") | |
| 969 | +for lab, col, ls_ in [("GARCH(1,1), normal", PAL[0], "-"), ("GJR-GARCH(1,1), Student-$t$", PAL[1], "--")]: | |
| 970 | + cv = garch_fits[lab].conditional_volatility | |
| 971 | + axes[1].plot(cv.index, cv.values, color=col, ls=ls_, label=lab) | |
| 972 | +axes[1].set_ylabel("Conditional SD (%)"); axes[1].legend(frameon=False); axes[1].set_title("B. Conditional volatility", loc="left") | |
| 973 | +axes[1].xaxis.set_major_formatter(mdates.DateFormatter("%b %Y")) | |
| 974 | +save_fig(fig, "fig9_volatility") | |
| 975 | + | |
| 976 | +# fig10 liquidity: Roll spread + order-book depth | |
| 977 | +fig, axes = plt.subplots(1, 2, figsize=(6.5, 3.2)) | |
| 978 | +axes[0].plot(roll["No change"].index, roll["No change"].values * 100, color=PAL[0], label="No change") | |
| 979 | +axes[0].plot(roll["25 bps decrease"].index, roll["25 bps decrease"].values * 100, color=PAL[1], ls="--", label="25 bps decrease") | |
| 980 | +axes[0].set_ylabel("Roll spread estimate (cents)"); axes[0].legend(frameon=False); axes[0].set_title("A. Roll (1984) estimator, 20-day window", loc="left") | |
| 981 | +axes[0].xaxis.set_major_formatter(mdates.DateFormatter("%b")) | |
| 982 | +for i, c in enumerate(STATES): | |
| 983 | + path = DATA_RAW_POLY / f"order_book_{[m for m in fed_mk if m['name']==c][0]['yes_token'][:16]}.json" | |
| 984 | + d = json.load(open(path)) | |
| 985 | + bids = sorted([(float(b["price"]), float(b["size"])) for b in d["bids"]], reverse=True) | |
| 986 | + asks = sorted([(float(a["price"]), float(a["size"])) for a in d["asks"]]) | |
| 987 | + mid = ob[c]["mid"] | |
| 988 | + xb = [(mid - p) * 100 for p, _ in bids]; yb = np.cumsum([p * s for p, s in bids]) / 1e3 | |
| 989 | + xa = [(p - mid) * 100 for p, _ in asks]; ya = np.cumsum([p * s for p, s in asks]) / 1e3 | |
| 990 | + axes[1].step(xb, yb, where="post", color=PAL[i], ls="--", lw=1) | |
| 991 | + axes[1].step(xa, ya, where="post", color=PAL[i], ls="-", lw=1, label=c) | |
| 992 | +axes[1].set_xscale("log"); axes[1].set_xlim(0.05, 100); axes[1].set_yscale("log") | |
| 993 | +axes[1].set_xlabel("Distance from midpoint (cents)"); axes[1].set_ylabel("Cumulative depth (USD 000)") | |
| 994 | +axes[1].legend(frameon=False, fontsize=6, loc="lower right"); axes[1].set_title("B. Order book, 22 May 2026 (ask solid, bid dashed)", loc="left") | |
| 995 | +fig.tight_layout() | |
| 996 | +save_fig(fig, "fig10_liquidity") | |
| 997 | + | |
| 998 | +# fig11 election | |
| 999 | +fig, axes = plt.subplots(2, 1, figsize=(6.5, 5.0), sharex=True, gridspec_kw={"height_ratios": [2, 1]}) | |
| 1000 | +for i, c in enumerate(["Donald Trump", "Kamala Harris", "Joe Biden", "Michelle Obama", "Robert F. Kennedy Jr."]): | |
| 1001 | + axes[0].plot(election.index, election[c], color=PAL[i], ls=LS[i], label=c) | |
| 1002 | +for lab, d0 in ELECTION_KEY_DATES.items(): | |
| 1003 | + axes[0].axvline(pd.Timestamp(d0), color="0.6", lw=0.6, ls=":") | |
| 1004 | + axes[0].text(pd.Timestamp(d0), 0.98, lab, rotation=90, fontsize=6, va="top", ha="right", color="0.3") | |
| 1005 | +axes[0].set_ylabel("Price (USDC)"); axes[0].legend(frameon=False, ncol=2, loc="upper left", fontsize=7); axes[0].set_ylim(0, 1.0) | |
| 1006 | +axes[1].plot(sigma_el.index, sigma_el.values, color=PAL[0]); axes[1].axhline(1, color="black", lw=0.8) | |
| 1007 | +axes[1].plot(sigma_el.index, lower_el, color=PAL[1], ls="--", lw=0.9) | |
| 1008 | +axes[1].set_ylabel(r"$\Sigma_t$, 17 contracts"); axes[1].set_ylim(0.9, 1.1) | |
| 1009 | +axes[1].xaxis.set_major_locator(mdates.MonthLocator()); axes[1].xaxis.set_major_formatter(mdates.DateFormatter("%b")) | |
| 1010 | +axes[1].set_xlabel("2024") | |
| 1011 | +save_fig(fig, "fig11_election_case_study") | |
| 1012 | + | |
| 1013 | +# fig12 deviation distribution | |
| 1014 | +fig, axes = plt.subplots(1, 2, figsize=(6.5, 2.9)) | |
| 1015 | +dev = sigma - 1 | |
| 1016 | +axes[0].hist(dev.values * 100, bins=30, color=PAL[0], edgecolor="white"); axes[0].axvline(0, color="black", lw=0.8) | |
| 1017 | +axes[0].axvline(0.5, color=PAL[1], ls="--", lw=0.8); axes[0].set_xlabel(r"$\Sigma_t-1$ (pp), Fed group"); axes[0].set_ylabel("Days") | |
| 1018 | +axes[0].set_title("A. Fed June 2026", loc="left") | |
| 1019 | +dev_el = sigma_el - 1 | |
| 1020 | +axes[1].hist(dev_el.values * 100, bins=30, color=PAL[0], edgecolor="white"); axes[1].axvline(0, color="black", lw=0.8) | |
| 1021 | +axes[1].set_xlabel(r"$\Sigma_t-1$ (pp), election group"); axes[1].set_title("B. Election 2024", loc="left") | |
| 1022 | +fig.tight_layout() | |
| 1023 | +save_fig(fig, "fig12_arbitrage_violations") | |
| 1024 | + | |
| 1025 | + | |
| 1026 | +# ---------------------------------------------------------------------------- | |
| 1027 | +# 11b. Sensitivity checks reported in Section 7 | |
| 1028 | +# ---------------------------------------------------------------------------- | |
| 1029 | +SENS = {} | |
| 1030 | +# (a) announcement tests excluding the two largest FOMC days | |
| 1031 | +big2 = d_pnc.abs().nlargest(2).index | |
| 1032 | +mask_ex = ~d_pnc.index.isin(big2) | |
| 1033 | +c_ex = compare(d_pnc[mask_ex], is_ann[mask_ex], "All releases ex 2 largest FOMC days") | |
| 1034 | +c_ex_eq = compare(d_eq[mask_ex], is_ann[mask_ex], "All releases ex 2 largest FOMC days") | |
| 1035 | +SENS["ex_two_largest_days"] = {"days": [str(x.date()) for x in big2], "pnc": c_ex, "eq": c_ex_eq} | |
| 1036 | +# (b) cost allowance of 1 cent on the complete set | |
| 1037 | +tau_f = (RESOLUTION_FED - sigma.index).days.values / 365.0 | |
| 1038 | +r_f = dff.reindex(sigma.index).ffill().bfill().values / 100.0 | |
| 1039 | +low_f = np.exp(-r_f * tau_f) | |
| 1040 | +SENS["share_inside_band_1c"] = float(((sigma.values >= low_f - 0.01) & (sigma.values <= 1.01)).mean()) | |
| 1041 | +SENS["share_inside_band_roll"] = float(((sigma.values >= low_f - roll["No change"].reindex(sigma.index).fillna(0).values) & (sigma.values <= 1 + roll["No change"].reindex(sigma.index).fillna(0).values)).mean()) | |
| 1042 | +# (f) lower bound with the target-range upper bound (3.75%) instead of DFF | |
| 1043 | +low_ub = np.exp(-0.0375 * tau_f) | |
| 1044 | +SENS["max_abs_diff_lower_bound_ub_vs_dff"] = float(np.abs(low_ub - low_f).max()) | |
| 1045 | +# (e) ±75 valuation of open-ended states | |
| 1046 | +eq75 = pd.Series(q.values @ np.array([-75.0, -25.0, 0.0, 25.0, 75.0]), index=q.index) | |
| 1047 | +d_eq75 = eq75.diff().dropna() | |
| 1048 | +SENS["eq75_corr_with_eq50"] = float(np.corrcoef(d_eq75.values, d_eq.values)[0, 1]) | |
| 1049 | +SENS["eq75_sd_ratio"] = float(d_eq75.std() / d_eq.std()) | |
| 1050 | +SENS["eq75_all_releases"] = compare(d_eq75, is_ann, "All releases, ±75") | |
| 1051 | +# (c) Granger with Δp(No change) as the Polymarket variable | |
| 1052 | +panel_pnc = panel.copy(); panel_pnc["Fed"] = (pnc_grid.diff() * 100).reindex(panel.index) | |
| 1053 | +panel_pnc = panel_pnc.dropna() | |
| 1054 | +def gc_pair_df(df, y, x, p): | |
| 1055 | + r = VAR(df[[y, x]]).fit(p); t = r.test_causality(y, [x], kind="f"); return float(t.test_statistic), float(t.pvalue) | |
| 1056 | +SENS["granger_pnc"] = {f"{x}->{y}": {str(p): gc_pair_df(panel_pnc, y, x, p) for p in [1, 2]} for x, y in pairs} | |
| 1057 | +# (d) half-sample Granger at p=1 | |
| 1058 | +h = len(panel) // 2 | |
| 1059 | +SENS["granger_halves_p1"] = {} | |
| 1060 | +for lab, df in [("first_half", panel.iloc[:h]), ("second_half", panel.iloc[h:])]: | |
| 1061 | + SENS["granger_halves_p1"][lab] = {f"{x}->{y}": gc_pair_df(df, y, x, 1) for x, y in pairs} | |
| 1062 | + SENS["granger_halves_p1"][lab]["T"] = int(len(df)) | |
| 1063 | +# (g) election facts | |
| 1064 | +SENS["trump_max_date"] = str(tr.idxmax().date()); SENS["trump_max"] = float(tr.max()) | |
| 1065 | +SENS["nochange_mar17"] = float(fed_main["No change"].loc["2026-03-17"]); SENS["nochange_mar18"] = float(fed_main["No change"].loc["2026-03-18"]) | |
| 1066 | +SENS["cut25_mar17"] = float(fed_main["25 bps decrease"].loc["2026-03-17"]); SENS["cut25_mar18"] = float(fed_main["25 bps decrease"].loc["2026-03-18"]) | |
| 1067 | +SENS["n_release_days"] = int(is_ann.sum()); SENS["n_other_days"] = int((~is_ann).sum()) | |
| 1068 | +STATS["sensitivity"] = SENS | |
| 1069 | + | |
| 1070 | +# ---------------------------------------------------------------------------- | |
| 1071 | +# 12. Save stats | |
| 1072 | +# ---------------------------------------------------------------------------- | |
| 1073 | +def _clean(o): | |
| 1074 | + if isinstance(o, dict): | |
| 1075 | + return {str(k): _clean(v) for k, v in o.items()} | |
| 1076 | + if isinstance(o, (list, tuple)): | |
| 1077 | + return [_clean(v) for v in o] | |
| 1078 | + if isinstance(o, (np.floating, float)): | |
| 1079 | + return None if np.isnan(o) else float(o) | |
| 1080 | + if isinstance(o, (np.integer,)): | |
| 1081 | + return int(o) | |
| 1082 | + if isinstance(o, (pd.Timestamp,)): | |
| 1083 | + return str(o) | |
| 1084 | + return o | |
| 1085 | + | |
| 1086 | + | |
| 1087 | +(ROOT / "results" / "revision_stats.json").write_text(json.dumps(_clean(STATS), indent=2)) | |
| 1088 | +fed_main.assign(state_price_sum=sigma, EQ_bps=eq).to_parquet(ROOT / "data" / "processed" / "fed_june2026_state_prices_aligned.parquet") | |
| 1089 | +election.to_parquet(ROOT / "data" / "processed" / "election_2024_panel_aligned.parquet") | |
| 1090 | +panel.to_parquet(ROOT / "data" / "processed" / "trading_day_panel.parquet") | |
| 1091 | +print(json.dumps(_clean({k: STATS[k] for k in ["fed", "completeness", "orderbook", "announcement", "granger", "garch", "har", "roll", "election", "events"]}), indent=1)[:20000]) | |
modified
scripts/run_analysis.py
+5 −1
@@ -1,6 +1,10 @@ | ||
| 1 | −"""Master analysis pipeline for the Polymarket Arrow-Debreu paper. | |
| 1 | +"""Master analysis pipeline for the Polymarket Arrow-Debreu paper (v1.0 pipeline). | |
| 2 | 2 | |
| 3 | 3 | Usage: python scripts/run_analysis.py [--skip-data] [--skip-models] [--skip-paper] |
| 4 | + | |
| 5 | +Revision 2026-10-17: phases 1-2 (download, cleaning) are still used; the tables and | |
| 6 | +figures of the revised paper (v1.1) are produced by ``scripts/02_revision_analysis.py``, | |
| 7 | +which supersedes phase 3 of this script. Phase 3 is kept for reproducibility of v1.0. | |
| 4 | 8 | """ |
| 5 | 9 | |
| 6 | 10 | from __future__ import annotations |
modified
src/cleaning/polymarket_cleaner.py
+4 −1
@@ -72,7 +72,10 @@ def load_price_history(token_id: str) -> pd.DataFrame: | ||
| 72 | 72 | return pd.DataFrame(columns=["price"]) |
| 73 | 73 | |
| 74 | 74 | df = pd.DataFrame(raw) |
| 75 | − df["date"] = pd.to_datetime(df["t"], unit="s", utc=True).dt.normalize() | |
| 75 | + # The CLOB daily point is stamped at 00:00 UTC of the *following* day and | |
| 76 | + # represents the close of the preceding UTC day; label it by the day it | |
| 77 | + # closes (revision 2026-10-17; the earlier code labelled it one day late). | |
| 78 | + df["date"] = (pd.to_datetime(df["t"], unit="s", utc=True) - pd.Timedelta(minutes=5)).dt.normalize() | |
| 76 | 79 | df["price"] = df["p"].astype(float) |
| 77 | 80 | # Some data may have duplicates for the same day (intra-day ticks); |
| 78 | 81 | # keep the last observation per calendar day. |
modified
src/config.py
+5 −2
@@ -40,8 +40,11 @@ FED_JUNE_2026_MARKETS = { | ||
| 40 | 40 | |
| 41 | 41 | ELECTION_2024_EVENT_ID = 903193 |
| 42 | 42 | ELECTION_2024_MARKETS = { |
| 43 | + # Token IDs are taken from event_903193.json by the cleaner; the entries below are | |
| 44 | + # for reference only. (Revision 2026-10-17: the earlier file listed market 253596, | |
| 45 | + # which is Ron DeSantis, under "Kamala Harris"; Harris is market 253597.) | |
| 43 | 46 | "Donald Trump": {"id": "253591", "token": "21742633143463906290569050155826241533067272736897614950488156847949938836455"}, |
| 44 | − "Kamala Harris": {"id": "253596", "token": "69236923620165904972967806948244475009793726478846816743760350969833698291913"}, | |
| 47 | + "Kamala Harris": {"id": "253597", "token": "69236923620077691027083946871148646972013979124138068211264286564397702153117"}, | |
| 45 | 48 | } |
| 46 | 49 | |
| 47 | 50 | FED_CLOSED_MARKETS = { |
@@ -53,7 +56,7 @@ FED_CLOSED_MARKETS = { | ||
| 53 | 56 | |
| 54 | 57 | KEY_BINARY_MARKETS = [ |
| 55 | 58 | {"id": "253591", "name": "Trump wins 2024", "category": "politics"}, |
| 56 | − {"id": "253596", "name": "Harris wins 2024", "category": "politics"}, | |
| 59 | + {"id": "253597", "name": "Harris wins 2024", "category": "politics"}, | |
| 57 | 60 | {"id": "906974", "name": "Fed June no change", "category": "economics"}, |
| 58 | 61 | ] |
| 59 | 62 | |
modified
src/models/price_discovery.py
+4 −1
@@ -33,7 +33,10 @@ def granger_causality_matrix( | ||
| 33 | 33 | result = grangercausalitytests( |
| 34 | 34 | clean[[caused, causing]].values, maxlag=max_lag, verbose=False |
| 35 | 35 | ) |
| 36 | − best_lag = min(result.keys(), key=lambda k: result[k][0]["ssr_ftest"][1]) | |
| 36 | + # Lag chosen by the AIC of the unrestricted bivariate regression | |
| 37 | + # (revision 2026-10-17). The earlier code selected the lag with | |
| 38 | + # the smallest p-value, a search that inflates rejection rates. | |
| 39 | + best_lag = min(result.keys(), key=lambda k: result[k][1][1].aic) | |
| 37 | 40 | f_stat = result[best_lag][0]["ssr_ftest"][0] |
| 38 | 41 | p_val = result[best_lag][0]["ssr_ftest"][1] |
| 39 | 42 | f_mat.loc[caused, causing] = f_stat |
| 40 | 43 | |