Skip to content

Sharpen README header: paradox-first tagline, numeric scoreboard, pun… #39

Sharpen README header: paradox-first tagline, numeric scoreboard, pun…

Sharpen README header: paradox-first tagline, numeric scoreboard, pun… #39

Workflow file for this run

name: tests
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install dependencies
run: |
python -m pip install --upgrade pip
# Single dependency source of truth: pyproject.toml, installed through the
# requirements.txt alias (-e .[studies,dev]). That covers the engine, the
# econometrics/ML stack behind the studies (scipy/statsmodels/arch/scikit-learn)
# and pytest. The test-suite itself stays offline: network/real-data tests are
# cache-gated and skip when the cache is absent.
pip install -r requirements.txt
- name: Study-construction gate (every published study, same construction)
run: python tools/check_study_completeness.py
- name: Core engine test-suite (quantlab, offline, deterministic)
run: pytest -q
- name: Study 02 — Falling-Knife test-suite
run: pytest -q studies/02-falling-knife/tests
- name: Study 03 — Fear-Gauge test-suite
run: pytest -q studies/03-fear-gauge/tests
- name: Study 04 — Social-Oracle test-suite
run: pytest -q studies/04-social-oracle/tests
- name: Study 05 — Twin-Spread test-suite
run: pytest -q studies/05-twin-spread/tests
- name: Study 09 — Phantom-Kernel test-suite
run: pytest -q studies/09-phantom-kernel/tests
- name: Study 11 — Vanishing-Penny test-suite
run: pytest -q studies/11-vanishing-penny/tests
- name: Study 16 — Storm-Shy test-suite
run: pytest -q studies/16-storm-shy/tests
- name: Study 06 — Clockwork-Vol test-suite
run: pytest -q studies/06-clockwork-vol/tests
- name: Study 07 — Coiled-Spring test-suite
run: pytest -q studies/07-coiled-spring/tests
- name: Study 08 — True-Strength test-suite
run: pytest -q studies/08-true-strength/tests
- name: Study 10 — Markov-Mint test-suite
run: pytest -q studies/10-markov-mint/tests
- name: Study 12 — Paper-Prophet test-suite
run: pytest -q studies/12-paper-prophet/tests
- name: Study 13 — Crimson-Hour test-suite
run: pytest -q studies/13-crimson-hour/tests
- name: Study 14 — Gamma-Gospel test-suite
run: pytest -q studies/14-gamma-gospel/tests
- name: Study 15 — Sigma-Sleight test-suite
run: pytest -q studies/15-sigma-sleight/tests
- name: Study 17 — Glass-Ceiling test-suite
run: pytest -q studies/17-glass-ceiling/tests
- name: Study 18 — Dull-Roar test-suite
run: pytest -q studies/18-dull-roar/tests
- name: Study 19 — Rubber-Band test-suite
run: pytest -q studies/19-rubber-band/tests
- name: Study 20 — Freight-Train test-suite
run: pytest -q studies/20-freight-train/tests
- name: Study 21 — Fools-Gold test-suite
run: pytest -q studies/21-fools-gold/tests
- name: Study 22 — Crystal-Ball test-suite
run: pytest -q studies/22-crystal-ball/tests
- name: Study 23 — Broken-Tether test-suite
run: pytest -q studies/23-broken-tether/tests
- name: Study 24 — Stampede test-suite
run: pytest -q studies/24-stampede/tests
- name: Study 25 — Clean-Slate test-suite
run: pytest -q studies/25-clean-slate/tests
- name: Study 26 — Sand-Castle test-suite
run: pytest -q studies/26-sand-castle/tests
- name: Study 27 — Steamroller test-suite
run: pytest -q studies/27-steamroller/tests
- name: Study 28 — Carousel test-suite
run: pytest -q studies/28-carousel/tests
- name: Study 29 — Hedgers-Toll test-suite
run: pytest -q studies/29-hedgers-toll/tests
- name: Study 30 — House-Edge test-suite
run: pytest -q studies/30-house-edge/tests
- name: Study 31 — Trade-Winds test-suite
run: pytest -q studies/31-trade-winds/tests
- name: Study 32 — Rip-Tide test-suite
run: pytest -q studies/32-rip-tide/tests
- name: Study 33 — Slingshot test-suite
run: pytest -q studies/33-slingshot/tests
- name: Study 34 — Aftershock test-suite
run: pytest -q studies/34-aftershock/tests
- name: Study 35 — Contango test-suite
run: pytest -q studies/35-contango/tests
- name: Study 36 — Greenback test-suite
run: pytest -q studies/36-greenback/tests
- name: Study 37 — Barometer test-suite
run: pytest -q studies/37-barometer/tests
- name: Study 38 — Chorus test-suite
run: pytest -q studies/38-chorus/tests
- name: Study 39 — Black-Box test-suite
run: pytest -q studies/39-black-box/tests
- name: Study 40 — Paper-Tiger test-suite
run: pytest -q studies/40-paper-tiger/tests
- name: Study 41 — Hangover test-suite
run: pytest -q studies/41-hangover/tests
- name: Study 42 — Last-Call test-suite
run: pytest -q studies/42-last-call/tests
- name: Study 43 — Free-Lunch test-suite
run: pytest -q studies/43-free-lunch/tests
- name: Study 44 — Growth-Spurt test-suite
run: pytest -q studies/44-growth-spurt/tests
- name: Study 45 — Vanishing-Act test-suite
run: pytest -q studies/45-vanishing-act/tests
- name: Study 46 — Bargain-Bin test-suite
run: pytest -q studies/46-bargain-bin/tests
- name: Study 47 — Paper-Moon test-suite
run: pytest -q studies/47-paper-moon/tests
- name: Study 48 — Groundhog test-suite
run: pytest -q studies/48-groundhog/tests
- name: Study 49 — Black-Gold test-suite
run: pytest -q studies/49-black-gold/tests
- name: Study 50 — High-Water test-suite
run: pytest -q studies/50-high-water/tests
- name: Study 51 — Blue-Chip test-suite
run: pytest -q studies/51-blue-chip/tests
- name: Study 52 — Smoke-Screen test-suite
run: pytest -q studies/52-smoke-screen/tests
- name: Study 53 — Jackpot test-suite
run: pytest -q studies/53-jackpot/tests
- name: Study 54 — Static test-suite
run: pytest -q studies/54-static/tests
- name: Study 55 — Summer-Lull test-suite
run: pytest -q studies/55-summer-lull/tests
- name: Study 56 — Tide-Table test-suite
run: pytest -q studies/56-tide-table/tests
- name: Study 57 — Yield-Trap test-suite
run: pytest -q studies/57-yield-trap/tests
- name: Study 58 — Bunker test-suite
run: pytest -q studies/58-bunker/tests
- name: Study 59 — Downhill test-suite
run: pytest -q studies/59-downhill/tests
- name: Study 60 — Long-Shot test-suite
run: pytest -q studies/60-long-shot/tests
- name: Study 61 — Slow-Burn test-suite
run: pytest -q studies/61-slow-burn/tests
- name: Study 62 — Premium-Seller test-suite
run: pytest -q studies/62-premium-seller/tests
- name: Study 63 — Free-Fall test-suite
run: pytest -q studies/63-free-fall/tests
- name: Study 64 — Share-Shuffle test-suite
run: pytest -q studies/64-share-shuffle/tests
- name: Study 65 — Scorecard test-suite
run: pytest -q studies/65-scorecard/tests
- name: Study 66 — Inverted test-suite
run: pytest -q studies/66-inverted/tests
- name: Study 67 — Fed-Drift test-suite
run: pytest -q studies/67-fed-drift/tests
- name: Study 68 — All-Weather test-suite
run: pytest -q studies/68-all-weather/tests
- name: Study 69 — Safe-Haven test-suite
run: pytest -q studies/69-safe-haven/tests
- name: Study 70 — Digital-Gold test-suite
run: pytest -q studies/70-digital-gold/tests
- name: Study 71 — Ambush test-suite
run: pytest -q studies/71-ambush/tests
- name: Study 72 — Loaded-Dice test-suite
run: pytest -q studies/72-loaded-dice/tests
- name: Study 73 — First-Light test-suite
run: pytest -q studies/73-first-light/tests
- name: Study 74 — Mind-the-Gap test-suite
run: pytest -q studies/74-mind-the-gap/tests
- name: Study 75 — Knee-Jerk test-suite
run: pytest -q studies/75-knee-jerk/tests
- name: Study 76 — Rice-Paper test-suite
run: pytest -q studies/76-rice-paper/tests
- name: Study 77 — Golden-Mean test-suite
run: pytest -q studies/77-golden-mean/tests
- name: Study 78 — Crossed-Wires test-suite
run: pytest -q studies/78-crossed-wires/tests
- name: Study 79 — Sleigh-Ride test-suite
run: pytest -q studies/79-sleigh-ride/tests
- name: Study 80 — Cold-Open test-suite
run: pytest -q studies/80-cold-open/tests
- name: Study 81 — Four-Year-Itch test-suite
run: pytest -q studies/81-four-year-itch/tests
- name: Study 82 — Witching-Hour test-suite
run: pytest -q studies/82-witching-hour/tests
- name: Study 83 — Half-Life test-suite
run: pytest -q studies/83-half-life/tests
- name: Study 84 — Moon-Math test-suite
run: pytest -q studies/84-moon-math/tests
- name: Study 85 — Dr-Copper test-suite
run: pytest -q studies/85-dr-copper/tests
- name: Study 86 — Tail-Radar test-suite
run: pytest -q studies/86-tail-radar/tests
- name: Study 87 — Center-Line test-suite
run: pytest -q studies/87-center-line/tests
- name: Study 88 — Dogs-of-the-Dow test-suite
run: pytest -q studies/88-dogs-of-the-dow/tests
- name: Study 89 — Turn-of-the-Month test-suite
run: pytest -q studies/89-turn-of-the-month/tests
- name: Study 90 — Weekend test-suite
run: pytest -q studies/90-weekend/tests
- name: Study 91 — Death-Cross test-suite
run: pytest -q studies/91-death-cross/tests
- name: Study 92 — Easy-Money test-suite
run: pytest -q studies/92-easy-money/tests
- name: Study 93 — Round-Numbers test-suite
run: pytest -q studies/93-round-numbers/tests
- name: Study 94 — Level-Pegging test-suite
run: pytest -q studies/94-level-pegging/tests
- name: Study 95 — Holiday-Cheer test-suite
run: pytest -q studies/95-holiday-cheer/tests
- name: Study 96 — New-Year-Pop test-suite
run: pytest -q studies/96-new-year-pop/tests
- name: Study 97 — Balancing-Act test-suite
run: pytest -q studies/97-balancing-act/tests
- name: Study 98 — High-Noon test-suite
run: pytest -q studies/98-high-noon/tests
- name: Study 99 — Safety-Net test-suite
run: pytest -q studies/99-safety-net/tests
- name: Study 100 — Melting-Ice test-suite
run: pytest -q studies/100-melting-ice/tests
- name: Study 101 — Slow-and-Steady test-suite
run: pytest -q studies/101-slow-and-steady/tests
- name: Study 102 — Free-Rebalance test-suite
run: pytest -q studies/102-free-rebalance/tests
- name: Study 103 — Turtle-Trader test-suite
run: pytest -q studies/103-turtle-trader/tests
- name: Study 104 — Bollinger-Reversion test-suite
run: pytest -q studies/104-bollinger-reversion/tests
- name: Study 105 — Coppock-Curve test-suite
run: pytest -q studies/105-coppock-curve/tests
- name: Study 106 — Supertrend test-suite
run: pytest -q studies/106-supertrend/tests
- name: Study 107 — Stochastic-Oscillator test-suite
run: pytest -q studies/107-stochastic-oscillator/tests
- name: Study 108 — ADX-Filter test-suite
run: pytest -q studies/108-adx-filter/tests
- name: Study 109 — OBV-Divergence test-suite
run: pytest -q studies/109-obv-divergence/tests
- name: Study 110 — Faber-Timing test-suite
run: pytest -q studies/110-faber-timing/tests
- name: Study 111 — VIX-Term-Structure test-suite
run: pytest -q studies/111-vix-term-structure/tests
- name: Study 112 — Move-Index test-suite
run: pytest -q studies/112-move-index/tests
- name: Study 113 — Gold-Silver-Ratio test-suite
run: pytest -q studies/113-gold-silver-ratio/tests
- name: Study 114 — Dollar-Smile test-suite
run: pytest -q studies/114-dollar-smile/tests
- name: Study 115 — Credit-Spreads test-suite
run: pytest -q studies/115-credit-spreads/tests
- name: Study 116 — Power-Hour test-suite
run: pytest -q studies/116-power-hour/tests
- name: Study 117 — Pi-Cycle-Top test-suite
run: pytest -q studies/117-pi-cycle-top/tests
- name: Study 118 — Fed-Model test-suite
run: pytest -q studies/118-fed-model/tests
- name: Study 119 — Real-Rate-Regime test-suite
run: pytest -q studies/119-real-rate-regime/tests
- name: Study 120 — Excess-CAPE-Yield test-suite
run: pytest -q studies/120-excess-cape-yield/tests
- name: Study 121 — Magic-Formula test-suite
run: pytest -q studies/121-magic-formula/tests
- name: Study 122 — Gross-Profitability test-suite
run: pytest -q studies/122-gross-profitability/tests
- name: Study 123 — Altman-Z test-suite
run: pytest -q studies/123-altman-z/tests
- name: Study 124 — Cash-Flow-Yield test-suite
run: pytest -q studies/124-cash-flow-yield/tests
- name: Study 125 — Ichimoku-Cloud test-suite
run: pytest -q studies/125-ichimoku-cloud/tests
- name: Study 126 — Parabolic-SAR test-suite
run: pytest -q studies/126-parabolic-sar/tests
- name: Study 127 — Williams-R test-suite
run: pytest -q studies/127-williams-r/tests
- name: Study 128 — Keltner-Channel test-suite
run: pytest -q studies/128-keltner-channel/tests
- name: Study 129 — Heikin-Ashi test-suite
run: pytest -q studies/129-heikin-ashi/tests
- name: Study 130 — Vol-Risk-Premium test-suite
run: pytest -q studies/130-vol-risk-premium/tests
- name: Study 131 — Utilities-Canary test-suite
run: pytest -q studies/131-utilities-canary/tests
- name: Study 132 — Yield-Curve-Steepener test-suite
run: pytest -q studies/132-yield-curve-steepener/tests
- name: Study 133 — Crypto-Seasonality test-suite
run: pytest -q studies/133-crypto-seasonality/tests
- name: Study 134 — Bitcoin-Dominance test-suite
run: pytest -q studies/134-bitcoin-dominance/tests
- name: Study 135 — FOMC-Cycle test-suite
run: pytest -q studies/135-fomc-cycle/tests
- name: Study 136 — Mark-Twain test-suite
run: pytest -q studies/136-mark-twain/tests
- name: Study 137 — Mansfield-RS test-suite
run: pytest -q studies/137-mansfield-rs/tests
- name: Study 138 — Random-Forest test-suite
run: pytest -q studies/138-random-forest/tests
- name: Study 139 — AI-Powered-ETF test-suite
run: pytest -q studies/139-ai-powered-etf/tests
- name: Study 140 — Amihud-Illiquidity test-suite
run: pytest -q studies/140-amihud-illiquidity/tests
- name: Study 141 — Turnover-Anomaly test-suite
run: pytest -q studies/141-turnover-anomaly/tests
- name: Study 142 — Split-Drift test-suite
run: pytest -q studies/142-split-drift/tests
- name: Study 143 — Dividend-Capture test-suite
run: pytest -q studies/143-dividend-capture/tests
- name: Study 144 — Permanent-Portfolio test-suite
run: pytest -q studies/144-permanent-portfolio/tests
- name: Study 145 — Home-Bias test-suite
run: pytest -q studies/145-home-bias/tests
- name: Study 146 — Country-Momentum test-suite
run: pytest -q studies/146-country-momentum/tests
- name: Study 147 — FX-Momentum test-suite
run: pytest -q studies/147-fx-momentum/tests
- name: Study 148 — Lunar-Effect test-suite
run: pytest -q studies/148-lunar-effect/tests
- name: Study 149 — Daylight-Saving test-suite
run: pytest -q studies/149-daylight-saving/tests
- name: Study 150 — SAD-Effect test-suite
run: pytest -q studies/150-sad-effect/tests
- name: Study 151 — Stocks-For-Long-Run test-suite
run: pytest -q studies/151-stocks-for-long-run/tests
- name: Study 152 — Inflation-Hedge test-suite
run: pytest -q studies/152-inflation-hedge/tests
- name: Study 153 — Net-Operating-Assets test-suite
run: pytest -q studies/153-net-operating-assets/tests
- name: Study 154 — Leverage-Anomaly test-suite
run: pytest -q studies/154-leverage-anomaly/tests
- name: Study 155 — Asset-Turnover test-suite
run: pytest -q studies/155-asset-turnover/tests
- name: Study 156 — Martingale test-suite
run: pytest -q studies/156-martingale/tests
- name: Study 157 — Kelly-Sizing test-suite
run: pytest -q studies/157-kelly-sizing/tests
- name: Study 158 — Super-Bowl test-suite
run: pytest -q studies/158-super-bowl/tests
- name: Study 159 — Presidential-Party test-suite
run: pytest -q studies/159-presidential-party/tests
- name: Study 160 — Skyscraper-Curse test-suite
run: pytest -q studies/160-skyscraper-curse/tests
- name: Study 161 — Year-Ending-Five test-suite
run: pytest -q studies/161-year-ending-five/tests
- name: Study 162 — Rosh-Hashanah test-suite
run: pytest -q studies/162-rosh-hashanah/tests
- name: Study 163 — Friday-13th test-suite
run: pytest -q studies/163-friday-13th/tests
- name: Study 164 — Mercury-Retrograde test-suite
run: pytest -q studies/164-mercury-retrograde/tests
- name: Study 165 — Chinese-Zodiac test-suite
run: pytest -q studies/165-chinese-zodiac/tests
- name: Study 166 — First-Five-Days test-suite
run: pytest -q studies/166-first-five-days/tests
- name: Study 167 — Hindenburg-Omen test-suite
run: pytest -q studies/167-hindenburg-omen/tests
- name: Study 168 — Advance-Decline test-suite
run: pytest -q studies/168-advance-decline/tests
- name: Study 169 — Fluent-Tickers test-suite
run: pytest -q studies/169-fluent-tickers/tests
- name: Study 170 — Alphabetical-Bias test-suite
run: pytest -q studies/170-alphabetical-bias/tests
- name: Study 171 — Naive-1-Over-N test-suite
run: pytest -q studies/171-naive-1-over-n/tests
- name: Study 172 — Hundred-Minus-Age test-suite
run: pytest -q studies/172-hundred-minus-age/tests
- name: Study 173 — Four-Percent-Rule test-suite
run: pytest -q studies/173-four-percent-rule/tests
- name: Study 174 — Bitcoin-Rainbow test-suite
run: pytest -q studies/174-bitcoin-rainbow/tests
- name: Study 175 — Crypto-Weekend test-suite
run: pytest -q studies/175-crypto-weekend/tests
- name: Study 176 — Hot-Hand test-suite
run: pytest -q studies/176-hot-hand/tests
- name: Study 177 — Megacap-Concentration test-suite
run: pytest -q studies/177-megacap-concentration/tests
- name: Study 178 — CCI test-suite
run: pytest -q studies/178-cci/tests
- name: Study 179 — Aroon test-suite
run: pytest -q studies/179-aroon/tests
- name: Study 180 — TRIX test-suite
run: pytest -q studies/180-trix/tests
- name: Study 181 — Ultimate-Oscillator test-suite
run: pytest -q studies/181-ultimate-oscillator/tests
- name: Study 182 — Vortex-Indicator test-suite
run: pytest -q studies/182-vortex-indicator/tests
- name: Study 183 — Fisher-Transform test-suite
run: pytest -q studies/183-fisher-transform/tests
- name: Study 184 — Williams-Fractals test-suite
run: pytest -q studies/184-williams-fractals/tests
- name: Study 185 — Chande-Momentum test-suite
run: pytest -q studies/185-chande-momentum/tests
- name: Study 186 — Morning-Star test-suite
run: pytest -q studies/186-morning-star/tests
- name: Study 187 — Three-Soldiers test-suite
run: pytest -q studies/187-three-soldiers/tests
- name: Study 188 — Head-Shoulders test-suite
run: pytest -q studies/188-head-shoulders/tests
- name: Study 189 — Double-Top test-suite
run: pytest -q studies/189-double-top/tests
- name: Study 190 — NR7 test-suite
run: pytest -q studies/190-nr7/tests
- name: Study 191 — Leap-Year test-suite
run: pytest -q studies/191-leap-year/tests
- name: Study 192 — Tax-Day test-suite
run: pytest -q studies/192-tax-day/tests
- name: Study 193 — Window-Dressing test-suite
run: pytest -q studies/193-window-dressing/tests
- name: Study 194 — Turkey test-suite
run: pytest -q studies/194-turkey/tests
- name: Study 195 — Monthly-OpEx test-suite
run: pytest -q studies/195-monthly-opex/tests
- name: Study 196 — Long-Term-Reversal test-suite
run: pytest -q studies/196-long-term-reversal/tests
- name: Study 197 — Dividend-Payout-Ratio test-suite
run: pytest -q studies/197-dividend-payout-ratio/tests
- name: Study 198 — Cash-Holdings test-suite
run: pytest -q studies/198-cash-holdings/tests
- name: Study 199 — Sales-Growth test-suite
run: pytest -q studies/199-sales-growth/tests
- name: Study 200 — ROE-Quality test-suite
run: pytest -q studies/200-roe-quality/tests
- name: Study 201 — Dividend-Growth test-suite
run: pytest -q studies/201-dividend-growth/tests
- name: Study 202 — Fifty-Two-Week-Low test-suite
run: pytest -q studies/202-fifty-two-week-low/tests
- name: Study 203 — Golden-Butterfly test-suite
run: pytest -q studies/203-golden-butterfly/tests
- name: Study 204 — Talmud-Portfolio test-suite
run: pytest -q studies/204-talmud-portfolio/tests
- name: Study 205 — Three-Fund test-suite
run: pytest -q studies/205-three-fund/tests
- name: Study 206 — Dividend-Aristocrats test-suite
run: pytest -q studies/206-dividend-aristocrats/tests
- name: Study 207 — REITs-Diversifier test-suite
run: pytest -q studies/207-reits-diversifier/tests
- name: Study 208 — Gold-Miners test-suite
run: pytest -q studies/208-gold-miners/tests
- name: Study 209 — ETH-BTC-Ratio test-suite
run: pytest -q studies/209-eth-btc-ratio/tests
- name: Study 210 — Crypto-Trend test-suite
run: pytest -q studies/210-crypto-trend/tests
- name: Study 211 — Sin-Stocks test-suite
run: pytest -q studies/211-sin-stocks/tests
- name: Study 212 — Cannabis Stocks test-suite
run: pytest -q studies/212-cannabis-stocks/tests
- name: Study 213 — Meme Stocks test-suite
run: pytest -q studies/213-meme-stocks/tests
- name: Study 214 — Magazine-Cover-Curse test-suite
run: pytest -q studies/214-magazine-cover-curse/tests
- name: Study 215 — Big-Mac-PPP test-suite
run: pytest -q studies/215-big-mac-ppp/tests
- name: Study 216 — Hemline-Index test-suite
run: pytest -q studies/216-hemline-index/tests
- name: Study 217 — Lipstick Index test-suite
run: pytest -q studies/217-lipstick-index/tests
- name: Study 218 — SPAC-Performance test-suite
run: pytest -q studies/218-spac-performance/tests
- name: Study 219 — IPO-Pop test-suite
run: pytest -q studies/219-ipo-pop/tests
- name: Study 220 — Small Dogs of the Dow test-suite
run: pytest -q studies/220-small-dogs/tests
- name: Study 221 — Mayer-Multiple test-suite
run: pytest -q studies/221-mayer-multiple/tests
- name: Study 222 — - Altseason-Rotation test-suite
run: pytest -q studies/222-altseason-rotation/tests
- name: Study 223 — - Same-Month Seasonality test-suite
run: pytest -q studies/223-same-month-seasonality/tests
- name: Study 224 — - Monday Effect test-suite
run: pytest -q studies/224-monday-effect/tests
- name: Study 225 — Sector-Rotation test-suite
run: pytest -q studies/225-sector-rotation/tests
- name: Study 226 — Crude-Seasonality test-suite
run: pytest -q studies/226-crude-seasonality/tests
- name: Study 227 — Natgas-Winter test-suite
run: pytest -q studies/227-natgas-winter/tests
- name: Study 228 — Pre-Earnings Runup test-suite
run: pytest -q studies/228-pre-earnings-runup/tests
- name: Study 229 — Beneish M-score test-suite
run: pytest -q studies/229-beneish-m-score/tests
- name: Study 230 — Ohlson O-score test-suite
run: pytest -q studies/230-ohlson-o-score/tests
- name: Study 231 — Sloan Accruals test-suite
run: pytest -q studies/231-sloan-accruals/tests
- name: Study 232 — - Mohanram G-score test-suite
run: pytest -q studies/232-mohanram-g-score/tests
- name: Study 233 — Shareholder-Yield test-suite
run: pytest -q studies/233-shareholder-yield/tests
- name: Study 234 — Olympic-Year test-suite
run: pytest -q studies/234-olympic-year/tests
- name: Study 235 — World-Cup-Effect test-suite
run: pytest -q studies/235-world-cup-effect/tests
- name: Study 236 — Fifty-Two-Week-High test-suite
run: pytest -q studies/236-fifty-two-week-high/tests
- name: Study 237 — - Residual-Momentum test-suite
run: pytest -q studies/237-residual-momentum/tests
- name: Study 238 — - Betting-Against-Beta test-suite
run: pytest -q studies/238-betting-against-beta/tests
- name: Study 239 — Spinoffs test-suite
run: pytest -q studies/239-spinoffs/tests
- name: Study 240 — Dividend-Initiation test-suite
run: pytest -q studies/240-dividend-initiation/tests
- name: Study 241 — Buy-the-Dip test-suite
run: pytest -q studies/241-buy-the-dip/tests
- name: Study 242 — - Quality-Minus-Junk test-suite
run: pytest -q studies/242-quality-minus-junk/tests
- name: Study 243 — Graham NCAV test-suite
run: pytest -q studies/243-graham-ncav/tests
- name: Study 244 — Asset-Growth test-suite
run: pytest -q studies/244-asset-growth/tests
- name: Study 245 — Oil-Equity Correlation test-suite
run: pytest -q studies/245-oil-equity-correlation/tests
- name: Study 246 — Defensive-Sectors Leadership test-suite
run: pytest -q studies/246-defensive-sectors/tests
- name: Study 247 — Bond-Seasonality test-suite
run: pytest -q studies/247-bond-seasonality/tests
- name: Study 248 — Presidential-Honeymoon test-suite
run: pytest -q studies/248-presidential-honeymoon/tests
- name: Study 249 — Index-Inclusion test-suite
run: pytest -q studies/249-index-inclusion/tests
- name: Study 250 — Reverse-Split test-suite
run: pytest -q studies/250-reverse-split/tests
- name: Study 251 — Crypto-Reversal test-suite
run: pytest -q studies/251-crypto-reversal/tests
- name: Study 252 — Search-Trends test-suite
run: pytest -q studies/252-google-trends/tests
- name: Study 253 — Wiki-Views test-suite
run: pytest -q studies/253-wikipedia-views/tests
- name: Study 254 — WSB-Mentions test-suite
run: pytest -q studies/254-wsb-mentions/tests
- name: Study 255 — Fear-Greed test-suite
run: pytest -q studies/255-fear-greed-index/tests
- name: Study 256 — Twitter-Mood test-suite
run: pytest -q studies/256-twitter-mood/tests
- name: Study 257 — AAII-Sentiment test-suite
run: pytest -q studies/257-aaii-sentiment/tests
- name: Study 258 — Baker-Wurgler test-suite
run: pytest -q studies/258-baker-wurgler/tests
- name: Study 259 — News-Tone test-suite
run: pytest -q studies/259-news-tone/tests
- name: Study 260 — Margin-Debt test-suite
run: pytest -q studies/260-margin-debt/tests
- name: Study 261 — Put-Call-Ratio test-suite
run: pytest -q studies/261-put-call-ratio/tests
- name: Study 262 — Short-Interest test-suite
run: pytest -q studies/262-short-interest/tests
- name: Study 263 — Insider-Buying test-suite
run: pytest -q studies/263-insider-buying/tests
- name: Study 264 — Buffett-Indicator test-suite
run: pytest -q studies/264-buffett-indicator/tests
- name: Study 265 — IPO-Volume test-suite
run: pytest -q studies/265-ipo-volume/tests
- name: Study 266 — Misery-Index test-suite
run: pytest -q studies/266-misery-index/tests
- name: Study 267 — M2-Growth test-suite
run: pytest -q studies/267-m2-growth/tests
- name: Study 268 — Sahm-Rule test-suite
run: pytest -q studies/268-sahm-rule/tests
- name: Study 269 — Baltic-Dry test-suite
run: pytest -q studies/269-baltic-dry/tests
- name: Study 270 — Underwear-Index test-suite
run: pytest -q studies/270-underwear-index/tests
- name: Study 271 — Cardboard-Box test-suite
run: pytest -q studies/271-cardboard-box/tests
- name: Study 272 — Champagne-Index test-suite
run: pytest -q studies/272-champagne-index/tests
- name: Study 273 — Lego-Returns test-suite
run: pytest -q studies/273-lego-returns/tests
- name: Study 274 — Fine-Wine test-suite
run: pytest -q studies/274-fine-wine/tests
- name: Study 275 — Whisky-Cask test-suite
run: pytest -q studies/275-whisky-cask/tests
- name: Study 276 — Sneaker-Resale test-suite
run: pytest -q studies/276-sneaker-resale/tests
- name: Study 277 — Trading-Cards test-suite
run: pytest -q studies/277-trading-cards/tests
- name: Study 278 — Sunshine-Effect test-suite
run: pytest -q studies/278-sunshine-effect/tests
- name: Study 279 — Geomagnetic-Storms test-suite
run: pytest -q studies/279-geomagnetic-storms/tests
- name: Study 280 — Solar-Eclipse test-suite
run: pytest -q studies/280-solar-eclipse/tests
- name: Study 281 — El-Nino test-suite
run: pytest -q studies/281-el-nino/tests
- name: Study 282 — NYC-Temperature test-suite
run: pytest -q studies/282-nyc-temperature/tests
- name: Study 283 — Hurricane-Season test-suite
run: pytest -q studies/283-hurricane-season/tests
- name: Study 284 — Equinox-Effect test-suite
run: pytest -q studies/284-equinox-effect/tests
- name: Study 285 — St-Patricks-Day test-suite
run: pytest -q studies/285-st-patricks-day/tests
- name: Study 286 — Valentines-Day test-suite
run: pytest -q studies/286-valentines-day/tests
- name: Study 287 — Easter-Effect test-suite
run: pytest -q studies/287-easter-effect/tests
- name: Study 288 — Ramadan-Effect test-suite
run: pytest -q studies/288-ramadan-effect/tests
- name: Study 289 — Diwali-Muhurat test-suite
run: pytest -q studies/289-diwali-muhurat/tests
- name: Study 290 — September-Effect test-suite
run: pytest -q studies/290-september-effect/tests
- name: Study 291 — Doge-Tweets test-suite
run: pytest -q studies/291-doge-tweets/tests
- name: Study 292 — Bitcoin-Hashrate test-suite
run: pytest -q studies/292-bitcoin-hashrate/tests
- name: Study 293 — MVRV-Ratio test-suite
run: pytest -q studies/293-mvrv-ratio/tests
- name: Study 294 — Coinbase-Rank test-suite
run: pytest -q studies/294-coinbase-rank/tests
- name: Study 295 — Stablecoin-Supply test-suite
run: pytest -q studies/295-stablecoin-supply/tests
- name: Study 296 — Oscars-Effect test-suite
run: pytest -q studies/296-oscars-effect/tests
- name: Study 297 — March-Madness test-suite
run: pytest -q studies/297-march-madness/tests
- name: Study 298 — Swiftonomics test-suite
run: pytest -q studies/298-swiftonomics/tests
- name: Study 299 — Keynote-Drift test-suite
run: pytest -q studies/299-keynote-drift/tests
- name: Study 300 — Sports-Sentiment test-suite
run: pytest -q studies/300-sports-sentiment/tests
- name: Study 301 — Triple-RSI test-suite
run: pytest -q studies/301-triple-rsi/tests
- name: Study 302 — Lithium-Boom test-suite
run: pytest -q studies/302-lithium-boom/tests
- name: Study 303 — Uranium-Revival test-suite
run: pytest -q studies/303-uranium-revival/tests
- name: Study 304 — Carbon-Credits test-suite
run: pytest -q studies/304-carbon-credits/tests
- name: Study 305 — Gold-Oil-Ratio test-suite
run: pytest -q studies/305-gold-oil-ratio/tests
- name: Study 306 — Crack-Spread test-suite
run: pytest -q studies/306-crack-spread/tests
- name: Study 307 — Coffee-Seasonality test-suite
run: pytest -q studies/307-coffee-seasonality/tests
- name: Study 308 — Cocoa-Squeeze test-suite
run: pytest -q studies/308-cocoa-squeeze/tests
- name: Study 309 — OJ-Frost test-suite
run: pytest -q studies/309-oj-frost/tests
- name: Study 310 — Platinum-Palladium test-suite
run: pytest -q studies/310-platinum-palladium/tests
- name: Study 311 — Government-Shutdown test-suite
run: pytest -q studies/311-government-shutdown/tests
- name: Study 312 — Debt-Ceiling test-suite
run: pytest -q studies/312-debt-ceiling/tests
- name: Study 313 — Geopolitical-Shock test-suite
run: pytest -q studies/313-geopolitical-shock/tests
- name: Study 314 — Jackson-Hole test-suite
run: pytest -q studies/314-jackson-hole/tests
- name: Study 315 — Sovereign-Downgrade test-suite
run: pytest -q studies/315-sovereign-downgrade/tests
- name: Study 316 — Bank-Failure test-suite
run: pytest -q studies/316-bank-failure/tests
- name: Study 317 — Fed-Balance-Sheet test-suite
run: pytest -q studies/317-fed-balance-sheet/tests
- name: Study 318 — Election-Volatility test-suite
run: pytest -q studies/318-election-volatility/tests
- name: Study 319 — Lockup-Expiry test-suite
run: pytest -q studies/319-lockup-expiry/tests
- name: Study 320 — Russell-Reconstitution test-suite
run: pytest -q studies/320-russell-reconstitution/tests
- name: Study 321 — Earnings-Season-Tide test-suite
run: pytest -q studies/321-earnings-season-tide/tests
- name: Study 322 — FOMC-Blackout test-suite
run: pytest -q studies/322-fomc-blackout/tests
- name: Study 323 — BTC-Halving test-suite
run: pytest -q studies/323-btc-halving/tests
- name: Study 324 — Bitcoin-Treasury test-suite
run: pytest -q studies/324-bitcoin-treasury/tests
- name: Study 325 — Crypto-Fear-Greed test-suite
run: pytest -q studies/325-crypto-fear-greed/tests
- name: Study 326 — Stablecoin-Depeg test-suite
run: pytest -q studies/326-stablecoin-depeg/tests
- name: Study 327 — Disposition-Effect test-suite
run: pytest -q studies/327-disposition-effect/tests
- name: Study 328 — Benford-Law test-suite
run: pytest -q studies/328-benford-law/tests
- name: Study 329 — One-Month-Reversal test-suite
run: pytest -q studies/329-one-month-reversal/tests
- name: Study 330 — Low-Volatility-Anomaly test-suite
run: pytest -q studies/330-low-volatility-anomaly/tests
- name: Study 331 — Fifty-Two-Week-Range test-suite
run: pytest -q studies/331-fifty-two-week-range/tests
- name: Study 332 — Downside-Beta test-suite
run: pytest -q studies/332-downside-beta/tests
- name: Study 333 — Recovery-Speed test-suite
run: pytest -q studies/333-recovery-speed/tests
- name: Study 334 — ARK-Innovation test-suite
run: pytest -q studies/334-ark-innovation/tests
- name: Study 335 — Buzz-Sentiment-ETF test-suite
run: pytest -q studies/335-buzz-sentiment-etf/tests
- name: Study 336 — Inverse-Cramer test-suite
run: pytest -q studies/336-inverse-cramer/tests
- name: Study 337 — Covered-Call-ETF test-suite
run: pytest -q studies/337-covered-call-etf/tests
- name: Study 338 — Preferred-Stocks test-suite
run: pytest -q studies/338-preferred-stocks/tests
- name: Study 339 — Convertible-Bonds test-suite
run: pytest -q studies/339-convertible-bonds/tests
- name: Study 340 — Bank-Loans test-suite
run: pytest -q studies/340-bank-loans/tests
- name: Study 341 — MLP-Pipelines test-suite
run: pytest -q studies/341-mlp-pipelines/tests
- name: Study 342 — BDC-Yield test-suite
run: pytest -q studies/342-bdc-yield/tests
- name: Study 343 — Data-Mining-Roulette test-suite
run: pytest -q studies/343-data-mining-roulette/tests
- name: Study 344 — Backtest-Overfitting test-suite
run: pytest -q studies/344-backtest-overfitting/tests
- name: Study 345 — Survivorship-Bias test-suite
run: pytest -q studies/345-survivorship-bias/tests
- name: Study 346 — Multiple-Testing test-suite
run: pytest -q studies/346-multiple-testing/tests
- name: Study 347 — Look-Ahead-Bias test-suite
run: pytest -q studies/347-look-ahead-bias/tests
- name: Study 348 — Curve-Fitting test-suite
run: pytest -q studies/348-curve-fitting/tests
- name: Study 349 — Regime-Dependence test-suite
run: pytest -q studies/349-regime-dependence/tests
- name: Study 350 — Dartboard-Portfolio test-suite
run: pytest -q studies/350-dartboard-portfolio/tests
- name: Smoke-run the offline demos
run: |
python studies/01-overnight-anomaly/examples/run_synthetic_demo.py
python studies/71-ambush/examples/run_synthetic_demo.py
python studies/72-loaded-dice/examples/run_synthetic_demo.py
python studies/03-fear-gauge/examples/run_synthetic_demo.py
python studies/04-social-oracle/examples/run_synthetic_demo.py
python studies/05-twin-spread/examples/run_synthetic_demo.py
python studies/09-phantom-kernel/examples/run_synthetic_demo.py
python studies/11-vanishing-penny/examples/run_synthetic_demo.py
python studies/16-storm-shy/examples/run_synthetic_demo.py
python studies/30-house-edge/examples/run_synthetic_demo.py
python studies/31-trade-winds/examples/run_synthetic_demo.py
python studies/32-rip-tide/examples/run_synthetic_demo.py
python studies/33-slingshot/examples/run_synthetic_demo.py
python studies/34-aftershock/examples/run_synthetic_demo.py
python studies/35-contango/examples/run_synthetic_demo.py
python studies/36-greenback/examples/run_synthetic_demo.py
python studies/37-barometer/examples/run_synthetic_demo.py
python studies/38-chorus/examples/run_synthetic_demo.py
python studies/39-black-box/examples/run_synthetic_demo.py
python studies/301-triple-rsi/examples/run_synthetic_demo.py