Rejoindre la liste d'attente
Stratégies / Momentum / Impulse Momentum

Impulse Momentum : acheter des bars fortes sur gros volume

Impulse Momentum combine un momentum sur 13 bars avec un score d'impulsion sur 3 bars et achète quand ce signal dépasse 0.7 et sa propre moyenne sur 8 bars. Le volume doit être 1.2 fois la normale, la bar doit faire 1.8 fois l'amplitude moyenne récente, et la SMA 9 doit se situer au-dessus de la SMA 21. Elle sort sur un stop de 1%, quand le signal faiblit, ou quand le prix clôture sous la SMA 9.

MomentumLong uniquementSwingNasdaq 1001 heure
1.44Profit factor
4,958Gain net EUR
48.65%Taux de réussite
481Trades
-1,182Max drawdown
10.31Trade moyen

Meilleure exécution sur 10. Nasdaq 100, 1 heure, spread 3, issue de l'exécution pf:2026-09-24-NAS100-1h.tsv:2.

Règles d'entrée, long

  1. Le volume est supérieur à 1.2 fois sa moyenne sur 21 bars
  2. L'amplitude de cette bar est supérieure à 1.8 fois l'amplitude moyenne sur 5 bars
  3. Le mouvement haussier depuis le plus haut précédent est plus grand que le mouvement baissier depuis le plus bas précédent
  4. La SMA sur 9 bars est au-dessus de la SMA sur 21 bars

Règles de sortie

  1. Stop loss 1% sous l'entrée

Conditions de test

PériodeJusqu'au 2026-09-25
InstrumentNasdaq 100, 1 heure
Spread3 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-25
Paramètres (14)
positionSize
Contrats par trade
1
momentumPeriod
Longueur du momentum de prix et fenêtre de normalisation
13
volumePeriod
Longueur du volume moyen
21
fastPeriod
Longueur de la SMA rapide
9
slowPeriod
Longueur de la SMA lente
21
impulseBars
Bars dans la fenêtre d'impulsion courte
3
powerPeriod
Longueur de l'amplitude moyenne des bars pour la puissance d'impulsion
5
momentumWeight
Poids du momentum normalisé dans le signal
2
impulseWeight
Poids de l'impulsion normalisée dans le signal
3
signalPeriod
Longueur de la SMA de la ligne de signal
8
signalLevel
Le signal doit être au-dessus de cette valeur pour acheter
0.7
minVolumeRatio
Le volume doit être ce multiple de sa moyenne sur 21 bars
1.2
minImpulsePower
L'amplitude de la bar doit être ce multiple de sa moyenne sur 5 bars
1.8
stopLossPct
Stop de protection, pourcentage du prix d'entrée
1

Chaque exécution

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

MarchéUnité de tempsPFTrades% de réussiteNetMax DD
Nasdaq 100Meilleure exécution1 heure1.44 48148.654,958 EUR-1,182
USD/JPY1 heuren/a 83942.55144,730 JPY-56,450
USD/JPY10 minn/a 97540.2146,450 JPY-40,770
Argent3 minn/a 77336.743,975 USD-2,757
Nikkei 225Journaliern/a 2245.453,294 USD-1,928
Argent2 minn/a 81233.252,654 USD-2,639
Nasdaq 1004 heuresn/a 28253.192,145 EUR-1,341
DAX 404 heuresn/a 21549.301,078 EUR-821
Or4 heuresn/a 34541.74321 EUR-185
OrJournaliern/a 4339.53164 EUR-156

Graphiques

Résultats par exécution

Gain netMax drawdown

Le code

ProBuilder, réécrit selon le standard maison

// ============================================================
// Impulse Momentum
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Momentum
// Direction: Long only
// Timeframe tested: 1 hour
// ============================================================

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

// --- Parameters ---
positionSize = 1             // contracts per trade
momentumPeriod = 13          // price momentum length and normalising window
volumePeriod = 21            // average volume length
fastPeriod = 9               // fast SMA length
slowPeriod = 21              // slow SMA length
impulseBars = 3              // bars in the short impulse window
powerPeriod = 5              // average bar range length for impulse power
momentumWeight = 2           // weight of normalised momentum in the signal
impulseWeight = 3            // weight of normalised impulse in the signal
signalPeriod = 8             // SMA of the signal line
signalLevel = 0.7            // signal must be above this to buy
minVolumeRatio = 1.2         // volume must be this multiple of its average
minImpulsePower = 1.8        // bar range must be this multiple of its average
stopLossPct = 1              // protective stop, percent of entry price

