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:

Hull Suite strategy on XAUUSD H1 candles, 26 Aug to 9 Sep 2025: HMA 55 band in green when HULL is above its value two bars ago and red when below, with buy and exit arrows at each colour flip, Exness tick data

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:

Hull Suite strategy on XAUUSD H1 in a sideways market, 14 to 25 Jul 2025: the HMA 55 band flips colour several times and three of the five buy signals exit below their entry

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.

Hull Suite strategy equity on XAUUSD H1, long only and long plus short, versus buy and hold gold, Jan 2020 to Sep 2026, Exness Raw Spread ticks, spread and commission included, swap not included

All five markets, profit factor after costs:

Hull Suite strategy profit factor after costs by symbol and timeframe, long only and long plus short, XAUUSD USDJPY EURUSD GBPUSD NZDUSD, Jan 2020 to Sep 2026, default HMA 55

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:

Gold price on a log scale and cumulative Hull Suite H1 long-only return, 2004 to 2026: strong gains 2004 to 2011, flat to slightly down 2012 to 2019, gains again 2020 to 2026, Dukascopy data with price-scaled swap

  • 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:

  1. 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.
  2. 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.
  3. 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:

Hull Suite optimization on gold H1, training period 2004 to 2015: MAR of the default 0.40, best trend filter 0.38, median of 24 trend filters 0.24, 12 copies 0.46, 12 copies with ATR sizing 0.32

  • 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.

Optimized Hull Suite versus default on gold H1 out of sample: account growth 2016 to 2026 on Dukascopy data and 2020 to 2026 on Exness ticks, default, 12 copies and 12 copies with ATR sizing, lines almost on top of each other

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.