This study conducts a large-scale empirical backtest of four Relative Strength Index (RSI) trading strategies across a universe of 100 U.S. equities spanning 11 sectors, using up to 64 years of daily price data (1962–2026). The four strategies vary by timeframe (daily vs. weekly) and threshold pair (30/70 vs. 20/80). We evaluate 5,174 total trades using per-trade performance metrics, statistical significance tests, and breakdowns by sector, time period, and crisis window.
Key findings: All four strategies produce positive average returns per trade that differ significantly from zero under tests that treat each trade as independent (p < 10⁻¹² for every strategy). The Daily 30/70 strategy generates the most trades (n = 3,892) with a 79.4% win rate and 7.66% average return per trade. More extreme thresholds (20/80) produce fewer but substantially larger trades: the Weekly 20/80 strategy has a 96.3% win rate and a 244% average return, though with only 82 trades and an average holding period of 6.5 years. Because the tests compare returns with zero rather than with random entries, and because the trades cluster in time, they show positive average trades on this universe of surviving stocks but cannot separate RSI timing from the stocks' upward drift. In a per-stock comparison in which idle cash earns nothing, every strategy's annualized return falls short of buying and holding the same stock (paired t-test p < 10⁻¹⁹ for every strategy), largely because capital sits uninvested between signals; no index or portfolio-level comparison is tested. Trades entered during the 2007 to 2009 financial crisis and the 2020 COVID crash had high win rates and large average returns for the 20/80 and weekly strategies, while Daily 30/70 trades from the financial crisis averaged a loss. Sector-level ANOVA finds cross-sectional variation for the daily and weekly 30/70 strategies (p = 0.043 and p = 0.0003, respectively), but only the weekly result survives a Bonferroni correction for four strategies, and the top-ranked Mega Cap Tech group consists of stocks chosen as mega-caps in 2026. Because the universe consists only of companies that survived to 2026 (delisted, bankrupt, and acquired firms are excluded), these results are subject to survivorship bias and should be read as an upper bound, particularly for long-hold strategies such as Weekly 20/80.
Date: February 22, 2026
Data Source: Yahoo Finance (yfinance) — all figures derived from actual historical price data
Disclaimer. All results in this paper come from hypothetical backtests. They are not investment advice or a recommendation to buy or sell any security, and past performance does not guarantee future results. This paper is published by luppiter Group, which is not a registered investment adviser.
1. Introduction
The Relative Strength Index (RSI), introduced by J. Welles Wilder in his seminal 1978 work New Concepts in Technical Trading Systems, is among the most widely used momentum oscillators in technical analysis (Wilder, 1978). The RSI measures the magnitude of recent price changes on a scale of 0 to 100, with readings below 30 traditionally interpreted as "oversold" and readings above 70 as "overbought." Technical analysis is widely used by practitioners: in a Bank of England survey of chief foreign exchange dealers in London, about 90% of respondents said they used some chart analysis in forming exchange rate expectations at short horizons (Taylor & Allen, 1992). Even so, the academic literature on RSI's profitability remains surprisingly thin relative to studies on moving average crossover systems.
The efficient market hypothesis (EMH), as formulated by Fama (1970), posits that asset prices fully reflect all available information, implying that technical trading rules should not generate systematic excess returns. If markets are efficient, past price patterns — the sole input to RSI — should have no predictive power for future returns. Yet behavioral finance research has documented systematic overreaction in stock prices (De Bondt & Thaler, 1985), providing a theoretical basis for why mean-reversion indicators like RSI might capture genuine profit opportunities.
This study makes three contributions to the literature. First, we employ a substantially larger stock universe (100 equities across 11 sectors) and longer time period (up to 64 years) than prior RSI backtests, which typically examine a handful of indices or a single market. Second, we systematically compare four threshold/timeframe combinations rather than testing a single parameterization; reporting all four limits selective reporting, though it does not by itself resolve the data-snooping concerns raised by Sullivan, Timmermann, and White (1999) (see Section 5.7). Third, we break results down by sector, by time period from 2005 to 2025, and by three crisis windows, showing where per-trade results were strongest.
2. Literature Review
2.1 Technical Analysis and Market Efficiency
The debate over technical analysis profitability stretches back decades. Fama (1970) established the efficient markets framework that implied technical trading rules should not work. However, Brock, Lakonishok, and LeBaron (1992) challenged this view with evidence that simple moving average and trading range breakout rules generated statistically significant returns on the Dow Jones Industrial Average from 1897 to 1986; those returns are reported before transaction costs. Their findings sparked renewed academic interest in technical analysis.
Lo, Mamaysky, and Wang (2000) provided rigorous statistical foundations for technical analysis by formalizing pattern recognition algorithms and demonstrating that several technical patterns provided incremental information beyond what was captured by standard parametric models. Park and Irwin (2007), in their comprehensive survey of 95 modern studies, found that 56 reported positive results for technical trading rules, 20 reported negative results, and 19 were mixed, suggesting that the evidence is tilted toward, but not conclusive about, profitability. Malkiel (2003), surveying the behavioral and statistical challenges to the efficient market hypothesis, concluded that stock markets are more efficient and less predictable than many academic papers of the time suggested.
More recently, Neely, Rapach, Tu, and Zhou (2014) demonstrated that technical indicators have significant out-of-sample predictive power for the equity risk premium, complementing traditional macroeconomic predictors. Urquhart and McGroarty (2016) tested return predictability in the S&P 500, FTSE 100, Nikkei 225, and EURO STOXX 50 from 1990 to 2014 and found periods of significant predictability alternating with periods of none, consistent with the Adaptive Markets Hypothesis (Lo, 2004); their tests measure statistical predictability rather than the profitability of technical trading rules.
2.2 RSI-Specific Research
Research specifically focused on the RSI is more limited. Chong and Ng (2008) tested RSI and MACD rules on 60 years of data for the London Stock Exchange's FT30 index and found that both could generate returns higher than buy-and-hold in most cases. Wong, Manzur, and Chew (2003) tested the moving average, a trend-following indicator, and the RSI, a counter-trend indicator, on Singapore data and found that both could generate significantly positive returns.
Chong, Ng, and Liew (2014) revisited the FT30 findings on five other OECD stock markets and found that RSI profitability depended on both the market and the parameterization: an RSI(21, 50) rule generated significant abnormal returns on the Milan Comit General and S&P/TSX Composite indices, while the conventional RSI(14) 30/70 rule was profitable on the Dow Jones Industrial Average. Metghalchi, Chen, and Hayes (2015) tested moving average, RSI, MACD, and trading breakout rules on the Madrid General Stock Index from 1975 to 2012 and reported predictive power that was statistically significant in all three of their sub-periods, along with strategies that may outperform buy-and-hold after transaction costs and risk. Like Chong and Ng (2008), these index-level results cut against this paper's finding that every rule lagged buy-and-hold stock by stock; the studies differ in market, period, and rule design, and this paper does not test which difference accounts for the gap. Bajgrowicz and Scaillet (2012), applying a false discovery rate approach to daily Dow Jones Industrial Average data from 1897 to 2011, found that investors could not have reliably selected the best rules in advance and that in-sample profits disappear once even low transaction costs are included.
Han, Yang, and Zhou (2013) applied a moving average timing rule to portfolios sorted by volatility and found that the timed portfolios beat buy-and-hold, with abnormal returns for high-volatility portfolios that the CAPM and the Fama-French three-factor model do not explain. Their study tests moving averages, not the RSI, but it documents cross-sectional differences in the payoff to a technical rule.
2.3 Behavioral Foundations
The potential profitability of RSI-based strategies finds theoretical support in behavioral finance. De Bondt and Thaler (1985) documented long-term return reversals consistent with investor overreaction: prior losers outperformed prior winners over 3–5 year horizons. Over shorter horizons the pattern runs the other way: Jegadeesh and Titman (1993) found that buying past winners and selling past losers earned significant positive returns over 3- to 12-month holding periods, a range that includes the typical Daily 30/70 holding period in this study. Tversky and Kahneman (1974) identified representativeness bias and anchoring as cognitive heuristics that can cause systematic pricing errors. Shiller (2000) argued that irrational exuberance and panic create price overshoots in both directions, which mean-reversion indicators might exploit.
If stocks that trigger RSI oversold signals have indeed been subject to excessive selling pressure driven by behavioral biases, then the subsequent rebound captured by a buy-on-oversold/sell-on-overbought strategy reflects a correction of mispricing rather than compensation for risk.
3. Data and Methodology
3.1 Stock Universe
Our sample comprises 100 U.S. equities distributed across 11 sector classifications:
| Sector | Stocks | Representative Tickers |
|---|---|---|
| Mega Cap Tech | 7 | AAPL, MSFT, GOOGL, AMZN, NVDA, META, TSLA |
| Financials | 10 | JPM, BAC, GS, WFC, MS, BRK-B, C, AXP, BLK, SCHW |
| Healthcare | 10 | JNJ, UNH, PFE, ABBV, MRK, LLY, TMO, ABT, BMY, AMGN |
| Energy | 10 | XOM, CVX, COP, SLB, EOG, MPC, PSX, VLO, OXY, HAL |
| Consumer Staples | 10 | PG, KO, PEP, WMT, COST, PM, MO, CL, GIS, KHC |
| Consumer Discretionary | 10 | HD, MCD, NKE, SBUX, TGT, LOW, TJX, BKNG, CMG, DG |
| Industrials | 10 | CAT, DE, UNP, HON, GE, BA, LMT, RTX, MMM, UPS |
| Utilities | 10 | NEE, DUK, SO, D, AEP, SRE, EXC, XEL, ED, WEC |
| REITs | 10 | O, AMT, PLD, CCI, SPG, WELL, DLR, PSA, EQR, AVB |
| Materials | 7 | LIN, APD, ECL, DD, NEM, FCX, NUE |
| Communication | 6 | DIS, CMCSA, NFLX, T, VZ, TMUS |
All 100 tickers were successfully downloaded with zero failures. Data availability varies by listing date: the longest histories (JNJ, XOM, CVX, KO, PG, MRK, CAT, HON, GE, BA, DIS, and others) extend back to January 2, 1962, providing over 16,000 daily observations and 64 years of coverage. The shortest histories (KHC from July 2015, ABBV from January 2013) still provide over 10 years of data. The median stock in our sample has approximately 11,500 daily observations spanning ~45 years. The universe was selected from companies still listed as of 2026, so firms that were delisted, went bankrupt, or were acquired during the sample period are not represented; Section 5.5 discusses the resulting survivorship bias. The paper does not specify whether prices were adjusted for splits and dividends, so it is unclear whether trade and buy-and-hold returns include dividends.
3.2 RSI Calculation
We compute RSI using Wilder's original smoothed moving average method with a 14-period lookback:
- Compute price changes: Δpₜ = pₜ − pₜ₋₁
- Separate gains (U = max(Δp, 0)) and losses (D = max(−Δp, 0))
- Compute exponentially weighted moving averages:
- Avg Gain = EWM(U, α = 1/14, min_periods = 14)
- Avg Loss = EWM(D, α = 1/14, min_periods = 14)
- RS = Avg Gain / Avg Loss
- RSI = 100 − (100 / (1 + RS))
For weekly strategies, daily OHLCV data is resampled to weekly frequency (Friday close) before RSI computation.
3.3 Trading Rules
We test four strategy parameterizations:
| Strategy | Timeframe | Buy Signal | Sell Signal |
|---|---|---|---|
| Daily 30/70 | Daily | RSI crosses below 30 | RSI crosses above 70 |
| Daily 20/80 | Daily | RSI crosses below 20 | RSI crosses above 80 |
| Weekly 30/70 | Weekly | RSI crosses below 30 | RSI crosses above 70 |
| Weekly 20/80 | Weekly | RSI crosses below 20 | RSI crosses above 80 |
Entry rule: A buy signal is generated when RSI at time t is below the buy threshold while RSI at t−1 was at or above the threshold (i.e., a downward crossing).
Exit rule: A sell signal is generated when RSI at time t is above the sell threshold while RSI at t−1 was at or below the threshold (i.e., an upward crossing).
Execution: As specified, entries and exits fill at the closing price of the bar on which the signal occurs (the daily close, or the Friday close for weekly strategies). Because the signal is known only once that close prints, this assumes same-bar execution that a trader could not achieve exactly.
Position management: Only one position per stock at a time (no pyramiding). If a position remains open at the end of the data series, it is closed at the final available price and flagged; the number of positions closed this way is not reported. Trades are long-only and use no stop-loss, so a position ends only with an upward RSI crossing or the end of the data.
Benchmark: Buy-and-hold return computed over each stock's full data period: (final price − initial price) / initial price. The comparison is made one stock at a time. Capital not committed to a trade earns 0%, not a Treasury bill rate; no index benchmark is tested; and the per-stock annualized strategy and buy-and-hold returns behind the comparison are not reported.
3.4 Transaction Costs
This study reports gross returns without transaction cost deductions. We discuss the impact of realistic transaction costs (commissions, bid-ask spread, slippage) in Section 5.6. For reference, modern discount brokerages offer zero-commission equity trading, but institutional estimates of total execution costs (including market impact) range from 5–20 basis points per round trip for large-cap stocks. A flat modern cost assumption likely understates trading costs for the early decades of the sample, when fixed public commission rates applied to U.S. exchange transactions; the SEC eliminated them after May 1975 under Rule 19b-3.
3.5 Performance Metrics
For each stock and strategy, and in aggregate, we compute:
- Number of trades (n)
- Win rate: proportion of trades with positive return
- Average and median return per trade
- Standard deviation of trade returns
- Average holding period (calendar days)
- Maximum single-trade drawdown (worst trade)
- Cumulative compounded return: ∏(1 + rᵢ) − 1
- Annualized return: (1 + cumulative)^(1/years) − 1 (cumulative and annualized returns feed the per-stock comparison in Table 2 but are not reported)
- Profit factor: gross profits / |gross losses|
- Average winning trade return and average losing trade return
- Longest winning and losing streaks
3.6 Statistical Tests
We employ the following tests:
- One-sample t-test: H₀: mean trade return = 0
- Paired t-test: H₀: RSI annualized return = buy-and-hold annualized return (per stock)
- Mann-Whitney U test: Non-parametric comparison of RSI vs. buy-and-hold returns
- Chi-squared goodness of fit: H₀: win rate = 50%
- One-way ANOVA: H₀: mean trade return is equal across all sectors
All tests use α = 0.05 as the significance threshold, with exact p-values reported.
Each test treats every trade (or every stock) as an independent observation. Trades on different stocks that are open over the same weeks share the same market moves, and entries bunch up around market declines, so the reported p-values overstate the strength of the evidence (Sections 4.2 and 5.8). The trade tests also compare returns with zero and win rates with 50%, not with a random-entry benchmark. Because four strategies are tested, the sector ANOVA is also judged against a Bonferroni-adjusted threshold of 0.05 / 4 = 0.0125.
4. Results
4.1 Aggregate Performance
Table 1: Aggregate Strategy Performance Summary
| Metric | Daily 30/70 | Daily 20/80 | Weekly 30/70 | Weekly 20/80 |
|---|---|---|---|---|
| Total Trades | 3,892 | 598 | 602 | 82 |
| Stocks Traded | 100 | 100 | 100 | Not reported (at most 82) |
| Avg Trades/Stock | 38.9 | 6.0 | 6.0 | 0.8 |
| Win Rate | 79.4% | 87.3% | 87.7% | 96.3% |
| Avg Return/Trade | 7.66% | 47.37% | 37.09% | 244.10% |
| Median Return/Trade | 9.06% | 28.28% | 34.22% | 173.35% |
| Std Dev of Returns | 15.45% | 89.75% | 38.35% | 250.37% |
| Avg Holding Period | 150 days | 764 days | 599 days | 2,374 days |
| Median Holding Period | 112 days | 506 days | 487 days | 2,114 days |
| Profit Factor | 3.71 | 16.31 | 14.03 | 176.45 |
| Avg Winning Trade | +13.22% | +57.81% | +45.53% | +254.81% |
| Avg Losing Trade | −13.72% | −24.35% | −23.15% | −38.03% |
| Worst Single Trade | −93.68% | −87.68% | −88.08% | −67.71% |
| Best Single Trade | +113.43% | +1,245.94% | +206.27% | +1,531.98% |
| Longest Win Streak | 29 | 43 | 45 | 38 |
| Longest Lose Streak | 5 | 3 | 3 | 1 |
Note to Table 1: Avg Trades/Stock divides total trades by the 100 stocks in the universe. The number of stocks with at least one Weekly 20/80 trade is not reported; with 82 trades it can be at most 82, and the Table 2 test statistics imply 57 (see the note to Table 2).
Several patterns emerge:
Trade frequency decreases dramatically with more extreme thresholds and longer timeframes. The Daily 30/70 strategy generates nearly 40 trades per stock over the sample period, while Weekly 20/80 averages less than one trade per stock. This reflects the rarity of extreme RSI readings — weekly RSI crossing below 20 is an uncommon event, typically occurring only during severe market dislocations.
Win rates increase monotonically with threshold extremity, from 79.4% (Daily 30/70) to 96.3% (Weekly 20/80). This fits the intuition that deeper oversold readings are followed by recoveries more often, but it is also what longer holds on stocks known to have survived would produce: the stricter rules hold positions far longer (about 1.6 to 6.5 years on average), with no stop, until RSI recovers. Only 3 of the 82 Weekly 20/80 trades lost money, a figure that partly reflects how the sample was built (Section 5.5).
Average returns per trade are inversely related to trade frequency. This is partly mechanical, since longer holding periods allow more price appreciation; whether the severity of the entry condition adds anything beyond the longer hold cannot be determined without a random-entry benchmark (Section 5.8). The average Daily 30/70 trade captures a 7.66% move over ~5 months, while the average Weekly 20/80 trade captures a 244% move over ~6.5 years.
Profit factors are exceptionally high. A profit factor of 3.71 for Daily 30/70 means gross profits are 3.71× gross losses. The Weekly 20/80's profit factor of 176.45 is extraordinary, driven by its 96.3% win rate combined with winning trades averaging 254.81% versus losing trades averaging only −38.03%.
4.2 Statistical Significance
Table 2: Statistical Test Results
| Test | Daily 30/70 | Daily 20/80 | Weekly 30/70 | Weekly 20/80 |
|---|---|---|---|---|
| Mean return ≠ 0 | ||||
| t-statistic | 30.92 | 12.90 | 23.71 | 8.77 |
| p-value | 6.83 × 10⁻¹⁸⁸ | 9.72 × 10⁻³⁴ | 3.32 × 10⁻⁸⁸ | 2.22 × 10⁻¹³ |
| Win rate ≠ 50% | ||||
| χ² statistic | 1,342.70 | 332.64 | 342.39 | 70.44 |
| p-value | 5.94 × 10⁻²⁹⁴ | 2.56 × 10⁻⁷⁴ | 1.92 × 10⁻⁷⁶ | 4.74 × 10⁻¹⁷ |
| RSI ann. return = B&H | ||||
| Paired t-statistic | −14.14 | −15.82 | −18.31 | −14.56 |
| p-value | 1.69 × 10⁻²⁵ | 9.71 × 10⁻²⁹ | 1.46 × 10⁻³³ | 1.07 × 10⁻²⁰ |
| Mann-Whitney U | ||||
| U statistic | 747 | 408 | 407 | 178 |
| p-value | 2.74 × 10⁻²⁵ | 7.82 × 10⁻²⁹ | 3.21 × 10⁻²⁹ | 2.51 × 10⁻¹⁶ |
Note to Table 2: All p-values assume independent observations (Section 3.6). The paired t-test and Mann-Whitney statistics imply comparisons over 100 stocks for Daily 30/70 and Weekly 30/70, 99 for Daily 20/80, and 57 for Weekly 20/80, which suggests stocks with no trades were left out of the buy-and-hold comparison; the paper does not state this directly.
All four strategies produce mean trade returns that are significantly different from zero at any conventional significance level. The t-statistics range from 8.77 (Weekly 20/80, constrained by its small sample of 82 trades) to 30.92 (Daily 30/70, with nearly 3,900 trades). These tests show that the average trade was positive on this universe; they do not show that RSI timing produced it. They compare trade returns with zero, not with a benchmark. The trades are long-only, with no stop, on stocks chosen because they survived and grew to 2026, and each position is held until RSI rises back above the exit threshold; random entries held for similar periods on the same stocks might well have gained most of the time too, but that was not tested. The tests also treat trades as independent, although trades on different stocks are often opened in the same weeks and share the same market moves: Table 6 shows 113 Daily 30/70 trades in the October 2007 to March 2009 window, and 29 of the 82 Weekly 20/80 trades fall in the GFC and COVID windows, which together span less than two years. The reported p-values therefore overstate the evidence. Separating RSI timing from the stocks' upward drift requires a random-entry benchmark with matched holding periods and standard errors clustered by date (Section 5.8).
Win rates are significantly above 50% for all strategies under the same independence assumption, with χ² p-values ranging from about 6 × 10⁻²⁹⁴ (Daily 30/70) to 5 × 10⁻¹⁷ (Weekly 20/80). A 50% win rate is a weak null for long holds on rising stocks, however, so these tests do not show that the win rates exceed what random entries would achieve.
On an annualized basis, every strategy falls short of buying and holding the same stock. The paired t-tests, which compare each stock's RSI annualized return with its own buy-and-hold annualized return, yield large negative t-statistics (p-values from 1.46 × 10⁻³³ to 1.07 × 10⁻²⁰), and the Mann-Whitney U tests point the same way. The comparison is narrow: it runs one stock at a time, capital between trades earns 0% rather than a Treasury bill rate, no index or portfolio is tested, and the annualized returns behind the tests are not reported. The likely mechanism is time out of the market rather than weak trades. Annualizing each strategy's average return over its average holding period in Table 1 gives roughly 20% to 21% a year while invested (a rough figure, since it combines two averages), but capital sits idle between signals. These results support a per-stock statement about these surviving stocks, not a conclusion about RSI versus passive indexing.
4.3 Sector Analysis
Table 3: Performance by Sector — Daily 30/70 Strategy
| Sector | Trades | Win Rate | Avg Return | Median Return |
|---|---|---|---|---|
| Mega Cap Tech | 164 | 76.8% | 10.76% | 11.72% |
| Consumer Discretionary | 363 | 79.1% | 9.35% | 11.09% |
| Materials | 284 | 79.2% | 8.15% | 10.01% |
| Energy | 379 | 77.0% | 7.98% | 10.65% |
| Healthcare | 435 | 80.0% | 7.93% | 9.27% |
| Consumer Staples | 414 | 82.1% | 7.75% | 7.94% |
| Financials | 381 | 77.7% | 7.47% | 8.81% |
| REITs | 267 | 80.1% | 7.45% | 8.76% |
| Industrials | 537 | 76.9% | 6.76% | 8.69% |
| Utilities | 456 | 85.3% | 6.37% | 7.60% |
| Communication | 212 | 75.0% | 6.10% | 8.47% |
Table 4: Performance by Sector — Weekly 30/70 Strategy
| Sector | Trades | Win Rate | Avg Return | Median Return |
|---|---|---|---|---|
| Mega Cap Tech | 29 | 86.2% | 62.82% | 58.59% |
| Consumer Discretionary | 51 | 82.4% | 48.08% | 37.23% |
| Financials | 64 | 90.6% | 44.31% | 44.18% |
| Materials | 51 | 94.1% | 43.41% | 45.11% |
| Communication | 37 | 86.5% | 37.11% | 31.02% |
| REITs | 39 | 82.1% | 36.88% | 33.86% |
| Energy | 66 | 87.9% | 33.44% | 29.52% |
| Industrials | 94 | 88.3% | 32.48% | 33.97% |
| Consumer Staples | 51 | 86.3% | 32.34% | 32.88% |
| Healthcare | 59 | 89.8% | 29.89% | 28.19% |
| Utilities | 61 | 86.9% | 24.86% | 24.50% |
Mega-cap technology stocks produce the highest average returns across both daily and weekly strategies. This ranking carries hindsight: the seven Mega Cap Tech names (AAPL, MSFT, GOOGL, AMZN, NVDA, META, and TSLA) were selected as mega-caps as of 2026, so their decades of growth are built into the sample, and the strong recoveries after their oversold readings partly reflect how they were chosen. The Weekly 30/70 average return of 62.82% for mega-cap tech is the highest of any sector-strategy combination (excluding Weekly 20/80 with its tiny samples).
Utilities have the highest Daily 30/70 win rate (85.3%) and the lowest Weekly 30/70 average return (24.86%); their Daily 30/70 average return (6.37%) is second lowest, above Communication (6.10%), and their Weekly 30/70 win rate (86.9%) is mid-range. This pattern is consistent with the sector's low-volatility profile.
One-way ANOVA results:
| Strategy | F-statistic | p-value | Significant? |
|---|---|---|---|
| Daily 30/70 | 1.884 | 0.0426 | At 0.05 only; not after Bonferroni (0.0125) |
| Daily 20/80 | 0.590 | 0.8226 | No |
| Weekly 30/70 | 3.309 | 0.0003 | Yes; also after Bonferroni (0.0125) |
| Weekly 20/80 | 0.841 | 0.5812 | No |
The ANOVA rejects equal sector means at the 0.05 level for the two 30/70 strategies, but not for the 20/80 strategies. With four strategies tested, the Bonferroni-adjusted threshold is 0.0125: the Weekly 30/70 result (p = 0.0003) meets it, while the Daily 30/70 result (p = 0.0426) does not. Both tests also assume independent trades, which the time clustering noted in Section 4.2 undermines. The lack of significance for 20/80 is likely attributable to smaller sample sizes (fewer trades per sector) rather than true uniformity.
4.4 Time Period Analysis
Table 5: Performance by Time Period, Daily 30/70 (2005 to 2025 only: 1,835 of the 3,892 trades; earlier trades are not broken out)
| Period | Trades | Win Rate | Avg Return |
|---|---|---|---|
| 2005–2009 | 337 | 73.6% | 4.80% |
| 2010–2014 | 413 | 89.3% | 9.34% |
| 2015–2019 | 466 | 81.3% | 7.54% |
| 2020–2025 | 619 | 77.1% | 7.77% |
Table 6: Performance During Market Crises
| Crisis Period | Strategy | Trades | Win Rate | Avg Return |
|---|---|---|---|---|
| GFC (Oct 2007 – Mar 2009) | Daily 30/70 | 113 | 53.1% | −1.38% |
| Daily 20/80 | 20 | 90.0% | 71.76% | |
| Weekly 30/70 | 73 | 84.9% | 42.51% | |
| Weekly 20/80 | 11 | 100.0% | 357.95% | |
| COVID (Feb – Jun 2020) | Daily 30/70 | 62 | 69.4% | 9.48% |
| Daily 20/80 | 21 | 95.2% | 69.64% | |
| Weekly 30/70 | 47 | 95.7% | 67.54% | |
| Weekly 20/80 | 18 | 100.0% | 209.48% | |
| Bear 2022 | Daily 30/70 | 120 | 68.3% | 6.21% |
| Daily 20/80 | 22 | 86.4% | 33.41% | |
| Weekly 30/70 | 24 | 83.3% | 28.89% | |
| Weekly 20/80 | 2 | 100.0% | 218.13% |
Several critical observations emerge from the temporal analysis:
The Daily 30/70 strategy's win rate dropped to just 53.1% during the GFC, with a mean return of −1.38%. This is the strategy's worst result among the periods reported and illustrates its vulnerability during sustained bear markets. When stocks are in prolonged decline, RSI oversold signals can be "value traps": the stock triggers a buy signal at RSI 30, but continues falling further, leading to substantial losses before any exit signal.
Trades with more extreme thresholds posted much larger average returns during the GFC window than in the full sample. Daily 20/80 GFC trades had a 90% win rate and a 71.76% average return, against 47.37% for the full sample, and all 11 Weekly 20/80 GFC trades were winners, averaging 357.95% against 244.10%. These samples are small, the entries fall within weeks of one another, and every stock in the universe is known to have survived the crisis, so they show how survivors bought near crisis lows performed, not how the signal would have fared on a universe that included the firms that failed (Section 5.5).
The COVID crash of 2020 was uniquely favorable for RSI strategies. The sharp, V-shaped recovery meant that oversold signals triggered at the March 2020 bottom were followed by rapid, violent rebounds. Weekly 30/70 trades had their highest win rate (95.7%) and highest average return (67.54%) of the three crisis windows during this period.
2010–2014 was the best of the four periods in Table 5 for the Daily 30/70 strategy (89.3% win rate, 9.34% average return), corresponding to the steady post-GFC bull market. In this low-volatility uptrend, oversold dips were reliably followed by recoveries.
4.5 Individual Stock Performance
Table 7: Top 10 Stocks by Average Return — Daily 30/70
| Rank | Ticker | Sector | Trades | Win Rate | Avg Return |
|---|---|---|---|---|---|
| 1 | TSLA | Mega Cap Tech | 16 | 81.2% | 23.30% |
| 2 | AMZN | Mega Cap Tech | 24 | 79.2% | 14.34% |
| 3 | AMT | REITs | 23 | 87.0% | 13.81% |
| 4 | TJX | Consumer Disc. | 34 | 85.3% | 12.76% |
| 5 | AMGN | Healthcare | 41 | 87.8% | 12.75% |
| 6 | LIN | Materials | 26 | 92.3% | 12.67% |
| 7 | SBUX | Consumer Disc. | 30 | 90.0% | 12.36% |
| 8 | EOG | Energy | 33 | 78.8% | 12.36% |
| 9 | NVDA | Mega Cap Tech | 22 | 68.2% | 12.35% |
| 10 | MSFT | Mega Cap Tech | 33 | 81.8% | 11.79% |
Table 8: Bottom 10 Stocks by Average Return — Daily 30/70
| Rank | Ticker | Sector | Trades | Win Rate | Avg Return |
|---|---|---|---|---|---|
| 91 | EXC | Utilities | 45 | 73.3% | 4.58% |
| 92 | ED | Utilities | 62 | 85.5% | 4.55% |
| 93 | UPS | Industrials | 24 | 87.5% | 4.13% |
| 94 | MRK | Healthcare | 50 | 70.0% | 4.10% |
| 95 | HAL | Energy | 46 | 67.4% | 4.01% |
| 96 | C | Financials | 47 | 70.2% | 3.94% |
| 97 | EQR | REITs | 28 | 75.0% | 3.65% |
| 98 | AAPL | Mega Cap Tech | 37 | 70.3% | 2.50% |
| 99 | TMUS | Communication | 13 | 53.8% | 2.03% |
| 100 | KHC | Consumer Staples | 10 | 50.0% | −1.19% |
The top performers share characteristics: high long-term growth trajectories (TSLA, AMZN, NVDA, MSFT) or strong mean-reversion properties (AMT, TJX, SBUX, LIN). Their strong recoveries from oversold readings partly reflect hindsight selection: these companies are in the sample because their growth carried them to 2026, the same survivorship effect discussed in Section 5.5.
The bottom performers include structurally challenged companies (KHC, with ongoing fundamental deterioration), volatile commodities plays (HAL), and stocks that experienced extended secular declines (C during the GFC, AAPL during the early 2000s tech bust). Notably, AAPL appears in the bottom 10 — its average RSI trade return of 2.50% is misleading because the stock's extraordinary long-term appreciation means buy-and-hold far dominates any market-timing approach.
KHC is the only stock with a negative average return, reflecting its persistent decline since the 2019 write-down. RSI oversold signals on a stock in secular decline produce the worst outcomes.
5. Discussion
5.1 The Central Paradox: Winning Trades, Losing Strategy
The most striking finding is the juxtaposition of overwhelmingly positive per-trade performance with significant underperformance versus buy-and-hold. Every strategy wins on the majority of trades (79–96%), has a positive average return, and exhibits profit factors well above 1.0. Yet, stock by stock, every strategy lags buying and holding the same stock.
The resolution lies in opportunity cost. The paper does not report time in the market directly, but a rough figure is available for Daily 30/70: 38.9 trades per stock at an average of 150 days each comes to about 16 years invested per stock, against a median history of about 45 years, so the typical stock is held on the order of a third of the time. For the rest, capital earns 0% in this backtest, while the stocks themselves keep drifting upward. Earning roughly 20% a year for about a third of the time, and nothing otherwise, compounds far more slowly than holding the stock continuously, which is consistent with the per-stock shortfall in Table 2.
This opportunity cost is especially punishing for the Weekly 20/80 strategy, where signals are years apart and the test statistics imply that only 57 of the 100 stocks traded at all (see the note to Table 2). The 244% average return per trade accrues over an average of 6.5 years, roughly 21% a year while invested (about 19% using the median return and median holding period). That is a high rate, so the shortfall versus buy-and-hold most likely comes from time out of the market rather than from weak trades. Because buy-and-hold annualized returns are not reported, the paper cannot say whether buy-and-hold on these stocks would have matched that rate over the same holding periods.
5.2 Where Per-Trade Results Were Strongest
Per-trade results were strongest in three settings, though the caveats in Sections 4.2 and 5.5 apply to each:
Crisis entries. Trades entered with extreme thresholds (20/80) during the GFC and COVID windows had win rates of 90% to 100% and large average returns (Table 6). The samples are small, the entries cluster within weeks, and every stock is a known survivor, so these results show how surviving stocks bought near crisis lows performed. Whether RSI adds value as one input in a discretionary process was not tested.
Steady uptrends. The 2010–2014 period, a steady post-GFC bull market with moderate pullbacks, was the best of the four periods in Table 5 for Daily 30/70, with an 89.3% win rate. In that environment, oversold dips were usually followed by recoveries.
Mega-cap growth stocks. TSLA, AMZN, NVDA, and MSFT were among the top ten Daily 30/70 performers (Table 7). These names were selected as mega-caps in 2026, so the upward drift that made most of their signals profitable is known only in hindsight; the result describes the sample rather than a way to pick stocks in advance.
5.3 Daily vs. Weekly Timeframes
The daily and weekly strategies represent fundamentally different trading philosophies:
- Daily RSI operates as a short-to-medium-term mean-reversion system, generating frequent trades (avg ~40 per stock) with moderate returns (~7.66%) and holding periods (~5 months). About 20% of its trades lose money.
- Weekly RSI operates as a long-term opportunistic system, generating rare signals (~6 per stock for 30/70, <1 for 20/80) with very large returns but very long holding periods. Many of its signals fall in major market declines (Table 6).
The weekly timeframe's higher win rates (88–96% vs. 79–87%) reflect the noise reduction inherent in weekly data: daily RSI can whipsaw around the 30 threshold during volatile periods, generating premature signals, while weekly RSI filters out this noise. Longer holding periods on rising stocks would also raise win rates, and the backtest cannot separate the two effects.
5.4 Threshold Selection: 30/70 vs. 20/80
In this sample, more extreme thresholds (20/80) produced higher win rates and profit factors at the cost of dramatically fewer trades:
- 30/70: More signals, smaller per-trade gains. Daily 30/70 generated 3,892 trades, enough in principle for a portfolio-level test, which this paper does not run.
- 20/80: Fewer signals, larger per-trade gains. The Daily 20/80 strategy's 87.3% win rate and 47.37% average return are positive raw returns per trade, not risk-adjusted alpha, and its roughly 6 signals per stock over each stock's full history (a median of about 45 years) leave long stretches with no position.
5.5 Survivorship Bias
Our universe of 100 stocks was selected as of 2026 — all are currently listed, large-cap companies. This introduces survivorship bias: companies that went bankrupt, were delisted, or were acquired are excluded. Had we included stocks like Lehman Brothers, Enron, or Bear Stearns, the RSI strategies would likely show lower win rates and average returns, as oversold signals on failing companies would have generated total losses.
The magnitude of this bias is difficult to quantify without a point-in-time universe, and we do not estimate it here; it is likely largest for the long-hold weekly strategies. The strategies' underperformance versus buy-and-hold would be less severe with survivorship bias removed (since buy-and-hold on bankrupt companies also produces total losses), but absolute returns would be lower.
Because this bias bears most heavily on our strongest results, it warrants emphasis. The universe was assembled from companies that survived to 2026: every stock in the sample is still listed, and firms that were delisted, went bankrupt, or were acquired at any point during 1962–2026 are excluded by construction. Conditioning a sample on survival is a well-documented source of bias in performance studies (Brown, Goetzmann, Ibbotson, & Ross, 1992), and here it biases the results upward because the excluded failures are precisely the cases in which an oversold entry would have ended in a large or total loss. The distortion is greatest for long-hold strategies such as Weekly 20/80 (82 trades, average holding period of roughly 6.5 years): a stock known to have survived to 2026 that is bought at an extreme oversold reading almost always recovers eventually, so its 96.3% win rate and 244% average return partly reflect how the sample was constructed rather than the signal alone. All reported win rates and average returns, especially for the weekly and 20/80 strategies, should therefore be read as an upper bound on what these rules would have earned on a point-in-time universe that included subsequently failed firms.
5.6 Transaction Costs and Practical Implementation
While we report gross returns, realistic implementation would incur:
- Commissions: Effectively zero at modern brokerages for retail investors.
- Bid-ask spreads: 1–5 bps for large-cap stocks, negligible for our universe.
- Slippage/market impact: 5–15 bps per trade for institutional-size orders.
- Taxes: Short-term capital gains tax on trades held < 1 year (the majority of Daily 30/70 trades). At a 37% marginal rate, a 7.66% gross return becomes ~4.83% after tax if losses fully offset gains.
For the Daily 30/70 strategy, assuming 10 bps round-trip costs (a modern figure that likely understates costs in the sample's early decades; see Section 3.4) and 37% tax on gains, the after-cost, after-tax average return per trade would be approximately:
- Gross: 7.66%
- Less costs: 7.56%
- Less tax on winning trades only (79.4% × 13.22% × 37%): ~3.88%
- After-cost, after-tax avg ≈ 7.56% − 3.88% ≈ 3.68% per trade
The 3.68% figure taxes winning trades and gives no credit for losses, so it is a lower bound. If losses fully offset gains, the same 37% rate applied to the 7.56% after-cost average gives about 4.76%, in line with the ~4.83% pre-cost figure above. At a 37% rate, the after-cost, after-tax average therefore lies between about 3.7% and 4.8% per trade, somewhat higher if the minority of trades held over a year are taxed at long-term rates.
This further widens the gap versus buy-and-hold, which benefits from tax deferral and long-term capital gains rates.
5.7 Data Snooping Considerations
We test four pre-specified strategy parameterizations rather than optimizing thresholds to maximize backtested performance. Nonetheless, the RSI period (14) and threshold pairs (30/70, 20/80) are "industry standard" parameters that have been widely published since 1978 — raising the question of whether they represent genuine out-of-sample anomalies or the result of collective data snooping by generations of practitioners.
Sullivan, Timmermann, and White (1999) applied White's Reality Check (White, 2000) to 7,846 technical rules on the Dow Jones Industrial Average and found that the best rule remained significant in sample but was not statistically significant in the 1987 to 1996 out-of-sample period. Reporting four variants limits selective reporting, but it does not address that concern, and this paper applies no Reality Check or similar correction. The large t-statistics (8.77 to 30.92) would ordinarily survive a multiple-comparison adjustment across four tests, but they rest on the independence assumption discussed in Section 4.2 and test returns against zero rather than against a benchmark, so they cannot settle the question. The per-stock shortfall versus buy-and-hold also gives little sign of an exploitable market inefficiency.
5.8 Limitations and Analysis Still Needed
The backtest could not be rerun for this revision, so the following analysis is still needed before the results can support stronger claims. First, a random-entry benchmark is needed: entries on the same stocks with holding periods matched to each strategy, with standard errors clustered by date (or a block bootstrap), to test whether RSI timing beats the stocks' own drift. Second, a portfolio-level backtest against the S&P 500 is needed, with Treasury bill returns on idle cash and reported annualized returns, volatility, Sharpe ratios, and drawdowns, before any conclusion can be drawn about RSI versus passive indexing. Third, a point-in-time universe such as CRSP, including delisted, bankrupt, and acquired firms, is needed to measure the survivorship bias described in Section 5.5.
Several method details are also missing or limiting. The paper does not specify whether prices were adjusted for splits and dividends. Entries and exits fill at the close of the signal bar, which a trader could not achieve exactly; next-bar execution would be more realistic. The number of positions force-closed at the end of the data is not reported, so it is unclear how much of the long-hold results rests on open positions marked at the last price. The 10 bp cost assumption reflects modern markets and likely understates costs before May 1975, when fixed commissions applied. The rules are long-only with no stop-loss. The sector ANOVA treats trades as independent, and its Daily 30/70 result does not survive a Bonferroni correction for four strategies. Finally, the original analysis plan called for Sharpe ratios, a regression of trade returns on holding period and stock volatility, and ten figures; none of these is reported here, so no conclusion in this paper rests on them.
6. Practical Implications
This section summarizes what the hypothetical backtest shows for different settings. It describes findings, not recommendations, and the caveats in Sections 5.5 and 5.8 apply throughout.
6.1 Standalone Rules Versus Buy-and-Hold
As standalone, long-only rules, none of the four RSI strategies matched buying and holding the same stock in this backtest, because time out of the market outweighed positive raw returns per trade. Whether RSI adds value as one input in a broader process, such as timing purchases an investor already plans to make, was not tested here.
6.2 Observed Results by Setting
- Daily RSI 30/70: The most frequent signals, averaging 38.9 trades per stock over each stock's full history (a median of about 45 years), with a 79.4% win rate and a 7.66% average return per trade.
- Weekly RSI 30/70: About 6 trades per stock, with an 87.7% win rate and a 37.09% average return per trade over an average hold of about 1.6 years.
- Weekly RSI 20/80: 82 trades in total, 29 of them in the GFC and COVID windows, with a 96.3% win rate on a universe of known survivors; Section 5.5 explains why that win rate should be read as an upper bound.
6.3 Sector Results
Mega Cap Tech and Consumer Discretionary stocks had the highest average returns per RSI trade in this sample, although the Mega Cap Tech group was selected from companies that were mega-caps in 2026, so its ranking reflects hindsight selection. Utilities had the highest Daily 30/70 win rate and among the lowest average returns.
6.4 Risk Management
Even with 79–96% win rates, tail risk remains significant. The worst single trade in our dataset lost 93.68% (Daily 30/70). The rules tested here use no stop-loss or position sizing, and risk-adjusted returns are not reported; how stops, sizing, or diversification across concurrent signals would change the results was not tested.
7. Conclusions
This study backtests four RSI-based trading strategies across 100 U.S. equities, 11 sectors, up to 64 years of daily data, and 5,174 total trades. Our principal findings are:
- RSI oversold/overbought strategies produce positive average returns per trade on this universe. All four strategies produce mean returns significantly different from zero (p < 10⁻¹²) and win rates significantly above 50% (χ² p-values from about 6 × 10⁻²⁹⁴ to 5 × 10⁻¹⁷), with profit factors from 3.71 to 176.45. These tests treat clustered trades as independent and compare returns with zero rather than with random entries on the same stocks, so they cannot separate RSI timing from the upward drift of stocks that survived to 2026.
- Stock by stock, every strategy's annualized return falls short of buying and holding the same stock. Paired t-tests show the shortfall for all four strategies (p < 10⁻¹⁹). The likely cause is time out of the market: the strategies earn roughly 20% to 21% a year while invested, but idle cash earns 0% in this backtest. No index or portfolio-level comparison was run, so these results do not show that RSI is inferior to passive indexing.
- More extreme thresholds and longer timeframes improve per-trade quality at the cost of signal frequency. The tradeoff is stark: Daily 30/70 offers 3,892 trades at 79% win rate and 7.66% average return, while Weekly 20/80 offers 82 trades at 96% win rate and 244% average return.
- Trades entered during crisis windows did well for the stricter rules. GFC and COVID entries for the 20/80 and weekly strategies had win rates of 85% to 100% and large average returns, while Daily 30/70 entries during the GFC averaged −1.38%. These samples are small, clustered in time, and drawn from known survivors, and the paper does not analyze volatility regimes.
- Sector results vary, but the evidence is modest. Mega Cap Tech and Consumer Discretionary produce the highest average returns, and Utilities the highest Daily 30/70 win rate. ANOVA rejects equal sector means at the 0.05 level for both 30/70 strategies, but only the Weekly 30/70 result survives a Bonferroni correction for four strategies, and the Mega Cap Tech ranking reflects hindsight selection of companies that were mega-caps in 2026.
- Survivorship bias, transaction costs, and taxes would all lower the reported absolute returns, but they affect the comparison with buy-and-hold differently. Costs and taxes would widen the gap, because the strategies trade far more often than buy-and-hold; removing survivorship bias would likely narrow it, because buy-and-hold on failed firms also ends in large losses (Section 5.5).
These findings give a qualified answer to the long-standing debate on technical analysis. On 100 stocks that survived to 2026, buying at RSI oversold readings and selling at overbought readings produced positive average trades, but the tests used here cannot show that the signal predicts returns beyond the stocks' own upward drift. Stock by stock, the standalone rules lagged buy-and-hold, mainly because capital sat idle between signals, and transaction costs and taxes would widen that gap. Whether RSI adds value as a timing input within a broader process, or against an index with Treasury bill returns on idle cash, remains untested.
Future research should examine RSI performance with survivorship-bias-free databases (e.g., CRSP), incorporate transaction costs explicitly, test combinations of RSI with other indicators (MACD, Bollinger Bands, volume confirmation), and evaluate RSI strategies on international equity markets and alternative asset classes.
Revision note, October 2026. This revision corrects the win-rate p-values, the after-tax arithmetic, the trade-count and sector statements that conflicted with the paper's own tables, the sort order of Tables 3 and 4, and the descriptions of several cited studies, and it adds references for Lo (2004) and White (2000). It restates the significance tests and the buy-and-hold comparison to what the existing numbers support, qualifies the conclusions for survivorship bias and hindsight selection, and removes unsupported volatility, Sharpe ratio, and figure material. It also adds a disclaimer and a Limitations section (5.8) listing the analysis still needed; the backtest itself was not rerun.
REFERENCES
- Bajgrowicz, P., & Scaillet, O. (2012). Technical Trading Revisited: False Discoveries, Persistence Tests, and Transaction Costs. Journal of Financial Economics, 106(3), 473–491.
- Brock, W., Lakonishok, J., & LeBaron, B. (1992). Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. Journal of Finance, 47(5), 1731–1764.
- Brown, S.J., Goetzmann, W., Ibbotson, R.G., & Ross, S.A. (1992). Survivorship Bias in Performance Studies. Review of Financial Studies, 5(4), 553–580.
- Chong, T.T.L., & Ng, W.K. (2008). Technical Analysis and the London Stock Exchange: Testing the MACD and RSI Rules Using the FT30. Applied Economics Letters, 15(14), 1111–1114.
- Chong, T.T.L., Ng, W.K., & Liew, V.K.S. (2014). Revisiting the Performance of MACD and RSI Oscillators. Journal of Risk and Financial Management, 7(1), 1–12.
- De Bondt, W.F.M., & Thaler, R. (1985). Does the Stock Market Overreact? Journal of Finance, 40(3), 793–805.
- Fama, E.F. (1970). Efficient Capital Markets: A Review of Theory and Empirical Work. Journal of Finance, 25(2), 383–417.
- Han, Y., Yang, K., & Zhou, G. (2013). A New Anomaly: The Cross-Sectional Profitability of Technical Analysis. Journal of Financial and Quantitative Analysis, 48(5), 1433–1461.
- Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. Journal of Finance, 48(1), 65–91.
- Lo, A.W. (2004). The Adaptive Markets Hypothesis: Market Efficiency from an Evolutionary Perspective. Journal of Portfolio Management, 30(5), 15–29.
- Lo, A.W., Mamaysky, H., & Wang, J. (2000). Foundations of Technical Analysis: Computational Algorithms, Statistical Inference, and Empirical Implementation. Journal of Finance, 55(4), 1705–1765.
- Malkiel, B.G. (2003). The Efficient Market Hypothesis and Its Critics. Journal of Economic Perspectives, 17(1), 59–82.
- Metghalchi, M., Chen, C.P., & Hayes, L.A. (2015). History of Share Prices and Market Efficiency of the Madrid General Stock Index. International Review of Financial Analysis, 40, 178–184.
- Neely, C.J., Rapach, D.E., Tu, J., & Zhou, G. (2014). Forecasting the Equity Risk Premium: The Role of Technical Indicators. Management Science, 60(7), 1772–1791.
- Park, C.H., & Irwin, S.H. (2007). What Do We Know About the Profitability of Technical Analysis? Journal of Economic Surveys, 21(4), 786–826.
- Shiller, R.J. (2000). Irrational Exuberance. Princeton University Press.
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. Journal of Finance, 54(5), 1647–1691.
- Taylor, M.P., & Allen, H. (1992). The Use of Technical Analysis in the Foreign Exchange Market. Journal of International Money and Finance, 11(3), 304–314.
- Tversky, A., & Kahneman, D. (1974). Judgment under Uncertainty: Heuristics and Biases. Science, 185(4157), 1124–1131.
- Urquhart, A., & McGroarty, F. (2016). Are Stock Markets Really Efficient? Evidence of the Adaptive Market Hypothesis. International Review of Financial Analysis, 47, 39–49.
- White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.
- Wilder, J.W. (1978). New Concepts in Technical Trading Systems. Greensboro, NC: Trend Research.
- Wong, W.K., Manzur, M., & Chew, B.K. (2003). How Rewarding Is Technical Analysis? Evidence from Singapore Stock Market. Applied Financial Economics, 13(7), 543–551.
Appendix: Data and Software
The original analysis also produced ten figures (return distributions, sector win rates and returns, equity curves, volatility scatter plots, box plots, a sector heatmap, holding-period distributions, RSI versus buy-and-hold returns, and yearly returns). They are not reproduced on this page, and no conclusion in this revision depends on them.
Data retrieved February 22, 2026 from Yahoo Finance via yfinance 1.2.0. All computations performed in Python 3.10.11 with NumPy, pandas, SciPy, and matplotlib. The analysis script (analysis.py) is not included with this page.