PaperTrail2026 / stock screener + backtesting / validates its own signals
A self-hosted market terminal that screens roughly 1,550 US stocks and the top 50 crypto every 60 seconds, aggregating six free no-key data sources into a transparent 1–5 rating and concrete entry-timing engine. Every score decomposes into the trend, momentum, quality, valuation and risk inputs that produced it. Node.js and vanilla JavaScript, one runtime dependency, no build step, installable to a phone home screen.
What matters is whether the score survives contact with reality. Backtesting and forward paper-trading engines (60 automated tests, test-driven, with look-ahead-bias guards) replay the signals against ten years of history and a live S&P 500 benchmark. Building that harness surfaced three separate bugs that had inflated returns by thirty-plus points: survivorship bias, a hindsight-selected universe, and stale entry pricing. The corrected result is reported in the app itself, on screen rather than buried: the signal set underperformed simply buying and holding the index.
node.js · vanilla js · express · finnhub · fred · tradingview · github
github.com/milanshaji1/paper-trail →- 1,5501,550US stocks + 50 crypto, re-scanned every 60 seconds
- 6060automated tests, test-first, with look-ahead-bias guards
- 33backtest-inflating bugs found and fixed: survivorship, hindsight, stale pricing
- underperformedthe honest result: signals lost to SPY buy-and-hold, reported in-app





