Stratégie de croisement à double moyenne mobile

Auteur:ChaoZhang est là., Date: le 21 janvier 2023 11:34:09
Les étiquettes:

img

Résumé

La stratégie de croisement des moyennes mobiles doubles est une stratégie typique de suivi des tendances.

La logique de la stratégie

La stratégie est principalement basée sur deux moyennes mobiles. La première moyenne mobile a une période plus courte et peut répondre aux changements de prix plus rapidement. La deuxième moyenne mobile a une période plus longue et peut filtrer un peu de bruit. Lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme, elle est considérée comme un signal d'achat. Lorsque la moyenne mobile à court terme traverse en dessous de la moyenne mobile à long terme, elle est considérée comme un signal de vente.

Plus précisément, cette stratégie calcule une moyenne mobile exponentielle à 10 périodes (prix1) et une moyenne mobile exponentielle à 20 périodes (prix2). Si les prix d'ouverture et de clôture de la barre actuelle sont tous deux supérieurs aux deux moyennes mobiles, un signal d'achat est généré. Si les prix d'ouverture et de clôture sont tous deux inférieurs aux deux moyennes mobiles, un signal de vente est généré.

Cette conception permet d'entrer plus tôt quand une tendance commence à se former et de suivre la tendance.

Les avantages

  • Détectez les tendances tôt et suivez les tendances fortes
  • Filtres croisés double MA pour le bruit
  • La double confirmation des prix d'ouverture et de clôture réduit les transactions inefficaces

Les risques

  • Prédisposé à des frappes à la piqûre et à des opérations inverses
  • Des signaux croisés fréquents peuvent se produire
  • Un grand espace de réglage des paramètres peut entraîner un surajustement

Amélioration

  • Testez différents ensembles de paramètres pour trouver l'optimum
  • Ajouter le stop loss à la taille de la perte limite
  • Ajouter des filtres pour réduire les mauvaises transactions
  • Combiner d'autres indicateurs pour confirmer les signaux

Résumé

La stratégie est relativement simple et pratique, capturant les tendances avec le double crossover MA, ce qui en fait une stratégie quantitative fondamentale. Mais elle comporte également certains risques et nécessite une optimisation supplémentaire pour différents régimes de marché. Il y a de la place pour améliorer les paramètres, les arrêts, les filtres, etc. pour la rendre plus robuste.


/*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)



Plus de