Supertrend strategy: does it work? Backtested on the top 10 coins
OK. We ran the Supertrend rule on the top 10 coins at once, each with an equal share of the account, as Hyperliquid perpetuals with fees, slippage and funding paid, and it cleared our bar on the portfolio in at least one run, or did well enough across all of them. The textbook version, 4h, long and short, returned +34.2% with a Sharpe of 0.53, against -7.7% for holding all 10 coins. Its best single coin was NEAR 4h, long and short, with a Sharpe of 0.94.
Data through 2026-09-29 on Hyperliquid perpetuals, net of fees, slippage and funding
The rule run across the top 10 coins, equal weight (a pinned list): BTC, ETH, SOL, XRP, NEAR, ENA, UNI, DOGE, SUI and TAO.
| long only | long and short | |
|---|---|---|
| 4h | 0.89 | 0.53 |
| 1d | 0.90 | 0.68 |
Sharpe of each portfolio run. Green cleared our bar, amber came close, and the outlined square is the textbook rule. Holding all 10 coins had a Sharpe of 0.42. Net of fees, slippage and funding.
The Supertrend rules we tested
Supertrend draws a line a multiple of the average true range away from price and flips when the close crosses it. It works as a trailing trend filter: long while price holds above the line, short below it, and always in the market. Below are the exact rules the backtest ran. Signals are read when a bar closes and orders fill at that close. The grade is over the long and short version, and the results show the other direction too. Every portfolio run trades the top 10 coins at once, each with 10% of the account. The coins are a fixed list (BTC, ETH, SOL, XRP, NEAR, ENA, UNI, DOGE, SUI and TAO), pinned for the whole test and the same on every page. The list is pinned rather than picked at each point in time because some large coins listed partway through the window and have no data for its start. Under the rules is the strategy itself, block by block. Fork it to change it and run your own backtest.
- Entry
- Supertrend(10, 3): ATR(10) bands 3 ATRs from the bar's midpoint. Go long when Supertrend flips to an uptrend. Go short when it flips to a downtrend.
- Exit
- Stop and reverse: the opposite flip closes the trade and opens the other side on the same bar.
- Sizing
- Each of the ten coins trades its own flips with 1/10 of the account and is always in the market once its first signal fires: each flip closes the trade and opens the other side. While a trade is open, if its share of the account drifts more than 25% from its tenth, it is trimmed or topped up back to the edge of that range. No stop.
The coins: The 10 Hyperliquid perps with the most traded dollar volume in the 90 days to 2026-09-29, among perps that traded for the whole test window, pinned: the same 10 coins are held for the whole test.
Not tested: the Supertrend line used as an intra-bar stop; a filter on trend strength.
The strategy behind the portfolio at 4h, long and short, block by block.
Opens it in Keel as your own draft, to change and backtest.
Configuration
Globals(target_timeframe="4h")
Universe(mode="manual", symbols=["BTC", "ETH", "SOL", "XRP", "NEAR", "ENA", "UNI", "DOGE", "SUI", "TAO"], market="perp", resolved=["BTC", "ETH", "SOL", "XRP", "NEAR", "ENA", "UNI", "DOGE", "SUI", "TAO"], resolved_at="2026-07-06T00:00:00Z")
Execution(rebalance="buffered", buffer_threshold=0.25, buffer_mode="relative", rebalance_method="to_edge")
Pipeline([
PriceDataLoader(),
Store("ohlcv"),
SuperTrend(period=10, multiplier=3.0),
Store("st"),
{
"long_in": [Load("st"), AboveThresholdFilter(threshold=0.0), Store("long_in")],
"short_in": [Load("st"), BelowThresholdFilter(threshold=0.0), Store("short_in")],
"long_out": [Load("st"), BelowThresholdFilter(threshold=0.0), Store("long_out")],
"short_out": [Load("st"), AboveThresholdFilter(threshold=0.0), Store("short_out")],
},
{"fast": [Load("long_in")], "slow": [Load("short_in")]},
Crossover(),
ThresholdCross(upper=0.5, lower=-0.5, mode="symmetric"),
Store("entries"),
TradeManager(entries="entries", prices="ohlcv"),
{
"long_exit": [{"a": [IsLong()], "b": [Load("long_out")]}, MaskAnd(), Exit()],
"short_exit": [{"a": [IsShort()], "b": [Load("short_out")]}, MaskAnd(), Exit()],
},
Exposure(),
EqualWeightSizer(target_leverage=1.0, max_weight=0.1),
], name="supertrend")
Results on the top 10 coins, equal weight
The rule ran on all 10 coins at once, each with an equal share of the account, on the 4h and 1d charts, in both directions. A portfolio of 10 coins is a better test than one coin. It trades many more times, so one lucky or unlucky coin cannot decide the result, and its drawdowns are usually smaller because each coin's bad stretch hits only its share of the account. It lifts a result only when the rule works across coins; a rule that works on one or two coins looks no better here. Running one rule over a whole portfolio in a single backtest is what Keel is built for. The long and short rows set the grade; the other direction shows whether any edge came from one side only. A run clears our bar when its Sharpe is clearly positive and it made enough round trips to trust. It does well in clean trends and gives back money in choppy markets, where price crosses the line often and the rule flips at a loss each time. Holding all 10 coins in equal weight is the bar to beat: over the same window it returned -7.7%. The textbook run made +34.2%, more than holding. Round trips count whole trades from entry to exit across every coin, fills count every order, and fees and funding are shown as a share of starting capital. Funding is what the positions paid: a positive figure is a cost, like fees, and a negative one means they received more funding than they paid.
| Timeframe, side | Sharpe | Total return | Yearly return | Worst drawdown | Win rate | Round trips | Fills | Time in market | Fees | Funding paid |
|---|---|---|---|---|---|---|---|---|---|---|
| 4h, long only | 0.89 | +70.7% | +28.6% | -49.6% | 35.4% | 548 | 3,703 | 85.3% | 5.4% | +18.4% |
| 4h, long and shorttextbook | 0.53 | +34.2% | +14.9% | -54.5% | 36.5% | 1,091 | 8,276 | 99.8% | 9.2% | +10.0% |
| 1d, long only | 0.90 | +72.6% | +29.4% | -40.3% | 32.2% | 100 | 701 | 78.5% | 0.9% | +17.8% |
| 1d, long and short | 0.68 | +58.1% | +24.1% | -42.2% | 33.3% | 190 | 1,444 | 98.7% | 1.8% | +9.6% |
Holding all 10 coins instead
| Portfolio | Sharpe | Total return | Yearly return | Worst drawdown |
|---|---|---|---|---|
| Hold all 10, equal weight | 0.42 | -7.7% | -3.6% | -85.7% |
Holding means a long perpetual position on each coin for the whole window, not spot. Like any perp long it pays funding out of the account while it is open, and these hold figures include that cost, so a hold can end near flat after a deep drawdown.
Coin by coin
The same rule on each coin alone, with the whole account on that one coin, at 4h and 1d, long and short. Read this if you trade one coin. Expect more spread here than in the portfolio: fewer trades per coin means more room for luck either way. The best single coin was NEAR 4h, long and short, with a Sharpe of 0.94. On its own, the rule beat holding the coin on a few of them at 4h.
| Coin | 4h Sharpe | 4h return | 4h round trips | 1d Sharpe | 1d return | 1d round trips | Hold the coin |
|---|---|---|---|---|---|---|---|
| BTC | -0.16 | -21.4% | 112 | -0.18 | -23.2% | 21 | +6.6% |
| ETH | 0.16 | -9.5% | 110 | 0.14 | -16.3% | 19 | -22.7% |
| SOL | 0.25 | -5.4% | 107 | 0.26 | -7.0% | 19 | -36.7% |
| XRP | 0.10 | -27.6% | 110 | 0.71 | +70.9% | 17 | +98.3% |
| NEAR | 0.94 | +153.6% | 105 | 0.12 | -42.4% | 21 | +0.9% |
| ENA | 0.19 | -50.9% | 117 | 0.81 | +82.0% | 17 | -5.1% |
| UNI | 0.40 | -0.8% | 108 | 0.28 | -33.1% | 17 | +3.8% |
| DOGE | 0.80 | +95.6% | 108 | 0.34 | -3.8% | 19 | -65.5% |
| SUI | 0.01 | -49.5% | 105 | 0.70 | +65.9% | 19 | -22.1% |
| TAO | -0.10 | -61.9% | 109 | -0.06 | -60.7% | 21 | -34.0% |
Holding means a long perpetual position on each coin for the whole window, not spot. Like any perp long it pays funding out of the account while it is open, and these hold figures include that cost, so a hold can end near flat after a deep drawdown.
Equity curve
The first chart is the textbook run, the portfolio at 4h, long and short; the second is the best portfolio run, the portfolio at 1d, long only. Each line starts from the same balance as holding all 10 coins in equal weight, and the drawdown underneath shows how far the rule fell from its last high. A rule can end ahead and still be hard to hold through its worst stretch.
The textbook rule: the portfolio at 4h, long and short
The best run: the portfolio at 1d, long only
Does a simple fix help?
Two of the most common changes traders make to a rule like this, each run on the same portfolio at 4h and 1d, long and short. Each fix gets its own grade by the same rules as the page grade. Neither fix lifts the grade above OK. A fix that helps on one window is a lead to test further, not a finding.
Vol-targeted sizing
OKVol-targeted sizing keeps the rule's entries and exits and changes only the size. Each trade is sized from the coin's average true range, so that a move of one average true range costs the same small share of the account on every coin. A calm coin gets a bigger position and a wild one a smaller one, with a cap on any one coin. It raised the Sharpe on both timeframes. With it, the rule grades OK.
| Run | Sharpe | As written | Total return | Worst drawdown | Round trips |
|---|---|---|---|---|---|
| 4h, long and short | 0.91 | 0.53 | +69.4% | -28.4% | 1,091 |
| 1d, long and short | 0.86 | 0.68 | +75.3% | -29.7% | 188 |
200-day trend filter
OKThe 200-day trend filter keeps the rule's entries but lets a long through only while the coin closes above its 200-day simple moving average, and a short only while it closes below. Sizing stays the same. It follows the old rule of not trading against the big trend. The average needs that much price history before its first reading, so the filter sits out the start of the window and its runs trade over a shorter period than the rule as written. Keep that in mind when you compare the two. It did not raise the Sharpe on either timeframe. With it, the rule grades OK.
| Run | Sharpe | As written | Total return | Worst drawdown | Round trips |
|---|---|---|---|---|---|
| 4h, long and short | 0.06 | 0.53 | -6.1% | -43.4% | 490 |
| 1d, long and short | 0.16 | 0.68 | -2.9% | -48.2% | 106 |
Best Supertrend settings for crypto
We ran every combination of ATR period (7, 10, 14, 20) and ATR multiplier (2, 3, 4, 5) on the portfolio, on the 4h chart, long and short, and kept everything else the same. Each square is one full backtest of all 10 coins, coloured by Sharpe, and the outlined square is the textbook setting. The setting to trust is one whose neighbours also did well. A lone bright square in a dark grid is usually luck, and a grid run on a whole portfolio is harder to fool than one run on a single coin.
Top 10 coins, 4h, long and short
On the portfolio, the good results sit on a plateau: settings near the best one did about as well, so the result does not hinge on one exact choice. The textbook setting ranks 8th of 16 by Sharpe. The best square was ATR period 20 and ATR multiplier 5, with a Sharpe of 0.84, and the worst was ATR period 20 and ATR multiplier 2, at 0.27.
| ATR periodacross: ATR multiplier | 2 | 3 | 4 | 5 |
|---|---|---|---|---|
| 7 | 0.37 | 0.59 | 0.46 | 0.81partly |
| 10 | 0.39 | 0.53 | 0.59 | 0.82partly |
| 14 | 0.42 | 0.32 | 0.64 | 0.77 |
| 20 | 0.27 | 0.28 | 0.48 | 0.84partly · best |
What this test does not tell you
A backtest answers a narrow question: what this exact rule did on these coins over this window. Read these before you trust any number on this page.
- The test covers 2024-08-15 to 2026-09-29, one stretch of the crypto market. A rule that worked here can fail in the next stretch, so every result on this page is "in this test", not a forecast.
- These are Hyperliquid perpetual futures, not spot coins. Every open position paid or earned funding, and the results include it, which most published backtests leave out.
- Costs: every fill pays a 4.5 bp fee and 4.5 bp of slippage, so a round trip costs 18 bp, and every open position pays or earns funding each hour. A rule that trades often pays these many times over, which is why the fee column matters as much as the Sharpe.
- Orders fill at the close of the bar that gives the signal. Intrabar stops, limit orders and wicks that touch a level and come back are not modelled.
- The textbook portfolio run made 1091 round trips across its coins: enough trades for the result to mean something, though one window is still one window. A single coin makes far fewer, so read the coin-by-coin table with more caution.
- The coin list is fixed for the whole window. Coins that were large at the end of the window may have been smaller at the start, so a pinned list leans a little toward coins that did well.
- Sizing: Each of the ten coins trades its own flips with 1/10 of the account and is always in the market once its first signal fires: each flip closes the trade and opens the other side. While a trade is open, if its share of the account drifts more than 25% from its tenth, it is trimmed or topped up back to the edge of that range. No stop. This tests the rule on its own. A trader who adds judgment, other filters or a different position size is running a different strategy.
How Sharpe and drawdown are measured: the Sharpe calculator and the drawdown calculator. Why the best square in a grid flatters itself: overfitting in crypto backtests.
Test it yourself
Take the rule into Keel, or hand it to your AI assistant, and change the coins, the timeframe or the settings. A result you reproduce and then break on purpose is worth more than any single table.
Fork this strategy in Keel
Opens the textbook rule on all 10 coins, 4h, long and short, as your own draft, ready to change and backtest.
Fork this strategy in KeelAsk your agent
With Keel connected to Claude, ChatGPT or another assistant, paste:
Backtest the Supertrend strategy from usekeel.io/strategies/backtested/supertrend on an equal-weight basket of BTC, ETH, SOL, XRP, NEAR, ENA, UNI, DOGE, SUI and TAO at 4h with Keel
Supertrend strategy questions
Does the Supertrend strategy work in crypto?
OK, in this test. Run on the top 10 coins in equal weight, after fees, slippage and funding, it cleared our bar on the portfolio in at least one run, or did well enough across all of them. The textbook version, 4h, long and short, returned +34.2% with a Sharpe of 0.53, against -7.7% for holding all 10 coins. The best portfolio run was 1d, long only, with a Sharpe of 0.90 and a total return of +72.6%. Whether that is worth trading depends on the timeframe and the coin: the results show every run, and the settings grid shows whether the good runs depend on one exact setting.
What are the best Supertrend settings for crypto?
On the portfolio, the textbook setting ranked 8th of 16 on the 4h chart, and the best square was ATR period 20 and ATR multiplier 5, with a Sharpe of 0.84. There, the good results sit on a plateau: settings near the best one did about as well, so the result does not hinge on one exact choice. Prefer a setting whose neighbours also did well over the single best square.
Does the Supertrend strategy work on Bitcoin?
On BTC 4h, long and short, with the whole account on Bitcoin, the rule had a Sharpe of -0.16 and returned -21.4%, against +6.6% for holding BTC over the same window, net of fees, slippage and funding. One coin is a small sample, so the portfolio result above is the better guide; the coin-by-coin table shows BTC next to the other coins.
Does Supertrend repaint?
Not once a bar has closed. The line for a closed bar is final, and this test only acts on closed bars. What changes is the current, unfinished bar, which can flip back and forth until it closes. That is why the rule here waits for the close before it trades.
How realistic is this backtest?
Closer than most published backtests. Every fill pays fees and slippage, and every open position pays or earns funding, as a real perpetual futures position does. Orders fill at the close of the signal bar, so the test never buys at a price the chart only touched. It covers one window, so treat the result as evidence, not a promise. How it works explains the engine in depth.