Methodology & Data Integrity
How we calculate RSI, backtest signals, and ensure data quality
Data Sources
- 1Primary: Stooq.com for complete historical price data (daily OHLCV)
- 2Secondary: Yahoo Finance for real-time updates and incremental sync
- 3Coverage: 11,000+ U.S. equities across NYSE, NASDAQ, and AMEX
RSI Calculation Methodology
We use Wilder's Smoothed RSI with a 14-period lookback, the industry standard developed by J. Welles Wilder Jr. in his 1978 book "New Concepts in Technical Trading Systems."
Why 14-Period?
The 14-period RSI is the standard used by Bloomberg, Reuters, and academic research. It balances sensitivity with noise reduction.
Validation
Our RSI values are validated against Bloomberg terminal outputs with less than 0.01% variance on identical datasets.
Z-Score Calculation Methodology
The Z-Score measures how unusual today's daily return is compared to the rolling distribution of daily returns over the past 200 trading days. It helps identify abnormally large price moves and potential mean reversion opportunities.
Why 200-Period?
The 200-day period (approximately 10 months) is a standard long-term benchmark in technical analysis. It captures seasonal patterns and longer-term return distributions while filtering out short-term noise.
Interpretation
- Z < -2: Unusually large daily drop (oversold signal)
- Z > 2: Unusually large daily gain (overbought signal)
- -2 < Z < 2: Typical daily move
Use with Stink Bid Signals
Stink Bid signals are generated by our proprietary multi-indicator framework designed to surface extreme mean reversion setups. Z-Score contributes to that framework, but exact factor weightings and trigger logic are intentionally not disclosed.
Backtest Methodology
Forward Returns
When RSI crosses below your threshold (e.g., 30), we calculate actual price returns at four horizons:
Win Rate Calculation
Win Rate = (Signals with Positive Return) / (Total Signals) x 100%
A signal "wins" if the forward return is positive (price went up from the signal date).
No Look-Ahead Bias
All signals use only data available at the signal date. We never use future information to determine entry points. This is critical for realistic backtest results.
Data Quality Controls
RSI Anomaly Detection
RSI values outside the 1-99 range are flagged as data anomalies and set to NULL. These typically indicate data quality issues (missing prices, stock splits, etc.).
Minimum Data Requirement
Tickers require at least 200 trading days of history for analysis. This ensures the RSI has fully converged and provides meaningful historical signals.
Daily Sync
Prices are synced daily after market close (4:15 PM ET). RSI values are recalculated in real-time on every request to ensure freshness.
Limitations & Disclaimers
- -Past performance does not guarantee future results. Historical win rates are informational only.
- -RSI is one indicator among many. We recommend combining with fundamental analysis, volume, and market conditions.
- -Backtests do not account for transaction costs, slippage, or liquidity constraints.
- -Survivorship bias: Our dataset includes only currently traded securities. Delisted stocks are not included in historical analysis.
- -This site is for educational and research purposes only. Nothing here constitutes financial advice.
Update Frequency
| Data Type | Frequency |
|---|---|
| Price data | Daily sync after market close |
| RSI calculations | Real-time on request |
| Oversold/Overbought lists | Every 5 minutes during market hours |
| Ticker universe | Weekly sync with NASDAQ/NYSE |
Questions or Corrections?
Found a data issue or have questions about our methodology? We welcome feedback.