Tendance à la suite de la stratégie de croisement des moyennes mobiles

Auteur:ChaoZhang est là., Date: 2023-11-01 17:18:13 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise les principes de la croix d'or et de la croix de la mort des moyennes mobiles, combinés avec l'indicateur RSI pour aider à l'identification et au suivi de la tendance.

La logique de la stratégie

La stratégie repose sur les principes suivants:

  1. Utilisez l'EMA au lieu de l'SMA pour mieux refléter les dernières variations de prix et réagir plus rapidement aux écarts.

  2. Système double de croisement des moyennes mobiles: le franchissement de l'EMA à court terme au-dessus de l'EMA à long terme indique une entrée longue, tandis que le franchissement de l'EMA à court terme en dessous de l'EMA à long terme indique une entrée courte.

  3. L'indicateur RSI aide à filtrer les faux écarts en signalant les conditions de surachat/survente.

  4. Plusieurs moyennes mobiles empilées ensemble: EMA de 55 périodes pour le signal à court terme, EMA de 100 périodes pour la tendance à moyen terme et EMA de 200 périodes pour le filtrage de la tendance à long terme.

  5. Des paramètres raisonnables de stop-loss et de profit pour contrôler le risque.

La principale logique de négociation est la suivante:

  1. L'indicateur de long est utilisé lorsque l'EMA à 55 périodes dépasse l'EMA à 100 périodes et que l'EMA à 12 périodes dépasse l'EMA à 200 périodes.

  2. L'indice de risque est le montant de l'émission de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée.

  3. Mettez un stop loss et un profit après l'entrée pour optimiser les rendements.

  4. Fermer les positions longues/courtes lorsque l'indicateur RSI indique une surachat/survente afin d'éviter les risques d'inversion.

  5. La combinaison de plusieurs périodes de moyennes mobiles permet à la fois de suivre la tendance et de confirmer l'inversion, évitant ainsi d'être pris au piège d'une consolidation prolongée tout en suivant la tendance majeure.

Les avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Une logique simple basée sur des croisements de moyennes mobiles, facile à comprendre et à mettre en œuvre.

  2. Une réaction plus rapide aux variations de prix et aux renversements de tendance grâce à l'utilisation de l'EMA.

  3. Plusieurs périodes de moyennes mobiles permettent à la fois de suivre la tendance et d'identifier l'inversion.

  4. RSI filtre les fausses éruptions et augmente la précision du signal.

  5. Les paramètres de stop loss/take profit par défaut contrôlent efficacement les risques de négociation.

  6. Très personnalisable en ajustant les périodes moyennes mobiles, les ratios stop loss/take profit, etc.

Les risques

Les principaux risques de cette stratégie sont les suivants:

  1. Préoccupé par les variations et la volatilité des marchés, générant des signaux inactifs excessifs.

  2. Les paramètres par défaut peuvent ne pas correspondre à tous les produits et à tous les délais, ce qui nécessite une optimisation.

  3. Il s'agit d'un signal purement technique, sujet à des changements fondamentaux et à des risques d'événements.

  4. Peut être moins performant lorsque l'indice augmente mais que l'ampleur du marché diverge.

  5. Le risque de prendre des bénéfices trop tôt et de manquer la majeure partie de la tendance.

Pour faire face à ces risques, les optimisations suivantes peuvent être effectuées:

  1. Ajoutez des filtres comme le volume pour éviter de fausses fuites.

  2. Test de retour pour trouver les paramètres optimaux pour chaque produit.

  3. Un stop-loss et une prise de profit plus stricts pour limiter les risques liés à l'utilisation d'un scalpel sur différents marchés.

  4. Incorporer des filtres fondamentaux pour éviter les signaux avant les événements majeurs.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les périodes moyennes mobiles pour trouver les meilleures combinaisons à court, moyen et long terme, via l'apprentissage automatique, etc.

  2. Testez le prix de clôture par rapport au prix typique pour la performance.

  3. Ajoutez un filtre de volume pour ne recevoir que les signaux sur les barres de volume élevé.

  4. Optimisez les ratios stop-loss/take profit pour une plus grande précision ou définissez des stops dynamiques basés sur des pourcentages.

  5. Construisez des modèles composites avec des indicateurs supplémentaires comme le stochastique, le MACD, les bandes de Bollinger pour améliorer les performances.

  6. Test de fiabilité sur différents produits, délais et conditions du marché.

  7. Utiliser l'apprentissage automatique pour l'optimisation de paramètres multidimensionnels.

