Stratégie de cassure de la double moyenne mobile


Date de création: 2023-11-21 11:34:09 Dernière modification: 2023-11-21 11:34:09
Copier: 0 Nombre de clics: 561
1
Suivre
1617
Abonnés

Stratégie de cassure de la double moyenne mobile

Aperçu

La stratégie de rupture de deux moyennes mobiles est une stratégie de suivi de tendance plus typique. Elle capte la direction et la force des tendances du marché en calculant des moyennes mobiles de deux périodes différentes et en les croisant comme signaux d’achat et de vente.

Principe de stratégie

La stratégie est basée principalement sur deux moyennes mobiles. La première moyenne mobile a une période plus courte, permettant de répondre plus rapidement aux variations de prix; la seconde moyenne mobile a une période plus longue, permettant de filtrer une partie du bruit.

Plus précisément, la stratégie calcule une moyenne mobile indicielle de 10 cycles (price1) et une moyenne mobile indicielle de 20 cycles (price2). Si le prix d’ouverture et de clôture de la ligne K actuelle est supérieur aux deux moyennes mobiles, un signal d’achat est généré. Si le prix d’ouverture et de clôture de la ligne K actuelle est inférieur aux deux moyennes mobiles, un signal de vente est généré.

Grâce à cette conception, il est possible d’entrer sur le marché plus tôt lorsque la tendance commence à se former et de suivre la tendance; il est également possible de sortir du marché le plus tôt possible lorsque la tendance est inversée, afin de contrôler efficacement les risques.

Avantages stratégiques

  • Capturez les tendances à un stade précoce et suivez les tendances fortes
  • Filtrage en double ligne pour éviter certaines fausses percées
  • Les prix d’ouverture et de clôture de la ligne K sont doublement confirmés, ce qui réduit les transactions invalides.

Risque stratégique

  • Les stratégies de double équilibre sont plus susceptibles de générer des transactions inverses.
  • Des signaux de croisement fréquents peuvent survenir lors d’un fonctionnement en ligne homogène
  • Les paramètres ont beaucoup d’espace d’optimisation et une mauvaise optimisation peut entraîner une suradaptation

Orientation de l’optimisation de la stratégie

  • Tester différentes combinaisons de paramètres pour trouver le meilleur
  • Augmentation des stratégies de stop loss et réduction des pertes individuelles
  • Augmentation des conditions de filtrage pour réduire les transactions non valides
  • Efficacité du signal en combinaison avec d’autres indicateurs

Résumer

Cette stratégie est une stratégie de base pour la quantification des transactions. Elle est simple et pratique dans l’ensemble et permet de capturer les tendances grâce au principe de la double équilibre croisée. Cependant, cette stratégie comporte certains risques et nécessite une optimisation supplémentaire pour s’adapter aux différents environnements du marché.

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

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)