Stratégie de suivi de la baisse de la moyenne mobile

Auteur:ChaoZhang est là., Date: 2024-03-28 18h05
Les étiquettes:

img

Résumé

L'idée principale de cette stratégie est d'utiliser deux moyennes mobiles avec des périodes différentes pour saisir l'opportunité de rebond après un repli du marché. Lorsque le prix est au-dessus de la moyenne mobile à long terme et revient à la moyenne mobile à court terme, la stratégie ouvre une position longue et ferme la position lorsque le prix remonte au-dessus de la moyenne mobile à court terme ou atteint le prix stop-loss. En recherchant des opportunités d'achat pendant les repli dans une tendance, la stratégie vise à tirer profit des marchés en tendance.

Principe de stratégie

  1. Calculer deux moyennes mobiles avec des périodes différentes (MA1 et MA2), où MA1 est la moyenne mobile à long terme et MA2 est la moyenne mobile à court terme.
  2. Lorsque le prix de clôture est supérieur à MA1 et inférieur à MA2, et qu'il n'y a pas de position en cours, et que l'heure actuelle se situe dans la fourchette de temps de négociation spécifiée, la stratégie ouvre une position longue.
  3. Enregistrez le prix d'entrée sous forme de prix d'achat et calculez le prix stop-loss stopPrice (c'est-à-dire le pourcentage i_stop en dessous du prix d'entrée).
  4. Lorsque le prix de clôture remonte au-dessus de MA2 et que i_lowerClose est faux, ou lorsque le prix de clôture tombe en dessous du prix stop-loss stopPrice, la stratégie ferme la position.
  5. Si i_lowerClose est vrai, la stratégie ferme la position lorsque le prix de clôture est supérieur à MA2 et que le prix de clôture de la bougie précédente est inférieur à MA2.

Les avantages de la stratégie

  1. Suivi de tendance: en déterminant la tendance globale en fonction de la position relative du prix et de la moyenne mobile à long terme, la stratégie cherche des opportunités d'entrée dans la tendance.
  2. Pullback buying: En recherchant des opportunités d'achat lorsque le prix revient à la moyenne mobile à court terme pendant une tendance haussière, la stratégie améliore le rapport coût-efficacité des points d'entrée.
  3. Protection contre le stop-loss: la fixation d'un prix stop-loss permet de contrôler efficacement le risque à la baisse lorsque le prix évolue négativement d'une certaine ampleur.
  4. Paramètres flexibles: les utilisateurs peuvent définir de manière flexible des paramètres tels que les périodes de moyenne mobile, le pourcentage de stop-loss et la possibilité de fermer la position lorsque le prix de clôture de la bougie précédente est inférieur à la moyenne mobile à court terme, selon leurs préférences.

Risques stratégiques

  1. Optimisation des paramètres: les paramètres différents ont un impact significatif sur les performances de la stratégie, ce qui nécessite une optimisation des paramètres et des tests antérieurs dans différents environnements de marché pour trouver la combinaison optimale de paramètres.
  2. Marchés instables: Dans les marchés instables, les prix fluctuent fréquemment entre les moyennes mobiles à long terme et à court terme, ce qui peut entraîner une ouverture et une fermeture fréquentes des positions et une diminution des coûts de négociation.
  3. L'inversion de tendance: lorsque la tendance du marché est inversée, la stratégie peut subir des pertes consécutives.
  4. Événements de cygne noir: lorsque le marché connaît des événements soudains majeurs et imprévisibles, les prix peuvent fluctuer considérablement, déclenchant des stop-loss et exposant la stratégie à des pertes importantes.

Directions d'optimisation de la stratégie

  1. Détermination de la tendance: avant d'ouvrir une position, introduisez davantage d'indicateurs de détermination de la tendance, tels que l'ADX, afin de confirmer la force et la direction de la tendance actuelle et d'améliorer la précision des signaux d'entrée.
  2. L'évaluation de la volatilité des prix est effectuée en tenant compte de l'évolution des prix et de l'évolution des prix.
  3. Taille des positions: ajuster dynamiquement la taille des positions de chaque entrée en fonction de facteurs tels que la force de la tendance du marché et la volatilité des prix, augmenter la taille des positions lorsque la tendance est forte et la volatilité modérée, et diminuer la taille des positions lorsque la tendance est faible ou la volatilité est trop élevée.
  4. La couverture à long terme: envisager de surveiller simultanément les signaux des deux côtés long et court et de couvrir les positions sur différents marchés ou délais afin de réduire le risque global de la stratégie.

Résumé

La stratégie de suivi de la reprise des moyennes mobiles capture les opportunités de trading longues pendant les baisses de prix dans une tendance haussière en utilisant la position relative de deux moyennes mobiles avec des périodes différentes. Cette stratégie est adaptée aux marchés en tendance et, avec des paramètres appropriés et des stop-loss, elle peut générer des rendements stables dans des conditions de tendance. Cependant, la stratégie est confrontée à certains risques sur les marchés agités et lors d'inversions de tendance. En introduisant plus d'indicateurs, en optimisant la taille des positions, en mettant en œuvre des stop-loss dynamiques et d'autres méthodes, la performance et la stabilité de cette stratégie peuvent être encore améliorées.


/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © contapessoal_ivan
// @version=5
strategy("Pullback Strategy", 
     overlay=true, 
     initial_capital=1000,
     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("26 Jan 2023 00:00 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("26 Mar 2024 23:59 +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)


Plus de