Stratégie de négociation à double moyenne mobile

Auteur:ChaoZhang est là., Date: 2023-11-10 11:18:38 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie est conçue sur la base de la croix d'or et de la croix morte des moyennes mobiles rapides et lentes. Lorsque le MA rapide traverse au-dessus du MA lent, passez long. Lorsque le MA rapide traverse au-dessous du MA lent, passez court. Cette stratégie convient au trading à moyen et long terme et peut capturer les inversions de tendance sur le marché.

La logique de la stratégie

La stratégie utilise la moyenne mobile exponentielle (EMA) pour calculer les lignes rapides et lentes. La longueur de la MA rapide est de 10 périodes et la longueur de la MA lente est de 30 périodes. La stratégie calcule d'abord la EMA rapide et la EMA lente, puis trace les lignes et montre différents arrière-plans colorés pour indiquer la direction de la tendance.

Lorsque la clôture d'aujourd'hui est supérieure à la MA rapide et que la MA rapide est supérieure à la MA lente, le fond est vert, indiquant une tendance à la hausse.

Dans une tendance à la hausse, s'il y a un chandelier rouge (fermer en dessous de l'ouverture) et que hier il y avait aussi un chandelier rouge, passez long.

Dans une tendance à la baisse, s'il y a un chandelier vert (fermer au-dessus de l'ouverture) et que hier il y avait aussi un chandelier vert, allez court.

Après ouverture d'une position dans chaque sens, si le temps de rétention dépasse 1008000000 millisecondes (environ 2 semaines), forcer la fermeture de la position pour éviter l'impasse.

Analyse des avantages

  • Le double système EMA peut filtrer efficacement le bruit du marché et identifier les points d'inversion de tendance
  • Les MAs rapides et lents combinés avec les couleurs des chandeliers fournissent des signaux d'entrée fiables
  • Les stratégies de stop-loss et de profit réduisent les pertes pour les transactions individuelles
  • Le mécanisme de fermeture de position forcée évite d'énormes pertes par blocage

Analyse des risques

  • Le système EMA est moins sensible aux pics de prix, peut manquer certaines opportunités de négociation
  • Les paramètres MA rapides et lents incorrects peuvent provoquer de faux signaux.
  • Un point de stop-loss trop étroit augmente le risque de liquidation.
  • Un mauvais réglage de l'heure de fermeture forcée peut entraîner une sortie prématurée ou un maintien trop long

Directions d'optimisation

  • Test de la rentabilité des systèmes EMA selon différents paramètres afin d'optimiser les longueurs de MA rapides et lentes
  • Considérez l'ajout d'autres indicateurs comme le MACD pour la confirmation afin d'améliorer la précision du signal
  • L'exposition au risque de défaillance
  • Ajustez dynamiquement le temps de clôture forcée en fonction de la volatilité du marché

Conclusion

Dans l'ensemble, cette stratégie est assez équilibrée, en utilisant une double EMA pour les tendances et des filtres à chandeliers avec des règles supplémentaires pour éviter les faux signaux.


/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
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/
// © yeainshukla

//@version=5


strategy('BuyRedSellGreen4H', overlay = true)
greenCandle = close > open
redCandle = open > close

start  = timestamp(2023,9,18,0,00)
end = timestamp(2023,12,31,0,00)


fastLength = input.int(10, title="Fast Average Length")
slowLength = input.int(30, title="Slow Average Length")

averageData = input.source(close, title="Average Data Source")

// Calculate exponential moving averages
fastAverage = ta.ema(averageData, fastLength)
slowAverage = ta.ema(averageData, slowLength)

// Plot averages
plot(fastAverage, color=color.navy, title="Fast EMA")
plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA")

// Show the moving average trend with a coloured background
backgroundColor = if close > fastAverage and fastAverage > slowAverage
    color.new(color.green, 85)
else if close < fastAverage and fastAverage < slowAverage
    color.new(color.red, 85)
else
    color.new(color.orange, 90)

bgcolor(backgroundColor, title="EMA Background")


if time >= start and time < end
    if(close < open) 
        if(close[1] < open[1])
            strategy.entry("Enter Long", strategy.long)
            strategy.exit("Exit Long", from_entry="Enter Long")
            strategy.close("Enter Short")

    else
        if(close[1] > open[1])
            strategy.entry("Enter Short", strategy.short)
            strategy.exit("Exit Short", from_entry="Enter Short")
            strategy.close("Enter Long")
    if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened.
        if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000)
            strategy.close("Enter Short")
            strategy.close("Enter Long")

Plus de