Stratégie de croisement des moyennes mobiles optimisée

Auteur:ChaoZhang est là., Date: 2024-02-04 10h31h45
Les étiquettes:

img

Résumé

Cette stratégie est basée sur des croisements réguliers de moyennes mobiles, mais certaines modifications ont été apportées pour générer des signaux de trading plus précis.

La logique de la stratégie

Lorsque la moyenne mobile rapide traverse au-dessus de la moyenne mobile lente du bas vers le haut, elle est considérée comme un signal d'achat. Lorsque la moyenne mobile rapide traverse le bas de la moyenne mobile lente du haut vers le bas, elle est considérée comme un signal de vente. C'est-à-dire une croix dorée pour long, une croix de mort pour court. Une fois la position longue/courte prise, le stop loss sera réglé pour éviter d'énormes pertes.

La clé réside dans la sélection des moyennes mobiles rapides et lentes. Cette stratégie adopte les moyennes mobiles exponentielles de la période 50&100 comme ligne rapide et lente respectivement. L'effet de la stratégie peut être optimisé en ajustant les paramètres MA.

Analyse des avantages

Cette stratégie identifie la direction de la tendance en combinant des moyennes mobiles doubles, ce qui peut filtrer efficacement le bruit du marché.

En tirant parti des règles de croisement pour déterminer les points d'inflexion, cette stratégie peut saisir les opportunités de tendance en temps opportun.

Analyse des risques

Il existe trois risques majeurs pour cette stratégie: le risque inapproprié du paramètre MA, le risque inapproprié de la période de détention et le risque déraisonnable de position stop loss.

  • Une sélection incorrecte des paramètres MA entraînera des signaux erronés. Des longueurs de MA trop courtes ou trop longues fausseront l'évaluation du marché, de sorte qu'un ajustement approprié en fonction des caractéristiques de l'instrument est nécessaire.

  • La période de détention trop longue ou trop courte ne peut pas maximiser les bénéfices ni contrôler correctement le risque.

  • L'imposition déraisonnable d'une position de stop loss entraînera un stop loss trop large ou trop étroit, de sorte qu'un stop loss approprié doit être déterminé en fonction de la volatilité de l'instrument.

Directions d'optimisation

Cette stratégie peut être optimisée par les aspects suivants:

  • Testez plus de combinaisons de paramètres MA pour trouver les paramètres optimaux

  • Déterminer la position de stop loss dynamique sur la base de la fluctuation des prix ou de l'ATR des derniers N jours

  • Combinez plus d'indicateurs tels que MACD, KD, etc. pour déterminer le moment de l'entrée

  • Ajouter des règles de filtrage des tendances pour éviter le marché lié à la fourchette

  • Envisager d'appliquer la stratégie à un plus grand nombre d'instruments ou de l'améliorer pour qu'elle s'applique à des stratégies multi-instruments

Résumé

Cette stratégie de croisement de moyenne mobile optimisée intègre l'avantage de la double MA dans le jugement des directions de tendance et définit un stop loss pour contrôler les risques. Elle appartient aux stratégies de suivi de tendance faciles à mettre en œuvre. Cette stratégie peut être encore améliorée en termes de stabilité et d'efficacité grâce à l'optimisation des paramètres, l'optimisation des pertes de stop, le filtrage des signaux, etc. Par rapport aux stratégies complexes, elle est plus facile à comprendre et à mettre en œuvre, et donc très adaptée pour être la première stratégie de trading quantitatif pour les débutants.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ashishchauhan
strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000)

fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50)
slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100)

fastEMA = ema(close, fastEMALen)
slowEMA = ema(close, slowEMALen)

enterLong = crossover(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)

longStop = 0.0
longStop := enterShort ? close : longStop[1]

shortStop = 0.0
shortStop := enterLong ? close : shortStop[1]

plot(series=fastEMA, color=color.orange, title="Fast EMA")
plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA")

if enterLong
    strategy.entry(id="GoLong", long=true)

if enterShort
    strategy.entry(id="GoShort", long=false)

if strategy.position_size > 0
    strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop)

if strategy.position_size < 0
    strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop)

strategy.close_all()


Plus de