{"slug":"what-is-the-sharpe-ratio","qid":"sharpe_by_name","label":"Annualized Sharpe ratio by name, calendar 2025, assumed 4.25% risk-free rate","post_title":"What Is the Sharpe Ratio? Formula and Math","post_url":"/blog/what-is-the-sharpe-ratio#q-sharpe_by_name","columns":["symbol","ann_excess_return_pct","ann_volatility_pct","sharpe_ratio"],"rows":[{"symbol":"NVDA","ann_excess_return_pct":41.1,"ann_volatility_pct":49.4,"sharpe_ratio":0.83},{"symbol":"QQQ","ann_excess_return_pct":16.95,"ann_volatility_pct":23.34,"sharpe_ratio":0.73},{"symbol":"SPY","ann_excess_return_pct":12.74,"ann_volatility_pct":18.62,"sharpe_ratio":0.68},{"symbol":"MSFT","ann_excess_return_pct":12.58,"ann_volatility_pct":24.36,"sharpe_ratio":0.52},{"symbol":"KO","ann_excess_return_pct":8.99,"ann_volatility_pct":17.73,"sharpe_ratio":0.51},{"symbol":"AAPL","ann_excess_return_pct":9.18,"ann_volatility_pct":32.32,"sharpe_ratio":0.28}],"shape":"ranking","sql":"WITH\n    daily AS\n    (\n        SELECT\n            ticker                                               AS symbol,\n            toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n            argMax(toFloat64(close), window_start)               AS close_px\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'MSFT', 'NVDA', 'KO')\n          AND window_start >= toDateTime('2024-12-24 00:00:00')\n          AND window_start <  toDateTime('2026-01-01 05:00:00')\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n             + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n             + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n        GROUP BY symbol, session_date\n    ),\n    stepped AS\n    (\n        SELECT\n            symbol,\n            session_date,\n            close_px,\n            lagInFrame(close_px, 1) OVER (PARTITION BY symbol ORDER BY session_date\n                                          ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px\n        FROM daily\n    ),\n    excess AS\n    (\n        SELECT\n            symbol,\n            close_px / prev_px - 1                 AS raw_ret,\n            close_px / prev_px - 1 - 0.0425 / 252  AS ex_ret\n        FROM stepped\n        WHERE prev_px > 0\n          AND session_date >= toDate('2025-01-01')\n    )\nSELECT\n    symbol,\n    round(avg(ex_ret) * 252 * 100, 2)                      AS ann_excess_return_pct,\n    round(stddevSamp(raw_ret) * sqrt(252) * 100, 2)        AS ann_volatility_pct,\n    round(avg(ex_ret) / stddevSamp(ex_ret) * sqrt(252), 2) AS sharpe_ratio\nFROM excess\nGROUP BY symbol\nHAVING count() > 200\nORDER BY sharpe_ratio DESC","computed_at":"2026-08-06T00:19:12.054247+00:00","elapsed":0.004957925}