ONCE inTrade = 0

// --- Indicators ---
fastMA = Average[fastPeriod](close)
slowMA = Average[slowPeriod](close)

priceMomentum = (close - close[momentumPeriod]) / close[momentumPeriod] * 100

// Directional movement: only count up moves that beat down moves.
upMove = high - high[1]
IF upMove <= 0 THEN
  upMove = 0
ENDIF

downMove = low[1] - low
IF downMove <= 0 THEN
  downMove = 0
ENDIF

upMoveDominant = 0
IF upMove > downMove AND upMove > 0 THEN
  upMoveDominant = 1
ENDIF

volumeRatio = Volume / Average[volumePeriod](Volume)

impulseUp = (close - close[impulseBars]) / (Highest[impulseBars](high) - Lowest[impulseBars](low)) * 100
impulsePower = (high - low) / Average[powerPeriod](high - low)

// Scale momentum and impulse to 0..1 over the recent window, then blend them.
normMomentum = (priceMomentum - Lowest[momentumPeriod](priceMomentum)) / (Highest[momentumPeriod](priceMomentum) - Lowest[momentumPeriod](priceMomentum))
normImpulse = (impulseUp - Lowest[momentumPeriod](impulseUp)) / (Highest[momentumPeriod](impulseUp) - Lowest[momentumPeriod](impulseUp))

signalLine = (normMomentum * momentumWeight + normImpulse * impulseWeight) / (momentumWeight + impulseWeight)
signalMA = Average[signalPeriod](signalLine)

19 lignes de plus : 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

SMAMomentumVolume
À lire d'abordFaiblesses connues4 points
  • Après un stop-out, aucun nouveau trade ne s'ouvre avant que la condition de sortie normale se soit déclenchée une fois, donc certains signaux valides sont ignorés.
  • L'edge de la meilleure exécution est modeste : profit factor de 1.44 avec un taux de réussite de 48.65% sur Nasdaq 100 1 heure.
  • Certaines exécutions sont de petits échantillons, comme 22 trades sur Nikkei 225 Journalier et 43 sur Gold Journalier.
  • Long uniquement, et les marchés supplémentaires n'ont que des données de sweep sans profit factor enregistré.

Questions

À propos de cette stratégie

Peut-elle être automatisée dans ProOrder ?

Oui. Les cinq filtres d'entrée, la sortie sur signal et le stop de 1% sont codés. Le code réécrit n'a pas encore été vérifié à la compilation.

Quels instruments a-t-elle tradés ?

L'exécution principale sur Nasdaq 100 1 heure a réalisé 4,958.30 EUR sur 481 trades. Les 9 autres exécutions étaient toutes positives, dont USD/JPY 1 heure à 144,730 JPY et DAX 40 4 heures à 1,077.90 EUR.

Quel est le risque par contrat ?

Avec 1 contrat et un spread de 3 points, l'exécution sur Nasdaq 100 1 heure a eu un max drawdown de 1,181.50 EUR. Chaque trade est protégé par un stop de 1%.

Pourquoi des barres de 1 heure ?

Les filtres de volume et d'amplitude ont besoin d'assez d'activité par bar pour être pertinents. Sur Nasdaq 100, le graphique en 1 heure a donné le meilleur profit factor, 1.44.

Voir aussi

Des stratégies comme celle-ci

Bollinger Squeeze

Utilise le même indicateur.

14.30 PF · 86 trades

Negated Hammer

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

3.20 PF · 372 trades

Rock Climber

Un profit factor similaire.

1.44 PF · 1,644 trades

Découvrez comment les systèmes momentum sont tradés en pratique. Rejoignez la liste d'attente ProRealAlgos.

Le copy trading sur les indices américains est disponible pour les membres ProRealAlgos à mesure que des places se libèrent.

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