EintSimple stratégie de reprise

Auteur:ChaoZhang est là., Date: 2024-01-15 14h04 et 54 min
Les étiquettes:

img

Stratégie de recul de la moyenne mobile croisée

Résumé

La stratégie EintSimple Pullback est une stratégie de réversion moyenne basée sur un double croisement des moyennes mobiles. Elle utilise d'abord une ligne moyenne mobile à long terme et une ligne moyenne mobile à court terme. Lorsque la ligne moyenne mobile à court terme traverse la ligne moyenne mobile à long terme depuis le bas, un signal d'achat est généré.

Après être entré sur le marché, si le prix tombe à nouveau en dessous de la ligne moyenne mobile à court terme, il déclenchera un signal de sortie.

La logique de la stratégie

La stratégie repose principalement sur la croix d'or des moyennes mobiles doubles pour déterminer le moment de l'entrée.

  1. Le prix de clôture est supérieur à la moyenne mobile à long terme ma1
  2. Le prix de clôture est inférieur à la moyenne mobile à court terme ma2
  3. Il n'y a actuellement aucun poste

Une fois les conditions ci-dessus remplies, cette stratégie prendra une position longue complète.

Le jugement du signal de sortie est basé sur deux conditions. L'une est que le prix tombe à nouveau en dessous de la moyenne mobile à court terme. L'autre est que le retracement du point le plus élevé atteint le pourcentage de stop loss défini. Les conditions spécifiques de sortie sont les suivantes:

  1. Le prix de clôture est supérieur à la moyenne mobile à court terme ma2
  2. Le retracement à partir du point le plus élevé atteint le pourcentage de stop loss défini

Lorsque l'une ou l'autre des conditions de sortie est remplie, cette stratégie clôt toutes les positions longues.

Les avantages

  1. L'utilisation d'un double croisement des moyennes mobiles combiné à des prix de clôture solides pour juger peut filtrer efficacement les fausses ruptures.

  2. L'adoption de l'entrée de recul peut intervenir après que le prix forme des points d'inflexion à court terme.

  3. Avec le paramètre stop loss, il peut limiter le tirage maximum.

Les risques

  1. Les stratégies de croisement des moyennes mobiles doubles ont tendance à produire des signaux commerciaux fréquents et peuvent poursuivre les pics et tuer les fonds.

  2. Les paramètres des moyennes mobiles ne sont pas réglés correctement et peuvent entraîner des courbes trop lisses ou trop sensibles.

  3. Les paramètres d'arrêt des pertes trop lâches entraîneront des pertes accrues.

Optimisation

  1. Testez différentes combinaisons de longueur de moyennes mobiles à long terme et à court terme pour trouver les paramètres optimaux.

  2. Comparez les effets de l'utilisation du prix de clôture et du prix typique pour déterminer les croisements de la moyenne mobile.

  3. Testez l'ajout de filtres tels que des indicateurs de volume ou de volatilité.

  4. Le backtest optimise le pourcentage de stop loss pour trouver le meilleur réglage.

Conclusion

La stratégie EintSimple Pullback est une stratégie simple et pratique de pullback de moyenne mobile double. Elle utilise efficacement la fonctionnalité directionnelle des moyennes mobiles tout en combinant des prix de clôture solides pour filtrer les faux signaux. Bien que cette stratégie soit sujette à des transactions fréquentes et à la poursuite de sommets et à la destruction de fonds, elle peut être encore améliorée grâce à l'optimisation des paramètres et à l'ajout de filtres.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=75, step=1, group="Strategy Parameters", tooltip="Long-term EMA")
i_ma2           = input.int(title="MA 2 Length", defval=9, step=1, group="Strategy Parameters", tooltip="Short-term EMA")
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=true, 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.ema(close, i_ma1)
ma2 = ta.ema(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.fuchsia)

Plus de