Rejoindre la liste d'attente
Stratégies / Momentum / EMA Swing Limit Entry

EMA Swing Limit Entry sur Gold

Une fois que le prix s'est écarté de plus de 45 pips depuis son dernier contact avec l'EMA 8, le système place un ordre limite au retour près de cette moyenne. Il achète les replis après de forts swings haussiers et vend les rebonds après de forts swings baissiers. Chaque trade comporte un stop de 30 points et un objectif de 25 points.

MomentumLong & shortIntradayOr3 min
1.26Profit factor
1,894Gain net EUR
60.08%Taux de réussite
253Trades
-596Max drawdown
7.49Trade moyen

Meilleure exécution sur 5. Gold, 3 min, spread 0.6, de l'exécution pf:2026-09-15-GOLD-3m.tsv:1.

Règles d'entrée, long

  1. Ce swing high est au-dessus de l'EMA 8
  2. Aucune position ouverte
  3. Entrer avec un buy limit sur l'EMA 8 plus la taille de son dernier mouvement sur une barre

Règles d'entrée, short

  1. Ce swing low est en dessous de l'EMA 8
  2. Aucune position ouverte
  3. Entrer avec un sell limit sur l'EMA 8 moins la taille de son dernier mouvement sur une barre

Règles de sortie

  1. Stop loss 30 points

Conditions de test

PériodeJusqu'au 2026-09-15
InstrumentOr, 3 minutes
Spread0.6 points
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-15
Paramètres (9)
swingPeriod
Longueur de l'EMA à partir de laquelle le swing est mesuré
8
seedPeriod
Barres utilisées pour initialiser le swing high / low sur la première barre
8
swingTargetPips
Taille du swing en pips qui arme une entrée
45
baseCapital
Montant ajouté au profit de la stratégie avant le dimensionnement
3000
riskFraction
Part du capital utilisée dans la formule de dimensionnement
0.02
capitalPerContract
Montant par contrat dans la formule de dimensionnement
30
minPositionSize
Contrats minimum par trade
1
stopLossPoints
Stop de protection en points
30
takeProfitPoints
Objectif de gain en points
25

Chaque exécution

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

MarchéUnité de tempsPFTrades% de réussiteNetMax DD
OrMeilleure exécution3 min1.26 25360.081,894 EUR-596
Or2 min1.23 20959.811,350 EUR-708
Or5 min1.19 28558.601,516 EUR-774
Or1 heure1.13 38958.351,644 EUR-1,199
Or1 minn/a 6363.49620 EUR-350

Graphiques

Résultats par exécution

Au-dessus de 1.0, a gagné de l'argent ; en dessous de 1.0, a perdu de l'argent.

Le code

ProBuilder, réécrit selon le standard maison

// ============================================================
// EMA Swing Limit Entry
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Momentum
// Direction: Long & short
// Timeframe tested: 3 minutes
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = true
DEFPARAM PreloadBars = 10000

// --- Parameters ---
swingPeriod = 8            // EMA the swing is measured from
seedPeriod = 8             // bars used to seed the swing high / low on the first bar
swingTargetPips = 45       // swing size that arms an entry
baseCapital = 3000         // added to strategy profit before sizing
riskFraction = 0.02        // share of that capital put at risk
capitalPerContract = 30    // money per contract in the sizing formula
minPositionSize = 1        // never trade fewer contracts than this
stopLossPoints = 30        // protective stop
takeProfitPoints = 25      // profit target

// --- Indicators ---
ONCE swingHigh = Highest[seedPeriod](high)
ONCE swingLow = Lowest[seedPeriod](low)

swingMA = ExponentialAverage[swingPeriod](close)
swingTarget = swingTargetPips * PipSize

// Each touch of the EMA restarts the swing measurement.
IF high > swingMA AND low < swingMA THEN
  touchBar = BarIndex
  touchPrice = swingMA
  swingHigh = swingMA
  swingLow = swingMA
ENDIF

IF low > swingMA THEN
  barsSinceTouch = max(1, BarIndex - touchBar)
  swingHigh = Highest[barsSinceTouch](high)
  swingLow = swingMA
ENDIF

IF high < swingMA THEN
  barsSinceTouch = max(1, BarIndex - touchBar)
  swingLow = Lowest[barsSinceTouch](low)
  swingHigh = swingMA
ENDIF

IF (swingHigh - touchPrice) > swingTarget AND swingHigh > swingMA THEN
  buySetup = 1
ENDIF
IF (swingHigh - touchPrice) <= swingTarget THEN
  buySetup = 0
ENDIF

IF (touchPrice - swingLow) > swingTarget AND swingLow < swingMA THEN
  sellSetup = -1
ENDIF
IF (touchPrice - swingLow) <= swingTarget THEN
  sellSetup = 0
ENDIF

// Limit orders sit one EMA slope beyond the EMA.
slopeOffset = abs(round(swingMA - swingMA[1]))
positionSize = max(minPositionSize, round(((StrategyProfit + baseCapital) * riskFraction) / capitalPerContract))

16 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

EMA
À lire d'abordFaiblesses connues4 points
  • Elle n'a été testée que sur Gold. Les quatre lignes du tableau des marchés sont des unités de temps sur Gold, il n'y a donc aucune preuve qu'elle fonctionne ailleurs.
  • La position size n'est pas fixe. Elle augmente avec le profit de la stratégie (capital de base 3000, fraction de risque 0.02, 30 par contrat), donc les trades plus tardifs risquent plus que les premiers.
  • Le stop (30 points) est plus grand que l'objectif (25 points). Un taux de réussite de 60.08% a donné un profit factor de seulement 1.26 sur Gold 3 minutes.
  • Le trade moyen était de 7.49 EUR, ce qui laisse peu de marge pour le slippage sur les exécutions d'ordres limites.

Questions

À propos de cette stratégie

Peut-elle trader automatiquement dans ProOrder ?

Oui. Les entrées sont des ordres limites et le stop et l'objectif sont codés, elle fonctionne donc sans surveillance une fois chargée.

Quels ont été ses résultats sur Gold ?

Gold 3 minutes a rapporté 1,893.8 EUR sur 253 trades. Les graphiques en 2 minutes, 5 minutes et 1 heure ont aussi été positifs avec des profit factors entre 1.13 et 1.23.

Quel drawdown a-t-elle eu ?

Le pire drawdown sur Gold 3 minutes a été de 596.1 EUR. Comme la taille augmente avec le profit, un drawdown tardif dans une exécution peut être plus important qu'au début.

Pourquoi un graphique en 3 minutes ?

Le swing de 45 pips et l'objectif de 25 points conviennent aux mouvements intraday rapides sur Gold. Le graphique en 3 minutes a eu le meilleur profit factor des unités de temps testées.

Voir aussi

Des stratégies comme celle-ci

Monday Dip Buy

Utilise le même indicateur.

n/a PF · 146 trades

Triple Band Market Model

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

2.27 PF · 203 trades

Turtle Soup

Un profit factor similaire.

1.26 PF · 867 trades

Vous tradez Gold en intraday ? Rejoignez la liste d'attente ProRealAlgos et voyez comment nous faisons tourner nos systèmes.

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