Stratégie de négociation des moyennes mobiles multiples exponentielles

Auteur:ChaoZhang est là., Date: 2024-03-11 16:17:20 Le projet de loi est en cours d'adoption.
Les étiquettes:

img

Résumé

Cette stratégie combine plusieurs moyennes mobiles exponentielles (MEI) pour identifier les points d'entrée et de sortie potentiels du marché.

Principe de stratégie

Cette stratégie utilise 4 EMA avec des périodes différentes comme indicateurs de base, à savoir l'EMA à très court terme (8 périodes de défaut), l'EMA à court terme (13 périodes de défaut), l'EMA à moyen terme (21 périodes de défaut) et l'EMA à long terme (55 périodes de défaut). Lorsque l'EMA à long terme est inférieure aux trois autres EMA, il est jugé que le marché actuel peut être au début d'une tendance à la hausse, et la stratégie ouvre une position longue; lorsque l'EMA à long terme est au-dessus des trois autres EMA, il est jugé que le marché actuel peut être au début d'une tendance à la baisse, et la stratégie ferme toutes les positions longues.

Comparée à la moyenne mobile simple (SMA), l'EMA met plus l'accent sur les prix récents et sa tendance est donc plus sensible et peut réagir plus rapidement aux changements de prix. Le croisement des EMA avec différentes périodes reflète la force des tendances sur différentes échelles de temps. L'EMA à long terme est le plus stable et représente la tendance significative du marché; les EMA à moyen et à court terme sont relativement sensibles et reflètent les tendances du marché à court et à moyen terme.

Analyse des avantages

  1. Applicabilité large: Cette stratégie est basée sur l'indicateur EMA du prix lui-même et est applicable à la plupart des variétés avec une bonne liquidité et des tendances relativement lisses, telles que divers contrats à terme, forex, crypto-monnaies traditionnelles, etc.

  2. Suivi de tendance: en comparant la relation de position des EMA avec différentes périodes pour déterminer la tendance, il peut capturer le début de la formation de tendance dans une certaine mesure et suivre la tendance.

  3. Paramètres flexibles: les paramètres de la période de l'EMA peuvent être ajustés de manière flexible en fonction des caractéristiques des variétés, de l'horizon d'investissement, etc., et ont une certaine adaptabilité.

  4. Logique claire: la stratégie génère des signaux de négociation basés sur une combinaison simple d'arrangements EMA longs et courts, et la logique est claire et facile à comprendre et à mettre en œuvre.

Analyse des risques

  1. L'EMA est essentiellement un indicateur de suivi des tendances et présente un certain décalage, qui peut générer davantage de faux signaux dans un marché turbulent.

  2. Sensibilité des paramètres: la sélection des paramètres de la période EMA a une incidence significative sur les performances de la stratégie et les paramètres optimisés peuvent ne pas maintenir de bonnes performances sur les données hors échantillon.

  3. Manque de filtrage: Cette stratégie ne permet pas de filtrer davantage les signaux de trading, et tous les signaux générés seront négociés, ce qui peut entraîner des transactions de faible qualité.

  4. Position fixe: à l'heure actuelle, la stratégie ouvre une position fixe d'une unité à chaque fois, manquant de contrôle dynamique de la position basé sur le risque et la gestion des risques n'est pas suffisamment parfaite.

Direction de l'optimisation

  1. Introduire le filtrage des tendances: sur la base des signaux EMA, ajouter des indicateurs de filtrage de la force de la tendance tels que ATR et ADX pour filtrer les signaux des tendances faibles et des périodes turbulentes.

  2. Introduire un filtrage de volatilité: sur la base du filtrage de tendance, un filtrage de volatilité tel que la largeur de bande de Bollinger peut être introduit pour filtrer les signaux de mauvaise qualité qui peuvent être causés par une volatilité élevée.

  3. Optimiser le stop-loss: Actuellement, la stratégie ne dispose pas d'une logique de stop-loss claire. Après avoir introduit la tendance et le filtrage de la volatilité, un stop-loss dynamique basé sur l'ATR ou le pourcentage peut être ajouté pour contrôler la perte maximale d'une seule transaction.

  4. Position dynamique: en fonction de la volatilité des variétés, de la proportion de la valeur du compte, etc., le nombre de positions ouvertes par la stratégie à chaque fois peut être contrôlé de manière dynamique pour obtenir des rendements absolus plus élevés tout en réduisant le risque.

  5. Optimiser les paramètres: pour différentes variétés et différentes périodes, les paramètres optimaux de l'EMA peuvent être différents et l'optimisation des paramètres doit être effectuée séparément en fonction des caractéristiques des variétés afin d'améliorer l'applicabilité de la stratégie.

Résumé

Cette stratégie identifie les points tournants de la tendance en comparant les combinaisons d'arrangements longs et courts de 4 EMA avec différentes périodes pour capturer le début de la formation de la tendance. L'idée est simple et claire. Ses avantages résident dans sa large gamme d'applicabilité, sa logique claire et ses paramètres flexibles, et elle peut bien suivre les tendances; mais en même temps, elle présente également le décalage inhérent des indicateurs EMA, ainsi que des problèmes tels que la sensibilité des paramètres, le manque de filtrage et la position fixe.


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © n1ghthawk

//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)

float long = na
float short = na

lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")

lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)


emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA

longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)

notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
    long:=high
    strategy.entry("EL", strategy.long)

if shortCondition and emaShortCondition
    short:=low
    strategy.close("EL")


plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)

plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)

Plus de