Stratégie de retracement basée sur le momentum


Date de création: 2024-01-23 15:23:14 Dernière modification: 2024-01-23 15:23:14
Copier: 0 Nombre de clics: 564
1
Suivre
1617
Abonnés

Stratégie de retracement basée sur le momentum

Aperçu

Cette stratégie vise à identifier les opportunités de retraits potentiels dans le marché. La stratégie utilise un système bi-linéaire: les moyennes mobiles à long terme ((MA1) et les moyennes mobiles à court terme ((MA2)). L’objectif principal est d’indiquer une opportunité de retraits potentiels dans une grande tendance lorsque le prix de clôture est inférieur à MA1 mais supérieur à MA2.

Principe de stratégie

La stratégie utilise deux moyennes mobiles: MA1 (longue ligne) et MA2 (courte ligne). Le principe est que si le prix à court terme recule et teste le support de la tendance à long terme, cela peut être une occasion de faire plus. Plus précisément, si le prix de clôture est supérieur au support à long terme (MA1), cela indique que la tendance est bonne.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. La mise en œuvre est simple, facile à comprendre, et les paramètres sont flexibles.
  2. Identifier les grandes tendances et éviter les transactions à contre-courant
  3. Filtres temporels personnalisables pour éviter les anomalies du marché pendant une période donnée
  4. Taille de position réglable en fonction des préférences de risque
  5. La mise en place d’un système de stop-loss pour limiter le risque de pertes

Analyse des risques

La stratégie présente également les risques suivants:

  1. Les prix ont continué à baisser sans pouvoir s’arrêter
  2. La tendance à la hausse est en train de se retourner, et le support a été brisé.
  3. Les marchés ont été très volatiles, les moyennes mobiles se sont écartées.
  4. Une mauvaise sélection de périodes, des opportunités manquées

En conséquence, il est possible d’optimiser et d’améliorer les choses dans les domaines suivants:

  1. Optimisation des paramètres des moyennes mobiles et amélioration de la qualité des signaux de négociation
  2. Optimiser les niveaux de stop-loss pour obtenir des bénéfices en minimisant les risques
  3. Ajustez le filtre temporel pour vous positionner aux meilleurs moments de la journée
  4. Test des variétés et des conditions du marché

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimiser les paramètres des moyennes mobiles pour trouver la meilleure combinaison de paramètres
  2. Tester différents mécanismes d’arrêt des pertes, tels que l’arrêt du suivi, l’arrêt de l’oscillation, etc.
  3. Ajout d’autres filtres, tels que le filtrage du volume de transactions, le filtrage de la volatilité, etc.
  4. Augmentation des mécanismes de gestion des positions, tels que l’ajout de fourches dorées et la réduction de fourches mortes
  5. Ajout d’un arrêt automatique
  6. Faire des retours d’expérience et calculer les indicateurs clés pour déterminer les meilleurs paramètres

Résumer

Cette stratégie est généralement une stratégie de retrait de ligne courte simple et pratique. Elle utilise une ligne d’équilibre pour identifier les occasions de reprise et établit des arrêts mobiles pour contrôler les risques. La stratégie est facile à comprendre et à mettre en œuvre, les paramètres sont flexibles et peuvent être ajustés pour répondre aux différentes préférences de risque.

Code source de la stratégie
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter =true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)