Rejoindre la liste d'attente
Stratégies / Tendance / Bollinger Trend Catcher

Bollinger Trend Catcher : une entrée sur repli par tendance

Lorsque toute la bande exponentielle inférieure est au-dessus de la SMA 200, la tendance est haussière, et la stratégie achète la première clôture au niveau ou en dessous de la SMA 20. Elle ne prend qu'un seul long par tendance haussière, et les shorts suivent la logique inverse. Un filtre de courbe d'equity met les entrées en pause lorsque la stratégie est en dessous de sa propre moyenne à 250 barres.

TendanceLong & shortIntradayOr10 min
n/aProfit factor
432Gain net EUR
46.55%Taux de réussite
696Trades
-387Max drawdown
0.62Trade moyen

Meilleure exécution sur 6. Gold, 10 min, spread 0.6, de l'exécution sweeps:2026-09-23-GOLD-10m-opt.tsv:4.

Règles d'entrée, long

  1. Le prix clôture au niveau ou en dessous de la SMA à 20 périodes
  2. Aucun long n'a encore été pris dans cette tendance haussière
  3. L'equity de la stratégie est au niveau ou au-dessus de sa moyenne à 250 barres (ignoré pendant les 250 premières barres)
  4. Aucune position ouverte

Règles d'entrée, short

  1. Le prix clôture au niveau ou au-dessus de la SMA à 20 périodes
  2. Aucun short n'a encore été pris dans cette tendance baissière
  3. L'equity de la stratégie est au niveau ou au-dessus de sa moyenne à 250 barres (ignoré pendant les 250 premières barres)
  4. Aucune position ouverte

Règles de sortie

  1. Stop loss de 40 dans la devise du compte
  2. Objectif de gain de 130 dans la devise du compte
  3. Les shorts font l'inverse

Conditions de test

PériodeJusqu'au 2026-09-23
InstrumentOr, 10 minutes
Spread0.6 points
Contrats1
Capital de départ1,000,000
CoûtsSpread uniquement. Les commissions et le financement overnight ne sont pas inclus.
BarresJusqu'à 200,000 barres, moins lorsque l'instrument a moins d'historique
Dernier test2026-09-23
Paramètres (11)
positionSize
Contrats par trade
1
startCapital
Equity de départ utilisée par le filtre de courbe d'equity
10000
equityCurvePeriod
Longueur de la SMA de la courbe d'equity
250
fastPeriod
Longueur de la SMA d'entrée et de sortie finale
20
midPeriod
Longueur de la SMA qui arme la sortie
50
trendPeriod
Longueur de la SMA de tendance
200
bandPeriod
Longueur des bandes exponentielles de log-prix
42
bandWidth
Largeur des bandes en écarts-types
2.4
seedPeriod
Longueur de la SMA qui initialise les bandes sur les premières barres
3
stopLossMoney
Stop de protection dans la devise du compte
40
takeProfitMoney
Objectif de gain dans la devise du compte
130

Chaque exécution

Marchés et unités de temps testés

MarchéUnité de tempsPFTrades% de réussiteNetMax DD
OrMeilleure exécution10 minn/a 69646.55432 EUR-387
EUR/USDJournaliern/a 5242.311,660 USD-240
FTSE 1004 heuresn/a 9641.67762 EUR-362
S&P 500Journaliern/a 5446.30593 EUR-223
Nasdaq 1004 heuresn/a 11843.22462 EUR-424
FTSE 100Journaliern/a 3732.43434 EUR-344

Graphiques

Résultats par exécution

Gain netMax drawdown

Le code

ProBuilder, réécrit selon le standard maison

// ============================================================
// 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 lignes supplémentaires : les règles d'entrée et de sortie.

Configuration

Comment la charger

  1. Copiez le code avec le bouton Copier du bloc de code.
  2. Dans ProRealTime, ouvrez un graphique de l'instrument et de l'unité de temps que vous voulez tester, puis ouvrez ProOrder > Nouveau système de trading et choisissez "Créer par programmation".
  3. Collez le code, donnez un nom au système et enregistrez-le.
  4. Cliquez sur "Backtest", définissez votre propre spread et votre position size, puis lancez-la avant d'envisager de la trader en réel.

Indicateurs utilisés

Bandes de BollingerSMA
À lire d'abordFaiblesses connues4 points
  • Seules des données de balayage existent, donc le profit factor n'a pas été enregistré.
  • Sur la meilleure exécution (Gold 10 minutes), le gain net de EUR 431.9 provient de 696 trades, soit une moyenne de EUR 0.62 par trade, ce qui laisse très peu de marge pour des coûts supplémentaires.
  • Le max drawdown de cette exécution a été de EUR 387.3, proche de la totalité du gain net.
  • Le stop (40) et l'objectif (130) sont des montants en argent, donc leur signification change selon la taille du contrat et l'instrument.

Questions

À propos de cette stratégie

Peut-elle fonctionner dans ProOrder ?

Oui, elle est écrite comme un système ProOrder. Le code a été réécrit et pas encore vérifié à la compilation, donc lancez un backtest avant de passer en réel.

Où a-t-elle été testée et quels ont été ses résultats ?

Gold, EUR/USD, FTSE 100, S&P 500 et Nasdaq 100. Chaque exécution listée a réalisé un petit profit, le plus élevé étant USD 1,660 sur EUR/USD Journalier avec 52 trades.

Quel risque accompagne 1 contrat ?

À 1 contrat, la meilleure exécution a eu un max drawdown de EUR 387.3. Chaque trade risque le stop de 40 en argent, avant spread.

Pourquoi les exécutions journalières comptent-elles si peu de trades ?

La règle d'un seul trade par tendance signifie qu'un nouveau long n'arrive qu'après que la bande est passée sous la SMA 200 puis s'est redressée. Sur des barres journalières, cela se produit rarement, par exemple 37 trades sur FTSE 100 Journalier.

Voir aussi

Des stratégies comme celle-ci

Bollinger Squeeze

Utilise le même indicateur.

14.30 PF · 86 trades

Triple Band Market Model

Meilleure exécution sur le même marché, Gold.

2.27 PF · 203 trades

Long-Term Moving Average Cross

Également une stratégie de tendance.

12.31 PF · 61 trades

Curieux de savoir quels filtres de tendance tiennent le mieux ? Rejoignez la liste d'attente ProRealAlgos et comparez vos observations.

La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.

Les résultats passés de backtest ne garantissent pas les résultats futurs. Ceci n'est pas un conseil financier. Sélectionné et maintenu par ProRealAlgos. ProRealTime™ est une marque de ProRealTime SAS. prorealalgos.comStatsDocumentation