SPB Git

Repository Public Research preview

Makefile 4.0 KB 88 lines make

1# =============================================================================2# Author: Simon-Pierre Boucher3# Contact: simon-pierre.boucher@uqo.ca4# =============================================================================5# WP7 — Options-Implied Information Content6#7#   make pipeline   run every analysis that works from the processed parquets8#   make extract    raw → processed (requires the external DuckDB stores)9#   make figures    legacy supplementary figures (scripts/12) + manuscript figures and float fragments (scripts/33)10#   make paper      compile the LaTeX working paper (latexmk)11#   make all        pipeline + figures + paper12#   make test       regenerate every result into _verify/results and compare with13#                   the committed files (rtol 1e-9; 1e-3 for the seeded bootstrap CSVs)14#   make revision   Stage D (2026-11-04) analyses from the parquets (scripts 15-18, 20-23, 30, tables_*)1516PY := python31718ANALYSIS_SCRIPTS := \19	scripts/02_rq1_return_predictability.py \20	scripts/03_rq2_rv_forecasting.py \21	scripts/04_rq3_correlation_divergence.py \22	scripts/05_rq4_greeks_decay_magnets.py \23	scripts/06_rq5_ml_rv_forecast.py \24	scripts/07_descriptive_stats.py \25	scripts/08_subperiod_regime.py \26	scripts/09_portfolio_sorts.py \27	scripts/10_robustness.py \28	scripts/11_granger_var.py \29	scripts/13_extended_robustness.py \30	scripts/14_make_paper_tables.py3132.PHONY: all pipeline extract figures paper clean-paper test revision tables3334# Legacy mode: every analysis script reproduces the committed files of35# HEAD 3e1fc1c byte-for-byte (the default mode writes the *_v2 files of36# the 2026-11-04 revision next to them).37LEGACY_SCRIPTS := scripts/02_rq1_return_predictability.py scripts/03_rq2_rv_forecasting.py \38	scripts/04_rq3_correlation_divergence.py scripts/05_rq4_greeks_decay_magnets.py \39	scripts/07_descriptive_stats.py scripts/08_subperiod_regime.py scripts/09_portfolio_sorts.py \40	scripts/10_robustness.py scripts/11_granger_var.py scripts/13_extended_robustness.py41REVISION_SCRIPTS := scripts/02_rq1_return_predictability.py scripts/03_rq2_rv_forecasting.py \42	scripts/04_rq3_correlation_divergence.py scripts/05_rq4_greeks_decay_magnets.py \43	scripts/07_descriptive_stats.py scripts/08_subperiod_regime.py scripts/09_portfolio_sorts.py \44	scripts/10_robustness.py scripts/11_granger_var.py scripts/13_extended_robustness.py \45	scripts/15_factor_alphas.py scripts/16_skew_measures.py scripts/17_specification_curve.py \46	scripts/18_multiple_testing.py scripts/20_rq2_subperiod_oos.py scripts/21_coverage_reduced_model.py \47	scripts/22_quantile_bootstrap.py scripts/23_rq2_null_mc.py scripts/24_data_inventory.py \48	scripts/30_intervals_mde.py scripts/31_inline_numbers.py49TABLE_SCRIPTS := scripts/14_make_paper_tables.py scripts/tables_rq1.py scripts/tables_rq2.py \50	scripts/tables_rq3.py scripts/tables_rq4.py scripts/tables_ts.py scripts/tables_e.py51ENV := OMP_NUM_THREADS=4 OPENBLAS_NUM_THREADS=4 MKL_NUM_THREADS=4 VECLIB_MAXIMUM_THREADS=45253all: pipeline figures paper5455extract:56	$(PY) scripts/01_extract_data.py5758pipeline:59	@set -e; for s in $(ANALYSIS_SCRIPTS); do \60		echo "\n=== $$s ==="; \61		$(PY) $$s || { code=$$?; \62			if [ $$code -eq 2 ]; then echo "(skipped: raw data unavailable)"; \63			else exit $$code; fi; }; \64	done6566figures:67	$(PY) scripts/12_make_figures.py68	$(PY) scripts/33_make_exhibit_figures.py6970paper:71	$(MAKE) -C paper7273clean-paper:74	$(MAKE) -C paper clean7576test:77	@rm -rf _verify/results && mkdir -p _verify/results78	@cp results/rq4_greeks_decay.csv results/rq5_model_comparison.csv results/rq5_feature_importance.csv results/descriptive_options_quality.csv _verify/results/79	@set -e; for s in $(LEGACY_SCRIPTS); do echo "\n=== $$s --legacy ==="; $(ENV) WP7_RESULTS_DIR=$$PWD/_verify/results $(PY) $$s --legacy; done80	$(PY) docs/verify/compare_results.py results _verify/results81	$(PY) tests/test_inference.py8283revision:84	@set -e; for s in $(REVISION_SCRIPTS); do echo "\n=== $$s ==="; $(ENV) $(PY) $$s; done8586tables:87	@set -e; for s in $(TABLE_SCRIPTS); do echo "\n=== $$s ==="; $(PY) $$s; done88
Files review-20261103
Menu

Theme