trading2026-08-10·8 min·27/60

KST Backtest on BTC/USDT: +57.40% Net, the Best New Momentum Rule in the Lab

Know Sure Thing (KST) on real hourly BTC/USDT 2023: +109.28% naive, +57.40% after fees and funding, Sharpe 1.63. The multi-period ROC momentum rule outranks MACD, PPO, and every momentum rule except TRIX.

KST Backtest on BTC/USDT (2023, hourly, real fees)

The Know Sure Thing, Martin Pring's momentum oscillator, does something none of the other momentum rules in this lab do: it measures momentum over four different horizons at once, weighting the longer ones more heavily. The idea is that a single ROC period is either too jumpy (short) or too slow (long), so you blend them. It worked — KST is the best new momentum rule tested since post 32, at +57.40% net. Strategy Lab #55.

The setup

KST = SMA(ROC10) + 2×SMA(ROC15) + 3×SMA(ROC20) + 4×SMA(ROC30), with smoothing windows 10/10/10/15, compared to its own 9-period SMA. Long when KST is above its signal. Same engine, same costs.

Results

StrategyCategoryTotal returnCAGRMaxDDSharpeTrades
kstmomentum+57.40%+57.40%-23.73%1.63235

KST vs buy & hold (2023, hourly, BTC/USDT)

The fee bill

| Scenario | Cost/leg | Total return | MaxDD | Sharpe | Trades | |---|---:|---:|---:|---:|---:|---:| | naive (zero cost) | 0.00% | +109.28% | -15.53% | 2.55 | 235 | | taker fee 0.05%/leg | 0.05% | +65.53% | -22.45% | 1.79 | 235 | | + funding 0.01%/8h | 0.05% | +57.40% | -23.73% | 1.63 | 235 | | + slippage 10bp/leg | 0.15% | -1.57% | -36.23% | 0.10 | 235 | | + slippage 25bp/leg | 0.30% | -51.37% | -60.40% | -2.12 | 235 |

The gross Sharpe of 2.55 is the highest of any strategy in the entire lab — above even the EMA envelope. The multi-period blend gave KST the momentum family's cleanest trend capture: +109.28% naive with only a -15.5% drawdown. Costs still took half of it (the lab's universal tax), and 235 trades put KST in the coin-flip band at 25bp, where it lost.

The momentum ranking, rewritten

StrategyPostTradesNaiveFees+funding
TRIX32201+111.94%+64.74%
KST (this)235+109.28%+57.40%
Awesome34216+84.99%+41.14%
PPO45333+79.20%+22.32%
MACD15333+79.08%+22.21%

The top two momentum rules — TRIX and KST — have something in common beyond being good: they are the two that smooth the signal the most (triple-EMA and multi-period ROC) before deciding. The single-period sign-flippers (ROC, momentum, CMO) all died. KST's four-horizon averaging did exactly what Pring designed it to do: it kept the rule in the trend without flipping on every hourly wiggle.

What this does NOT prove

  • KST's parameter set here is Pring's textbook default. The 4× weighting on the 30-period ROC is doing much of the work; other weights will change results.
  • At 25bp KST is -51.37% — this is a fees-are-real strategy, not a slippage-proof one.
  • One pair, one year, one regime.

Code

from backtest_base import fetch, backtest_signal, metrics
from strategy import sig_kst

df = fetch("BTCUSDT", "binance", "2023-01-01", "2023-12-31", "1h")
signal = sig_kst(df)

res = backtest_signal(df, signal, cost_per_leg=0.0005, funding_per_bar=0.0000125)
print(metrics(res, 8760))

Reproduce it

cd blog-drafts/scripts
python gen_post_assets.py --ids 55

Data: Binance public API, hourly OHLCV, 8,735 bars. Tables above reproduce exactly from this command.

This is a backtest on historical data, not investment advice. Past performance does not predict future results.