Op de wachtlijst
Strategieën / Trend / Bollinger Trend Catcher

Bollinger Trend Catcher: één pullback-instap per trend

Wanneer de hele onderste exponentiële band boven de 200 SMA ligt, is de trend omhoog en koopt de strategie de eerste close op of onder de 20 SMA. Hij neemt maar één long per uptrend, en shorts spiegelen de logica. Een equity curve filter pauzeert instappen wanneer de strategie onder zijn eigen 250 bar gemiddelde staat.

TrendLong & shortIntradayGoud10 min
n/aProfit factor
432Nettowinst EUR
46.55%Winstpercentage
696Trades
-387Max drawdown
0.62Gem. trade

Beste run van 6. Gold, 10 min, spread 0.6, uit run sweeps:2026-09-23-GOLD-10m-opt.tsv:4.

Instapregels, long

  1. De koers sluit op of onder de 20-periode SMA
  2. Er is nog geen long genomen in deze uptrend
  3. De strategie-equity staat op of boven zijn 250-bar gemiddelde (overgeslagen tijdens de eerste 250 bars)
  4. Geen positie open

Instapregels, short

  1. De koers sluit op of boven de 20-periode SMA
  2. Er is nog geen short genomen in deze downtrend
  3. De strategie-equity staat op of boven zijn 250-bar gemiddelde (overgeslagen tijdens de eerste 250 bars)
  4. Geen positie open

Uitstapregels

  1. Stop loss van 40 in accountvaluta
  2. Profit target van 130 in accountvaluta
  3. Shorts spiegelen dit

Testomstandigheden

PeriodeTot 2026-09-23
InstrumentGold, 10 minuten
Spread0.6 punten
Contracten1
Startkapitaal1,000,000
KostenAlleen spread. Commissies en overnight financiering zijn niet meegerekend.
BarsTot 200,000 bars, minder waar het instrument minder historie heeft
Laatst getest2026-09-23
Parameters (11)
positionSize
Contracten per trade
1
startCapital
Start-equity die het equity curve filter gebruikt
10000
equityCurvePeriod
SMA-lengte van de equity curve
250
fastPeriod
SMA-lengte voor instap en definitieve uitstap
20
midPeriod
SMA-lengte die de uitstap activeert
50
trendPeriod
Trend SMA-lengte
200
bandPeriod
Lengte van de exponentiële log-prijsbanden
42
bandWidth
Bandbreedte in standaarddeviaties
2.4
seedPeriod
SMA-lengte die de banden vult op de eerste bars
3
stopLossMoney
Beschermende stop in accountvaluta
40
takeProfitMoney
Profit target in accountvaluta
130

Elke run

Geteste markten en tijdframes

MarktTijdframePFTradesWinst %NettoMax DD
GoudBeste run10 minn/a 69646.55432 EUR-387
EUR/USDDagelijksn/a 5242.311,660 USD-240
FTSE 1004 uurn/a 9641.67762 EUR-362
S&P 500Dagelijksn/a 5446.30593 EUR-223
Nasdaq 1004 uurn/a 11843.22462 EUR-424
FTSE 100Dagelijksn/a 3732.43434 EUR-344

Grafieken

Resultaten per run

NettowinstMax drawdown

De code

ProBuilder, herschreven naar huisstandaard

// ============================================================
// Bollinger Trend Catcher
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Trend
// Direction: Long & short
// Timeframe tested: 10 minutes
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false

// --- Parameters ---
positionSize = 1          // contracts per trade
startCapital = 10000      // starting equity for the equity curve filter
equityCurvePeriod = 250   // SMA length of the equity curve
fastPeriod = 20           // entry and final exit average
midPeriod = 50            // average that arms the exit
trendPeriod = 200         // trend average the bands are compared with
bandPeriod = 42           // length of the log-price exponential bands
bandWidth = 2.4           // band width in standard deviations
seedPeriod = 3            // SMA used to seed the bands on early bars
stopLossMoney = 40        // protective stop in account currency
takeProfitMoney = 130     // profit target in account currency

// State: one trade per trend, and a staged exit.
ONCE longTrendUsed = 0
ONCE shortTrendUsed = 0
ONCE longExitStage = 0
ONCE shortExitStage = 0
ONCE logEma = 0
ONCE logVariance = 0

