Le système compare le momentum sur 5 bars au momentum sur 100 bars et l'amplitude moyenne sur 4 bars à l'amplitude moyenne sur 100 bars. Lorsque les deux lectures courtes bondissent nettement au-dessus des longues sur une clôture haussière avec une EMA 18 en hausse, il achète. Il prend son gain à 43 points ou sort plus tard dès que l'EMA 53 se retourne à la baisse.
Meilleure exécution sur 13. DAX 40, 30 min, spread 3, d'après l'exécution sweeps:2026-09-26-DAX40-30m-opt.tsv:2.
| Période | Jusqu'au 2026-09-26 |
| Instrument | DAX 40, 30 minutes |
| Spread | 3 points |
| Contrats | 1 |
| Capital de départ | 1,000,000 |
| Coûts | Spread uniquement. Les commissions et le financement overnight ne sont pas inclus. |
| Barres | Jusqu'à 200,000 barres, moins lorsque l'instrument a moins d'historique |
| Dernier test | 2026-09-26 |
| positionSize Contrats par trade | 1 |
| takeProfitPoints Objectif de gain en points | 43 |
| minBarsInTrade Première bar après l'entrée à laquelle la sortie de tendance peut se déclencher | 43 |
| momentumShortPeriod Longueur du momentum court | 5 |
| momentumLongPeriod Longueur du momentum long | 100 |
| rangeShortPeriod Longueur de l'amplitude moyenne courte | 4 |
| rangeLongPeriod Longueur de l'amplitude moyenne longue | 100 |
| momentumThreshold Différentiel de momentum minimal pour acheter | 2 |
| rangeThreshold Différentiel d'amplitude minimal pour acheter | 8.5 |
| fastPeriod Longueur de l'EMA rapide, doit être en hausse pour acheter | 18 |
| slowPeriod Longueur de l'EMA lente, une EMA lente en baisse met fin au trade | 53 |
| entryBar Index de bar de la dernière entrée | 0 |
Chaque exécution
| Marché | Unité de temps | PF | Trades | % de réussite | Net | Max DD |
|---|---|---|---|---|---|---|
| DAX 40Meilleure exécution | 30 min | n/a | 1,512 | 75.20 | 4,949 EUR | -4,212 |
| Argent | 4 heures | n/a | 91 | 74.73 | 4,943 USD | -3,351 |
| DAX 40 | Journalier | n/a | 111 | 98.20 | 3,659 EUR | -1,340 |
| DAX 40 | 1 heure | n/a | 967 | 83.45 | 3,223 EUR | -2,221 |
| FTSE 100 | Journalier | n/a | 104 | 94.23 | 1,964 EUR | -1,193 |
| DAX 40 | 2 min | n/a | 428 | 63.55 | 1,609 EUR | -1,186 |
| DAX 40 | 5 min | n/a | 699 | 70.10 | 1,607 EUR | -1,032 |
| S&P 500 | 1 heure | n/a | 172 | 62.21 | 776 EUR | -508 |
| Or | 5 min | n/a | 29 | 68.97 | 446 EUR | -104 |
| FTSE 100 | 2 min | n/a | 66 | 51.52 | 280 EUR | -169 |
| Or | 4 heures | n/a | 21 | 66.67 | 280 EUR | -246 |
| FTSE 100 | 1 min | n/a | 40 | 57.50 | 202 EUR | -195 |
| Or | 1 min | n/a | 9 | 55.56 | 103 EUR | -89.90 |
Graphiques
Les 10 meilleures exécutions sur 13. La liste complète figure dans le tableau ci-dessus.
Le code
// ============================================================ // Momentum Range Differential // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 30 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade takeProfitPoints = 43 // profit target in points minBarsInTrade = 43 // earliest bar after entry that the trend exit may fire momentumShortPeriod = 5 // short momentum length momentumLongPeriod = 100 // long momentum length rangeShortPeriod = 4 // short average range length rangeLongPeriod = 100 // long average range length momentumThreshold = 2 // minimum momentum differential to buy rangeThreshold = 8.5 // minimum range differential to buy fastPeriod = 18 // fast EMA length, must be rising to buy slowPeriod = 53 // slow EMA length, falling slow EMA ends the trade ONCE entryBar = 0 // bar index of the last entry // --- Indicators --- // Momentum differential: how much the short-term move outpaces the long-term one. momentumShort = Momentum[momentumShortPeriod](close) momentumLong = Momentum[momentumLongPeriod](close) momentumDiff = MAX(ABS(momentumShort) - ABS(momentumLong), 0) // Range differential: how much recent bars are wider than usual. barRange = ABS(Range) avgRangeLong = Average[MAX(1, rangeLongPeriod)](barRange) avgRangeShort = Average[MAX(1, rangeShortPeriod)](barRange) rangeDiff = MAX(0, avgRangeShort - avgRangeLong) upBar = close > open fastMA = ExponentialAverage[fastPeriod](close) slowMA = ExponentialAverage[slowPeriod](close)
23 lignes de plus : les règles d'entrée et de sortie.
Configuration
Questions
Oui, c'est un système ProOrder long uniquement avec un objectif en points. Le code réécrit n'a pas encore été vérifié à la compilation.
Les 12 exécutions listées ont toutes été rentables, sur DAX 40, FTSE 100, Gold, S&P 500 et Silver. Au-delà du DAX 40, les résultats étaient pour la plupart faibles, par exemple EUR 776.36 sur S&P 500 1 heure.
La meilleure exécution a atteint un drawdown de EUR 4,212.3. Sans stop, un seul mauvais trade pourrait le dépasser.
L'objectif de 43 points correspond au mouvement typique du DAX 40 sur quelques bars de 30 minutes, et cette unité de temps a donné le plus de trades, 1,512.
Voir aussi
La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.