TradingView Hull Suite Strategy: Repaint, Settings, Backtest
The short version. This is a TradingView Hull Suite strategy backtest, and it also answers the repaint and settings questions. The script is Hull Suite Strategy by DashTrader, one of the most-boosted open-source strategies on TradingView. I ported it line for line to Python and ran it on 6.7 years of real Exness ticks with real spread and commission. Then I went back to 2004 on gold, using data I hadn't looked at when picking the result.
- Gold H1 looks great since 2020. Long only (the script's default): profit factor 1.47 on 892 trades, +3,351 USD per 0.01 lot, worst drawdown 506. Buy and hold made +2,588 with a drawdown of 1,600.
- It holds up under stress. Shifted candle times, 39 settings, a random-timing test. On gold H1 it passed all three.
- But it needs gold to trend. From 2012 to 2019, while gold fell and then went sideways, the same settings lost 11% (PF 0.95). The profit before 2020 came from 2004 to 2011.
- Forex lost money. EURUSD, GBPUSD and NZDUSD lost on M15 and H1. The short side never earned its keep anywhere.
- I couldn't improve it. Trend filters, running 12 copies and ATR position sizing all failed on years I hadn't used to pick them.
My verdict: it's a decent trend filter for gold and a poor robot. It works when the market trends and bleeds slowly when it doesn't, sometimes for years.
What is the Hull Suite strategy on TradingView?
It's a Hull moving average with a simple rule: be long while the Hull line is rising, get out when it turns down. The Hull Suite Strategy page is DashTrader's conversion of InSilico's Hull Suite indicator into a strategy. Version 2 dates from 25 May 2020 and it had 15,140 boosts when I checked in November 2026.
The default is a Hull MA of the close with length 55:
HULL = WMA(2 × WMA(close, 27) − WMA(close, 55), 7)
Then it compares the line with its own value two bars earlier. Here's the trading part of the Pine code (Pine v4):
HULL = Mode(modeSwitch, src, length)
if HULL[0] > HULL[2] and testPeriod()
strategy.entry("buy", strategy.long)
if HULL[0] < HULL[2] and testPeriod()
strategy.entry("sell", strategy.short)
One detail that's easy to miss: the Strategy Direction input defaults to "long", and the script calls strategy.risk.allow_entry_in(long). With that set, the sell signal doesn't open a short. It just closes the long. So out of the box, Hull Suite is long or flat. Switch the input to "all" and it becomes a stop-and-reverse system that's always in the market. I tested both.
There's no stop loss and no take profit. The coloured band you see on the chart is the gap between HULL and HULL[2], green when rising and red when falling. A colour flip is the signal:

In a clean trend like that one, you ride most of the move and hand back a little at each turn. In a range it looks like this:

Same rule, same settings. The band flips back and forth, and each flip costs the spread plus whatever the line gave back before it turned.
Does Hull Suite repaint?
No. The strategy decides at the bar close and fills at the next bar's open, and it doesn't call security() on other timeframes. The band colour on the live, unfinished bar can change while the bar is open, which is why the chart can look jumpy in real time. With the default calc_on_every_tick = false, the strategy ignores that and only acts once the bar has closed. What you see on a historical chart is what you'd have got, before costs.
What does the author claim?
Almost nothing, and that's fair. The page has two release notes: one says it converted the indicator into a strategy for easier backtesting, the other says it added a direction setting that "defaults to long only". There are no profit claims. The only advice is inside an input label: "180-200 for floating S/R, 55 for swing entry". I tested both lengths below.
How I tested it
- Port: I rewrote the logic in Python with Pine's weighted moving average. Pine v4 rounds 55 / 2 down to 27 and √55 to 7, and I did the same. The long-only behaviour copies
allow_entry_in: a sell signal closes the long and opens nothing. - Main data: Exness Raw Spread tick archives for XAUUSD, USDJPY, EURUSD, GBPUSD and NZDUSD, January 2020 to September 2026 (gold starts on 29 January 2020, where the archive begins).
- Costs: longs fill at the real ask on the first tick of the next bar, shorts at the bid, plus 3.5 USD per lot per side commission. Swap gets its own section.
- Older gold data: Dukascopy M1 bars via Tickstory, 2004 to July 2026, with the spread from the data, no commission, and swap scaled to the gold price of the time.
- Size: fixed, no compounding. Gold is in USD per 0.01 lot (one ounce), forex in pips.
Is the TradingView backtest accurate?
The signals, yes. The money, not quite. The script sets commission to 0, and TradingView's tester has no spread or swap setting, as I explained in the SuperTrend backtest. On H1 gold the gap is small. On forex M15 it decides the result:
| Test (long only) | Trades | PF, no costs | PF, real costs | Net, no costs → real |
|---|---|---|---|---|
| Gold M15 | 3,766 | 1.15 | 1.11 | +2,384 → +1,774 USD |
| Gold H1 | 892 | 1.50 | 1.47 | +3,490 → +3,351 USD |
| USDJPY M15 | 3,949 | 1.10 | 0.98 | +4,416 → −832 pips |
| EURUSD M15 | 3,965 | 0.96 | 0.86 | −1,332 → −4,605 pips |
| NZDUSD M15 | 3,994 | 0.92 | 0.76 | −2,083 → −7,310 pips |
USDJPY M15 is the one to look at. Profitable on a TradingView-style test, losing once you pay the spread.
The results
Gold (XAUUSD Raw Spread), 29 Jan 2020 – Sep 2026, default settings, after spread and commission, before swap:
| Timeframe | Direction | Trades | Win rate | PF | Net | Max drawdown |
|---|---|---|---|---|---|---|
| M15 | long only | 3,766 | 34.9% | 1.11 | +1,774 | 638 |
| H1 | long only | 892 | 39.0% | 1.47 | +3,351 | 506 |
| H1 | long + short | 1,784 | 36.7% | 1.28 | +4,130 | 614 |
| H4 | long only | 239 | 43.5% | 1.66 | +2,246 | 1,146 |
| D1 | long only | 51 | 37.3% | 2.14 | +1,737 | 1,197 |
| Buy and hold | 1 | +2,588 | 1,600 |
Net and drawdown in USD per 0.01 lot. Drawdown is on open equity.

All five markets, profit factor after costs:

Gold and USDJPY made money from H1 up. Both had long trends in this window: gold went from about 1,580 to over 4,000, and the yen weakened from 108 to 150-plus. EURUSD, GBPUSD and NZDUSD lost on M15 and H1 and broke even on H4. The D1 cells look good, but with 44 to 102 trades over 6.7 years they don't mean much.
Adding shorts made gold H1 more profitable (+4,130 vs +3,351) and everything else worse or flat.
Is the gold H1 result real?
On 2020–2026 data, yes. Three checks:
- Shifted candles. I cut H1 bars at :15, :30 and :45 past the hour. Long-only PF stayed between 1.47 and 1.55.
- Random timing. I took the strategy's own in/out pattern and slid it to a random point in time, 300 times. Same number of trades, same holding times, but no link to the price. The real result (+3,351) beat 296 of the 300 shifted copies, whose median was +1,245. So it isn't just "long half the time in a rising market". The timing adds something.
- Not a few lucky trades. The five biggest winners made +1,120. The other 887 trades made +2,232.
USDJPY H1 passed the random-timing test too (+5,148 vs a median of +1,346). Gold H4 didn't: +2,246 against a median of +1,322, beaten by 15% of the random copies. That one is mostly the gold rally.
And here's the catch. Split gold H1 long-only by year, as a percentage of the gold price:
| Year | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 (to Sep) |
|---|---|---|---|---|---|---|---|
| Return per trade, summed | +21.0% | −1.1% | +0.2% | +9.5% | +18.6% | +42.8% | +22.3% |
When gold trended (2020, 2024–2026) it made money. In 2021–2022, when gold went nowhere, it went nowhere too. That made me want a longer history.
Does it work on gold before 2020?
Only while gold was trending. I ran the same default settings on Dukascopy gold data from 2004 to 2019, a period I never touched when choosing "gold H1". Swap on longs is scaled to the price of the time, so 2005 isn't charged at 2026 rates.
| Gold, 2004–2019 | Trades | PF after swap | Summed return | Shorts |
|---|---|---|---|---|
| M15 long only | 9,405 | 0.85 | −249% | |
| H1 long only | 2,181 | 1.15 | +118% | |
| H1 long + short | 4,361 | 1.09 | +122% | +4.6% |
| H4 long only | 594 | 1.05 | +38% | |
| H4 long + short | 1,188 | 0.96 | −36% | −74% |
| D1 long only | 122 | 1.35 | +73% |
Fixed size, no compounding. "Summed return" adds up each trade's profit as a percentage of its entry price. Gold itself rose 266% over the period.
H1 long-only is still positive. But look at where the money came from:

- 2004–2011, gold's long bull run: +129%, PF 1.38.
- 2012–2019, gold slides from about 1,700 to 1,050 by late 2015 and then ranges: −11%, PF 0.95. Eight years of nothing.
- 2020–2026 on the same Tickstory data: +93%, PF 1.42, close to the Exness result.
So the edge is real in the sense that it catches trends better than random entries (the random-timing test gave the same answer on 2004–2019). But if gold stops trending, so does the equity curve. And shorts added almost nothing in any period. Over 16 years of H1 shorts: +4.6%.
What are the best Hull Suite settings?
On gold, the default (Hma, length 55, long only) is fine, and there's no magic setting. I ran 13 lengths from 9 to 250 across all three Hull variants (Hma, Ehma, Thma), so 39 combinations per market, on H1 and H4, after costs:
| Market (long only) | Combos with PF > 1 | PF > 1.2 | Profitable in 2020–22 and 2023–26 | Median PF | Default PF |
|---|---|---|---|---|---|
| XAUUSD H1 | 39 / 39 | 31 | 29 | 1.42 | 1.47 |
| XAUUSD H4 | 39 / 39 | 38 | 38 | 1.60 | 1.66 |
| USDJPY H1 | 38 | 26 | 36 | 1.24 | 1.24 |
| USDJPY H4 | 39 | 27 | 36 | 1.25 | 1.28 |
| EURUSD H1 | 15 | 0 | 10 | 0.95 | 0.87 |
| GBPUSD H1 | 13 | 0 | 7 | 0.97 | 0.97 |
| NZDUSD H1 | 0 | 0 | 0 | 0.85 | 0.86 |
39 combinations per row. On H1 the trade count runs from about 240 (length 250) to 5,600 (length 9).
- Hma, Ehma or Thma? It doesn't matter. Across every test the median profit factor was 1.02, 1.01 and 1.00.
- 55 or 180–200? On gold H1 since 2020, length 180 gave 1.55 and 200 gave 1.69, against 1.47 for 55. On 2004–2019 they gave 1.05 and 1.10, against 1.15. Nothing to choose between them.
- Short lengths are worse. On 2004–2019 gold H1, lengths 9 to 30 lost money (PF 0.84 to 0.95) and 40 to 120 made money (1.11 to 1.15). Only 27 of 39 combinations had PF above 1 in that period, against 39 of 39 since 2020.
- Long only beats long + short almost everywhere. If you trade it, leave the direction on the default.
The market matters far more than the dials. No setting rescues NZDUSD, and none was needed on gold in a trend.
How does it compare with PMax and SuperTrend?
On gold H1 it beat both. Same Exness data, same costs, default settings, long + short so the comparison is fair:
| Gold H1, 2020–Sep 2026 | Trades | PF | Net | Max drawdown |
|---|---|---|---|---|
| Hull Suite | 1,784 | 1.28 | +4,130 | 614 |
| PMax | 448 | 1.37 | +2,638 | 1,321 |
| SuperTrend | 935 | 1.09 | +1,071 | 924 |
On gold H4 it's the other way round: SuperTrend made 1.90, Hull Suite 1.25 and PMax 0.98. None of the three is the best everywhere.
Risk structure
- No stop loss. A long only ends when the Hull line turns. The worst gold H1 trade lost 138 USD per 0.01 lot: bought at 4,721.70 on 20 March 2026, sold at 4,583.54 twelve hours later.
- All ten of the worst gold H1 trades happened between October 2025 and September 2026, with gold at 4,000 to 5,200. A fixed lot risks more as the price rises. Size by ATR or by percent risk if you run it.
- Swap. Gold H1 trades last 35 hours on average (longest 261). On a Raw account, swap at today's rate cuts the H1 long-only profit from +3,351 to +2,666 (+2,929 if swap scales with the price). Buy and hold pays more swap, so it drops further, to +1,288.
- In money: 5,000 USD at a fixed 0.01 lot, gold H1 long only, swap included, grew to 7,666 with a worst drawdown of 7.1% on closed trades.
- Losing streaks. The longest run of losers on gold H1 was 13 trades. The win rate is 39%, normal for trend following.
- What isn't a red flag: no martingale, no grid, no averaging down.
Can you optimize Hull Suite for more profit?
I tried, and I couldn't. I tested three common upgrades on gold H1, long only:
- A trend filter: only buy when price is above a longer moving average. 24 versions: EMA 100 to 800 on H1, EMA 20 to 200 on D1, and the slope of the D1 EMA. Each version ran in two modes: block new buys only, or also close the open long when the filter turns off.
- Several copies at once: lengths 40, 55 and 90, each on H1 bars cut at :00, :15, :30 and :45. That's 12 copies, each with 1/12 of the account.
- Position size by ATR: bigger when the market is quiet, smaller when it's wild.
I skipped stop losses, take profits and trailing stops. On PMax none of the 89 exit variants I tried beat the original out of sample. Swap I left out too: that's an account choice, not a strategy change.
To avoid fooling myself, I wrote the rules down before running anything. All choices were made on 2004–2015 only. The winner would then get one run on 2016 to July 2026 (Dukascopy) and on November 2020 to September 2026 (Exness ticks), and it had to beat the default on both. The yardstick was MAR: compounded annual return divided by the worst drawdown. Doubling the lot doubles both, so MAR measures the strategy, not the bet size.
On the training years, only the 12 copies won:

- None of the 24 trend filters beat the default. The best, D1 EMA 200, reached 0.38 against 0.40. This surprised me, because a 200 EMA filter doubled return-to-drawdown on PMax. The difference is that Hull Suite is already long only. It steps aside when gold falls, so a filter mostly makes it late at the start of each new trend.
- ATR sizing made it worse (0.32). It puts on the biggest size when gold is quiet, which is exactly when Hull Suite gets chopped up.
- 12 copies looked better: MAR 0.46, drawdown 17% instead of 23%, return 7.9% a year instead of 9.4%.
Then the one run on unseen years:
| Gold H1, long only | Annual return | Max drawdown | MAR |
|---|---|---|---|
| Dukascopy 2016 – Jul 2026, default | 8.8% | 18.9% | 0.465 |
| Dukascopy 2016 – Jul 2026, 12 copies | 8.1% | 16.9% | 0.481 |
| Exness Nov 2020 – Sep 2026, default | 14.6% | 18.2% | 0.799 |
| Exness Nov 2020 – Sep 2026, 12 copies | 12.8% | 16.4% | 0.776 |
Compounded, 100% of the account per position, spread, commission and price-scaled swap included.

The 12 copies came out 3% better on one dataset and 3% worse on the other. Month by month, at the same drawdown, the difference is noise (t = 0.30 and −0.12). So it fails the rule I set: it gives up return for a smaller drawdown at about the same rate a smaller lot would.
The copies also diversify less than you'd hope. On Exness, five of the ten worst trades in the 12-copy version closed on the same afternoon, 17 June 2026, each from a different copy, when gold dropped about 150 USD in a few hours. The copies use the same idea on the same market, so they get hit together.
So the edge in Hull Suite is the plain rule itself: catch gold's trends. The extra layers I tried didn't add to it. The only remaining dial is risk. A bigger lot scales profit and drawdown together. It won't make the strategy better.
Who should use it?
If you trade gold and want one line that tells you when to be long and when to stand aside, Hull Suite on H1 with the defaults is a reasonable pick, and it beat PMax and SuperTrend there over 2020–2026. Use it as a filter or as an exit for another entry. If you run it on its own, be ready for years like 2012–2019 when it goes nowhere, and keep it long only. I wouldn't use it on EURUSD, GBPUSD or NZDUSD, and I wouldn't use it below H1 anywhere.
What I couldn't verify
- TradingView itself. My "no costs" numbers come from my port with the script's defaults, not from TradingView's tester.
- Forex swap. It isn't in the forex numbers. On USDJPY longs it would probably have helped.
- Other brokers and slippage. Fills are on the first tick of the next bar, Exness data only for 2020–2026.
- Daily candles. Mine close at UTC midnight; TradingView's forex daily bars usually close at 17:00 New York.
- Stocks, indices and crypto. I only tested forex and gold.
Bottom line
The TradingView Hull Suite strategy doesn't repaint, and on gold H1 it times trends better than chance: PF 1.47 since 2020, 1.15 since 2004. But it only pays when gold trends, it lost money from 2012 to 2019, and forex lost money on M15 and H1. Trend filters, extra copies and ATR sizing didn't improve it on unseen data. Keep it long only and treat it as a trend filter, not a robot.
This is part of a series where I take the most-boosted open-source TradingView strategies, port them exactly and test them on broker ticks with real costs. The PMax backtest uses the same data and the same five markets if you want to compare.
I'm not affiliated with TradingView, DashTrader or InSilico. Past results, including backtests, don't guarantee future results.
Comments
No comments yet. Questions about the settings, the data or the numbers are welcome.
Log in or create a free account to comment.