Methodology: how the backtests were run
Everything we did to produce the 31,407 results on this site, the choices that flatter them and the ones that do not.
Data
- Source: Upbit's public candle data for its Korean-won market, downloaded on 11 October 2026. 30-minute, 1-hour and 4-hour bars were built from 15-minute candles; the 1-hour bars matched Upbit's own 60-minute candles exactly. 10-minute bars were built from 5-minute candles and 3-minute bars from 1-minute candles.
- Coins: BTC, ETH, XRP, SOL, DOGE, NEAR, SUI, XLM, ADA, ARB, BCH and LSK; the first eight only on 1- and 3-minute bars. They were chosen in October 2026 among coins listed for at least two years with high trading value, excluding stablecoins.
| Bars | Coins | Data | Second period from | Setups tested | Setups that traded |
|---|---|---|---|---|---|
| 1-minute | 8 | 2026-04-01 – 2026-10-10 | 2026-07-16 | 894 | 883 |
| 3-minute | 8 | 2026-04-01 – 2026-10-10 | 2026-07-16 | 4,359 | 4,064 |
| 5-minute | 12 | 2025-01-01 – 2026-10-10 | 2025-11-01 | 4,359 | 4,100 |
| 10-minute | 12 | 2025-01-01 – 2026-10-10 | 2025-11-01 | 4,359 | 4,179 |
| 15-minute | 12 | 2024-01-01 – 2026-10-10 | 2025-07-01 | 4,359 | 4,095 |
| 30-minute | 12 | 2024-01-01 – 2026-10-10 | 2025-07-01 | 4,359 | 4,073 |
| 1-hour | 12 | 2024-01-01 – 2026-10-10 | 2025-07-01 | 4,359 | 4,161 |
| 4-hour | 12 | 2024-01-01 – 2026-10-10 | 2025-07-01 | 4,359 | 3,754 |
Trading model
- A signal is read at a bar's close and filled at the next bar's open. Returns run from open to open. Stops, trailing stops and take-profits are checked at bar closes.
- Spot buying only: no shorting, no leverage, one position per coin.
- Equal money in each coin. The portfolio's return for a bar is the average of the coins' returns, which amounts to rebalancing every bar. The "holding the same coins" baseline is built the same way, so it differs slightly between bar lengths.
Costs
- Fee: Upbit's 0.05% on every buy and every sell. A buy costs the fill plus the fee; a sale pays the fill minus the fee.
- Slippage: one price tick per trade, as a share of the price at that moment, with a minimum of 0.05%. The tick was measured from the price data itself (the largest step that at least 98% of the last 300 closes were multiples of), so changes in Upbit's tick table are reflected when they happened.
- Every result is also reported with the fee alone, so the effect of slippage can be seen.
What was tested
- Single indicators: 16 rule families with 306 settings in total, listed on each indicator page.
- Combinations: on each bar length, the seven families whose best settings had the highest first-period Sharpe ratio (fee only, at least 40 trades in the first period) contributed their top three settings, 21 triggers in all. Each trigger was combined with one filter (15), one exit rule (13), two filters (105 pairs) or one filter plus one of four exit rules (60): 193 combinations per trigger and 4,053 per bar length. On 1-minute bars only the one-ingredient combinations were run, 588 in total.
- Filters: close above its 50-, 100- or 200-bar EMA; a longer chart above its 50- or 200-bar EMA (two longer charts per bar length); ADX(14) above 20 or 25; volume above 1 or 1.5 times its 20-bar average; RSI(14) above 50; RSI(14) below 70; Bitcoin above its 100-bar EMA on either longer chart.
- Exit rules: stop-loss 1%, 2% or 3%; trailing stop 2%, 3% or 5%; take-profit 1%, 2% or 3%; 2% stop with 3% take-profit; 2% stop with 3% trailing stop; exit after 12 or 48 bars.
The two-period test
Each bar length's data was split into a first period, used to pick which settings went into combinations, and a later second period that played no part in any choice. A setup passed when it made at least +10% a year in both periods, after the fee and slippage, and its second-period return was at least half of its first. Passing reduces the role of luck; it does not remove it.
Statistics
- Return a year: compounded annual growth rate of the portfolio over the period. 1- and 3-minute results cover six months and are turned into yearly rates, which exaggerates them.
- Worst fall: the largest fall from a previous high (maximum drawdown).
- Sharpe ratio: mean bar return divided by its standard deviation, annualised, without a risk-free rate.
- Trades and win rate: summed over all coins; a trade wins when it makes money after costs.
- Worst coin: the yearly return of the weakest coin traded on its own.
- Never traded: 2,098 combinations whose filters never all agreed made no trades. They are kept in the data but left out of every share and median.
Checks
- The holding baseline equals the open-to-open price change minus one fee, as it should.
- Single trades were checked against the formula by hand.
- Rebuilt 1-hour bars matched Upbit's 60-minute candles with no difference.
- The leading 4-hour rules were re-tested on nine years of data from 2017.
Known limits
- Survivorship: the coins were picked in 2026 from those that survived; coins that collapsed or were delisted are missing. This flatters every result. How much it can matter.
- Many tests: with tens of thousands of setups, the best results include luck.
- Fills: one tick of slippage can understate costs in fast markets and on thin order books, especially for breakouts.
- Periods: results depend on the market of each period. The second period, from mid-2025, was falling for most of these coins.
- Not modelled: taxes, withdrawal costs, outages, order limits and the behaviour of a real account with limited capital.
Earlier research
The articles in Research describe experiments from September and October 2026 with their own methods, costs and periods, stated in each article. "Replay" means a backtest; "paper" means live prices with no real money.