Stratégie de trading à moyenne mobile exponentielle multiple


Date de création: 2024-03-11 16:17:20 Dernière modification: 2024-03-11 16:17:20
Copier: 0 Nombre de clics: 523
1
Suivre
1617
Abonnés

Stratégie de trading à moyenne mobile exponentielle multiple

Le film a été tourné en deux temps.

Cette stratégie utilise une combinaison de plusieurs indices de moyennes mobiles exponentielles (EMA) pour identifier les points d’entrée et de sortie potentiels des transactions sur le marché. En comparant les EMA de différentes périodes, il est possible de juger de la tendance actuelle du marché, d’intervenir au début de la formation d’une tendance et de terminer la tendance en position de zéro.

Le principe de stratégie

La stratégie utilise quatre EMA de différentes périodes comme indicateur central, respectivement l’EMA ultra-courte (par défaut 8), l’EMA courte (par défaut 13), l’EMA intermédiaire (par défaut 21) et l’EMA longue (par défaut 55). Lorsque l’EMA longue est en dessous des trois autres EMA, la stratégie ouvre des positions en jugant qu’elle est peut-être au début d’une tendance à la hausse; lorsque l’EMA longue est au-dessus des trois autres EMA, jugant qu’elle est peut-être au début d’une tendance à la baisse, la stratégie élimine toutes les positions en surplus.

Les EMA accordent plus d’importance aux prix à court terme qu’aux moyennes mobiles simples (SMA) et sont donc plus sensibles aux mouvements des EMA et peuvent donc réagir plus rapidement aux variations de prix. Les intersections des EMA à différentes périodes reflètent la force et la faiblesse des tendances à différentes échelles de temps. Les EMA à long terme sont les plus solides et représentent les grandes tendances du marché.

L’analyse des avantages

  1. Large portée: La stratégie est basée sur l’indicateur EMA du prix lui-même et s’applique à la plupart des variétés à bonne liquidité et à tendance relativement fluide, telles que les futures, les devises étrangères et les monnaies numériques traditionnelles.

  2. Suivi de la tendance: pour juger de la tendance en comparant les relations de position des EMA de différentes périodes, il est possible de capturer dans une certaine mesure la formation initiale de la tendance et de suivre la tendance.

  3. Paramètres flexibles: les paramètres périodiques de l’EMA peuvent être ajustés en fonction des caractéristiques de la variété, de l’horizon d’investissement, etc., avec une certaine adaptabilité.

  4. Logique claire: la stratégie génère un signal de transaction basé sur une simple combinaison d’arrangements multivariés EMA. La logique est claire et claire, facile à comprendre et à mettre en œuvre.

L’analyse des risques

  1. EMA en retard: L’EMA est essentiellement un indicateur de suivi de la tendance, il existe une certaine latence, et il peut y avoir plus de faux signaux dans les marchés en choc.

  2. Sensitivité des paramètres: le choix des paramètres de la période EMA a un impact significatif sur la performance de la stratégie et les paramètres optimisés ne peuvent pas nécessairement maintenir une bonne performance sur les données hors échantillon.

  3. Manque de filtrage: La stratégie manque de filtrage supplémentaire des signaux de négociation, les transactions sont effectuées après la génération de tous les signaux, et il est possible que des transactions de mauvaise qualité se produisent.

  4. Position fixe: la stratégie actuelle est de fixer une unité pour chaque ouverture de position, le manque de contrôle de position dynamique basé sur le risque et la gestion du risque sont insuffisamment perfectionnés.

Direction d’optimisation

  1. Introduction de filtres de tendance: sur la base des signaux EMA, ajouter des indicateurs de filtrage de l’intensité de la tendance tels que l’ATR, l’ADX et autres, afin de filtrer les signaux de tendance faible et les périodes de choc.

  2. Introduction de filtres d’oscillation: sur la base du filtrage de tendance, il est possible d’introduire des filtres d’oscillation, tels que la bande passante de Brin, pour filtrer les signaux de mauvaise qualité qui peuvent être causés par des taux d’oscillation élevés.

  3. Optimisation des arrêts: les stratégies actuelles manquent d’une logique d’arrêt claire et peuvent être augmentées avec des arrêts dynamiques basés sur l’ATR ou le pourcentage après l’introduction de filtres de tendance et de volatilité, afin de contrôler les pertes maximales individuelles.

  4. Position dynamique: le nombre de positions ouvertes par stratégie peut être contrôlé dynamiquement en fonction de la volatilité de la variété, du rapport de valeur du compte, etc., afin de rechercher des rendements absolus plus élevés tout en réduisant le risque.

  5. Paramètres d’optimisation: les meilleurs paramètres de l’EMA peuvent varier selon les variétés et les cycles, il est nécessaire d’optimiser les paramètres en fonction des caractéristiques de la variété pour améliorer l’applicabilité de la stratégie.

Résumé

L’avantage de cette stratégie est sa large portée, sa logique claire et sa flexibilité de paramètres, ce qui permet de mieux suivre la tendance. Mais il existe également des problèmes de latence inhérents aux indicateurs EMA, de sensibilité des paramètres, de manque de filtres et de positions fixes.

Code source de la stratégie
/*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)