Get the Data

All data is free, open, and updated automatically. Download CSVs or fetch JSON directly. No API key. No account. No rate limit on the static files.

signals.json
Top movers · Updated every 30 min during market hours · loading...
↓ Download

Top 10% gainers and losers by percent move, plus top 5 by dollar move. Filtered to optionable stocks with price ≥ $10 and volume ≥ 500K.

topGainersarrayTop 10 stocks by % gain today
topLosersarrayTop 10 stocks by % loss today
dollarGainersarrayTop 5 stocks by dollar gain (from topGainers pool)
dollarLosersarrayTop 5 stocks by dollar loss (from topLosers pool)
→ tickerstringStock ticker symbol
→ namestringCompany name
→ sectorstringMarket sector
→ pricefloatCurrent price in USD
→ changePctfloatPercent change from previous close
→ changeDollarfloatDollar change from previous close
tickernamesectorpricechangePctchangeDollar
loading...
stocks_optionable.csv
Full US options universe · Updated 1st of every month · loading...
↓ Download

5,325 US optionable stocks sourced from the CBOE symbol directory — NYSE, Nasdaq, and AMEX. All rows are confirmed optionable by definition. Refreshed monthly via GitHub Actions.

SymbolstringStock ticker symbol
NamestringCompany name
SectorstringMarket sector classification
options_availableboolAlways TRUE — sourced from CBOE confirmed optionable list
SymbolNameSectoroptions_available
loading...
trades.json
Paper trade ledger · Updated at 6:31 AM PST on trading days
↓ Download

Full automated paper trade history. Every entry and exit logged with Black-Scholes option pricing, FOMO analysis, and news scan decisions.

balancefloatCumulative P&L across all closed trades
first_trade_datestringDate of first ever trade (YYYY-MM-DD)
trades[].entry.tickerstringStock ticker
trades[].entry.typestringCALL or PUT
trades[].entry.strikefloatOption strike price
trades[].entry.iv_at_entryfloatImplied volatility captured at entry (decimal)
trades[].entry.otm_pctfloatHow far OTM the contract was at entry (%)
trades[].exit.pnlfloatProfit or loss on the trade in USD
trades[].fomo.best_case.pnlfloatMax theoretical P&L within 30 min of open (BS estimate)
trades[].news_scan.decisionstringhold or sell — based on pre-market news keyword score
#datetickertypestrikecostivotm%pnl
loading...
stats.json
Analytics · Updated after every trade closes
↓ Download

All derived analytics — win rates by day/sector/rank, SPY correlation, FOMO averages, keyword accuracy, methodology layer scores.

overall.win_ratefloatWin rate as percentage (0-100)
by_day_of_weekobjectWin rate and avg P&L per day Mon-Fri
by_sectorobjectWin rate and avg P&L per market sector
fomo.avg_left_on_tablefloatAvg theoretical P&L left unrealized (30-min window)
keyword_accuracyobjectBullish/bearish/neutral keyword prediction accuracy
methodology_scoreobjectEach signal layer scored independently for accuracy
loading...
⌥ For Developers — Direct JSON Endpoints

All data files are static JSON served directly from GitHub Pages. Fetch them from anywhere. No auth, no rate limit on the files themselves.

// Current signals — updates every 30 min market hours
fetch('https://stock-porn.loyal9.app/data/signals.json')

// Full paper trade ledger
fetch('https://stock-porn.loyal9.app/data/trades.json')

// Analytics
fetch('https://stock-porn.loyal9.app/data/stats.json')

// Timestamps and filter counts
fetch('https://stock-porn.loyal9.app/data/metadata.json')

Add ?t= + a timestamp to bust cache if you're polling frequently.