Add studies 302-350: 49 new teardowns (commodities, macro drama, cryp… #31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |