Changelog
What's shipped on sma200.trade. Updated when meaningful things change: new content, methodology revisions, infrastructure, open-source releases. Build-in-public ethos. Subscribe to the articles RSS or research RSS if you want to be notified.
2026-05-19
- Public research library at /research. 9 backtest study write-ups plus 10 "durable findings" — cross-study claims with linked evidence. Includes a methodology correction for synthetic LETF backtests (see below).
- Methodology correction: synthetic LETF borrow cost. The synthetic-LETF formula used in earlier research notes omitted the daily borrow cost real leveraged ETFs pay. Calibration vs real TQQQ showed the old numbers overstated returns by 62% over 2015-2024. Fixed formula tracks real TQQQ to within 5%. All affected studies marked with supersession notes.
- Open source: sma200-bt. The corrected harness extracted as a standalone MIT-licensed Python package. Six pytest cases pin the formula. Pip-installable.
- New article: The Hidden Cost Every Leveraged-ETF Backtest Ignores. Walks through the bug, the fix, and the refined SMA200 framing that comes out of the corrected numbers.
- Self-hosted newsletter cron. Replaced external cron-job.org trigger with a dedicated Fly worker process. No shared secret leaves Fly infrastructure.
- Email share blocks. Welcome + recap emails now include one-click share targets (X, Reddit, mailto) plus a "forwarded by a trusted trader? subscribe" CTA for recipients.
- Monthly newsletter cadence. Signup form now offers weekly (Fridays) or monthly (last Friday of month) frequency.
- RSS + JSON Feed. /learn/feed.xml, /research/feed.xml, /feed.json auto-discovered from every page.
- SEO + AEO infrastructure pass. Internal article cross-linking, llms.txt with curated content index for AI crawlers, sitemap lastmod hygiene.
2026-05-15 → 2026-05-18
- Inline TradingView affiliate link on ticker pages. One small affiliate disclosure under each ticker's close-explainer.
- Cadence-aware welcome emails. Different subject lines and intro copy for weekly vs monthly subscribers.
- Always-on Fly machine. Bumped
min_machines_runningfrom 0 to 1 to eliminate cold-start tax on first-byte latency.
2026-05-11 → 2026-05-14
- Initial launch of sma200.trade. Homepage, per-ticker pages, OG share images, /learn section with two articles, /about, /disclaimer, /brokers, /support pages.
- Agent-readiness layer. agent-card.json, RFC 9727 API catalog, WebMCP fragments, markdown content negotiation. Designed for AI answer engines from day one.
- SMA200 convention pin. Switched yfinance to
auto_adjust=Falseafter a visitor reported our SPY SMA200 didn't match TradingView. The chart-standard convention now has a regression test.
What's next
Building in public. Major candidates in the queue:
- Per-ticker SMA200 alerts (email when a ticker you watch crosses)
- Watchlist (track multiple tickers in one view)
- Public HTTP API for the synthetic LETF harness (currently Python-only)
- Managed futures defensive bucket study (longer window than the current 7y DBMF data)
Suggestions or requests: [email protected] or support page.