Une barre qui ouvre au-dessus de la clôture précédente mais qui clôture ensuite sous l'EMA à 40 périodes déclenche un achat, tant que l'indice de dimension fractale à 30 barres est inférieur à 1.5. Le setup inverse vend short. Chaque trade est clôturé exactement 4 barres plus tard ou sur un stop de 60 points.
Meilleure exécution sur 2. GBP/USD, 4 heures, spread 1.5, issue de l'exécution sweeps:2026-09-21-GBPUSD-4h-opt.tsv:4.
| Période | Jusqu'au 2026-09-21 |
| Instrument | GBP/USD, 4 heures |
| Spread | 1.5 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-21 |
| positionSize Contrats par trade | 1 |
| emaPeriod Longueur de l'EMA pour le signal | 40 |
| fdiPeriod Période de calcul de la dimension fractale | 30 |
| fdiThreshold Trader uniquement lorsque la dimension fractale est inférieure à cette valeur | 1.5 |
| maxBarsInTrade Clôturer le trade exactement ce nombre de barres après l'entrée | 4 |
| stopLossPoints Stop de protection en points | 60 |
Chaque exécution
| Marché | Unité de temps | PF | Trades | % de réussite | Net | Max DD |
|---|---|---|---|---|---|---|
| GBP/USDMeilleure exécution | 4 heures | n/a | 906 | 47.35 | 1,375 USD | -1,363 |
| DAX 40 | Journalier | n/a | 358 | 31.56 | 2,147 EUR | -1,902 |
Graphiques
Le code
// ============================================================ // Fractal Dimension EMA Reversion // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long & short // Timeframe tested: 4 hours // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade emaPeriod = 40 // EMA length for the signal fdiPeriod = 30 // fractal dimension lookback fdiThreshold = 1.5 // trade only when the fractal dimension is below this maxBarsInTrade = 4 // close the trade exactly this many bars after entry stopLossPoints = 60 // protective stop in points // --- Indicators --- emaValue = ExponentialAverage[emaPeriod](close) // Fractal dimension index: near 1 = trending, near 2 = choppy. // Undefined until enough history, so the filter blocks early trades. ONCE fdiValue = undefined IF BarIndex >= fdiPeriod - 1 THEN pathLength = 0 prevScaled = 0 fdiValue = 0 fdiHigh = Highest[fdiPeriod](close) fdiLow = Lowest[fdiPeriod](close) FOR i = 1 TO fdiPeriod - 1 DO IF (fdiHigh - fdiLow) > 0 THEN scaledPrice = (CustomClose[i] - fdiLow) / (fdiHigh - fdiLow) IF i > 1 THEN pathLength = pathLength + SQRT(SQUARE(scaledPrice - prevScaled) + (1 / SQUARE(fdiPeriod))) ENDIF prevScaled = scaledPrice ENDIF NEXT IF pathLength > 0 THEN fdiValue = 1 + (LOG(pathLength) + LOG(2)) / LOG(2 * fdiPeriod) ELSE fdiValue = 0 ENDIF ENDIF barsInTrade = BarIndex - TradeIndex
26 lignes de plus : les règles d'entrée et de sortie.
Configuration
Questions
Oui. Les entrées sont exécutées à l'ouverture de la barre suivante et les sorties sont un stop temporel de 4 barres plus un stop de 60 points, tout est codé.
GBP/USD 4 heures a gagné 1,374.7 USD sur 906 trades avec un taux de réussite de 47.35%. DAX 40 Journalier a gagné 2,147.3 EUR sur 358 trades.
Le pire drawdown sur GBP/USD 4 heures a été de 1,363.2 USD à 1 contrat, proche de la totalité du gain du test.
Une détention de 4 barres sur des barres de 4 heures maintient les trades sous une journée de temps de marché, ce qui convient à une idée de reversion courte sur une paire de devises.
Voir aussi
La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.