// --- Indicators ---
// Only trade while equity is at or above its own moving average.
equity = startCapital + StrategyProfit
equityCurve = Average[equityCurvePeriod, 0](equity)
equityOk = BarIndex < equityCurvePeriod OR (BarIndex > equityCurvePeriod AND equity >= equityCurve)

fastMA = Average[fastPeriod](close)
midMA = Average[midPeriod](close)
trendMA = Average[trendPeriod](close)

// Exponential bands on log price.
logPrice = LOG(CustomClose)
emaAlpha = 2 / (bandPeriod + 1)
IF BarIndex < bandPeriod THEN
  logEma = Average[seedPeriod](logPrice)
ELSE
  logEma = emaAlpha * logPrice + (1 - emaAlpha) * logEma
ENDIF
logError = logPrice - logEma
errorSquared = SQUARE(logError)
IF BarIndex < bandPeriod + 1 THEN
  logVariance = errorSquared
ELSE
  logVariance = emaAlpha * errorSquared + (1 - emaAlpha) * logVariance
ENDIF
logStdDev = SQRT(logVariance)
upperBand = EXP(logEma + (bandWidth * logStdDev))
lowerBand = EXP(logEma - (bandWidth * logStdDev))

44 regels meer: de instapregels en uitstapregels.

Opzet

Zo laad je hem in

  1. Kopieer de code met de kopieerknop op het codeblok.
  2. Open in ProRealTime een grafiek van het instrument en tijdframe dat je wilt testen en open dan ProOrder > New trading system en kies "Create with programming".
  3. Plak de code, geef het systeem een naam en sla het op.
  4. Klik op "Backtest", stel je eigen spread en position size in en voer hem uit voordat je overweegt er live mee te traden.

Gebruikte indicatoren

Bollinger BandsSMA
Lees dit eerstBekende zwaktes4 punten
  • Er bestaat alleen sweepdata, dus de profit factor is niet vastgelegd.
  • Op de beste run (Gold 10 minuten) kwam de nettowinst van EUR 431.9 uit 696 trades, gemiddeld EUR 0.62 per trade, wat zeer weinig ruimte laat voor extra kosten.
  • De max drawdown op die run was EUR 387.3, dicht bij de volledige nettowinst.
  • De stop (40) en target (130) zijn geldbedragen, dus hun betekenis verandert met contractgrootte en instrument.

Vragen

Over deze strategie

Kan hij in ProOrder draaien?

Ja, hij is geschreven als een ProOrder-systeem. De code is herschreven en nog niet compile-gecheckt, dus doe een backtest voordat je live gaat.

Waar is hij getest en hoe presteerde hij?

Gold, EUR/USD, FTSE 100, S&P 500 en Nasdaq 100. Elke vermelde run maakte een kleine winst, de grootste was USD 1,660 op EUR/USD Dagelijks uit 52 trades.

Welk risico hoort bij 1 contract?

Bij 1 contract had de beste run een max drawdown van EUR 387.3. Elke trade riskeert de money stop van 40, vóór spread.

Waarom hebben dagelijkse runs zo weinig trades?

De regel van één trade per trend betekent dat een nieuwe long pas komt nadat de band onder de 200 SMA is gezakt en zich heeft hersteld. Op dagbars gebeurt dat zelden, bijvoorbeeld 37 trades op FTSE 100 Dagelijks.

Gerelateerd

Strategieën zoals deze

Bollinger Squeeze

Gebruikt dezelfde indicator.

14.30 PF · 86 trades

Triple Band Market Model

Beste run op dezelfde markt, Gold.

2.27 PF · 203 trades

Long-Term Moving Average Cross

Ook een trendstrategie.

12.31 PF · 61 trades

Nieuwsgierig welke trendfilters het beste standhouden? Ga op de ProRealAlgos-wachtlijst en wissel ervaringen uit.

De ProRealAlgos community krijgt de volledige regels, de complete code en de geautomatiseerde portefeuille.

Backtestresultaten uit het verleden bieden geen garantie voor de toekomst. Dit is geen financieel advies. Samengesteld en onderhouden door ProRealAlgos. ProRealTime™ is een handelsmerk van ProRealTime SAS. prorealalgos.comStatsDocumentatie