Conclusion

Il s'agit d'une stratégie de suivi de tendance facile à comprendre basée sur une logique de croisement de moyenne mobile simple. Elle présente des avantages tels qu'une mise en œuvre facile, une fiabilité et un potentiel de personnalisation élevé. Mais elle comporte également des risques inhérents au marché, nécessitant une optimisation continue des paramètres et des modules basés sur les résultats des backtests, pour rendre la stratégie plus robuste et intelligente.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-31 00:00:00
period: 15m
basePeriod: 5m
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/
// © pernath

//@version=5
strategy("TREND_CATCHER", overlay=true, commission_value=0.05, commission_type=strategy.commission.percent, initial_capital=1000)

//#####variables##############
profit_short=input(title='profit_short', defval=27)
stop_short=input(title='stop_short', defval=2)

stop_long=input(title='stop_long', defval=3)
profit_long=input(title='profit_long', defval=35)


media_1=input(title='media_1', defval=55)
media_2=input(title='media_2', defval=100)
resta_medias=input(title='resta_medias', defval=0)
resta_medias2=input(title='resta_medias2', defval=0)

RSI_periodos=input(title='RSI_periodos', defval=42)
//###############VARIABLES###################




//#####Alert#####
id_bot = ""
email_token = ""
long_open =""
long_close =""
short_open =""
short_close =""
//#  {{strategy.order.alert_message}}


//#############################
//#############################

//###############EMA##############/
//plot(ta.ema(close, 1), title='ema 5', color=color.white)
plot(ta.ema(close, 12), title='ema 12', color=color.white)
plot(ta.ema(close, 25), title='ema 25', color=color.white)
plot(ta.ema(close, 30), title='ema 30', color=color.white, linewidth=1)
plot(ta.ema(close, 40), title='ema 40', color=color.white, linewidth=1)
plot(ta.ema(close, 55), title='ema 55', color=color.orange, linewidth=1)
plot(ta.ema(close, 100), title='ema 100', color=color.red, linewidth=1)
plot(ta.ema(close, 200), title='ema 200', color=color.white, linewidth=3)

//#############################/





//######VISUAL#############
EMA50 = ta.ema(close, 55)
EMA100 = ta.ema(close, 100)


estado_medias=EMA50-EMA100




a = plot(EMA50, title="EMA(50)", color=color.orange, linewidth=1 ) 
b = plot(EMA100, title="EMA(100)", color=color.red, linewidth=1 )


var color col = na
col := estado_medias>resta_medias ? color.green : color.red
fill(a,b,color=col,transp=40)


//######VISUAL#############





Go_Short=(ta.crossunder(ta.ema(close,100),ta.ema(close,200)))
Go_Long=((ta.crossover(ta.ema(close,55),ta.ema(close,100))and(ta.ema(close,12)>ta.ema(close,200))))


strategy.close("enter long", (Go_Short),alert_message=long_open)

cancelar_short=((ta.crossunder(ta.ema(close,25),ta.ema(close,6))))



if Go_Short
    strategy.entry("enter short", strategy.short,1, alert_message=short_open) 
  
strategy.exit("cerrar short", "enter short", 1, profit=close*profit_short/100/syminfo.mintick, loss=close*stop_short/100/syminfo.mintick, alert_message=short_close)




strategy.close("enter short", (Go_Long),alert_message=short_close)
cancelar=((ta.crossunder(ta.ema(close,12),ta.ema(close,30))))



if Go_Long
    strategy.entry("enter long", strategy.long,1,alert_message=long_open)

strategy.exit("cerrar long", "enter long", 1, profit=close*profit_long/100/syminfo.mintick, loss=close*stop_long/100/syminfo.mintick, alert_message=long_close)




strategy.close("enter short", (cancelar_short),alert_message=short_close)

strategy.close("enter long", (cancelar),alert_message=long_close)


//posiciones abiertas
bgcolor((strategy.position_size > 0 or strategy.position_size < 0) ? color.blue : na, transp=70)









Plus de