Stratégie de trading basée sur la moyenne mobile Golden Cross et Dead Cross


Date de création: 2024-01-24 11:48:29 Dernière modification: 2024-01-24 11:48:29
Copier: 0 Nombre de clics: 645
1
Suivre
1617
Abonnés

Stratégie de trading basée sur la moyenne mobile Golden Cross et Dead Cross

Aperçu

La stratégie de trading de la fourchette de la moyenne mobile génère des signaux d’achat et de vente en calculant le croisement des lignes rapides EMA ((fastLength) et des lignes lentes EMA ((slowLength)). Elle génère des signaux d’achat lorsque la ligne rapide traverse la ligne lente; elle génère des signaux de vente lorsque la ligne rapide traverse la ligne lente.

Principe de stratégie

La stratégie utilise deux moyennes mobiles, les lignes rapides et les lignes lentes. Le paramètre de la ligne rapide EMAfastLength prend la ligne de 9 jours par défaut, et le paramètre de la ligne lente EMAAslowLength prend la ligne de 26 jours par défaut. Le croisement des deux lignes EMA est calculé pour déterminer les signaux de vente et d’achat du marché:

  1. Lorsque la ligne rapide dépasse la ligne lente de bas en haut, un signal d’achat est généré.
  2. Le signal de vente est généré lorsque la ligne rapide passe de haut en bas à la ligne lente.

Les signaux de trading et les règles de stratégie sont les suivantes:

  1. Lorsque la ligne rapide est traversée par la ligne lente, il y a plus d’entrée; lorsque la ligne rapide est traversée par la ligne lente, il y a moins de sortie.
  2. Le stop plus est le Targetpercentage du prix (défaut: 0.15%), c’est-à-dire qu’une hausse de 15% suffit pour que la position soit levée.
  3. Le stop loss est le StopLosspercentage du prix (défaut: 0.20%), qui est un stop loss de la position de vente lorsque la baisse atteint 20%.
  4. Je ne suis pas d’accord avec toi.

La stratégie consiste donc à effectuer des opérations de négociation lorsque les deux moyennes mobiles se forgent et se déforment.

Analyse des avantages

  1. Les stratégies sont simples et faciles à comprendre.
  2. L’application des moyennes mobiles filtre une partie du bruit du marché et rend les signaux de négociation plus précis.
  3. Les règles de négociation sont claires et il existe une stratégie de stop-loss.
  4. Les paramètres de test peuvent être ajustés de manière flexible pour s’adapter à différentes conditions du marché.

Analyse des risques

  1. Les moyennes mobiles sont elles-mêmes retardées et risquent de manquer les fluctuations à court terme des prix, ce qui rend les points d’achat et de vente imprécis.
  2. Les paramètres des moyennes mobiles de différentes périodes peuvent générer de faux signaux et entraîner des pertes.
  3. La stratégie est basée sur quelques paramètres seulement et nécessite une optimisation hyperparamétrique élevée pour trouver la combinaison optimale de paramètres.
  4. Cette stratégie est susceptible d’échouer dans certaines tendances spécifiques à grande échelle.

Les paramètres qui peuvent être optimisés en fonction du risque, tels que la période des moyennes mobiles, le type de transaction, le taux de stop-loss, etc., nécessitent un grand nombre de tests pour réduire le risque.

Direction d’optimisation

L’idée de la croisée des moyennes mobiles de cette stratégie est simple et pratique et peut être optimisée de la manière suivante:

  1. Modifier le type de moyenne mobile: en plus de l’EMA, il est possible de tester les types de ligne SMA, LWMA, HMA et autres.
  2. Ajout d’autres indices: le trading à l’heure en combinaison avec des indicateurs tels que le RSI, le MACD et d’autres.
  3. Paramètres d’optimisation automatique: recherche d’optimisation automatique des deux paramètres périodiques de l’EMA pour trouver la meilleure combinaison de paramètres.
  4. Filtrage des tendances: effectuer des transactions sélectivement en fonction des tendances à grande échelle.
  5. Optimisation de la stratégie de stop-loss: amélioration de la méthode de stop-loss à pourcentage fixe pour une plus grande efficacité au combat.

Ces tests d’optimisation permettent d’améliorer considérablement l’efficacité et la stabilité de la stratégie.

Résumer

L’idée de la stratégie de croisement des moyennes mobiles est simple, mais l’application réelle nécessite une optimisation continue. Cette stratégie donne la logique de génération de signaux de négociation et les règles de base de la négociation, sur la base desquelles elle peut être optimisée de manière intensive, ce qui en fait une stratégie quantitative viable. L’application des moyennes mobiles nous fournit également une idée de stratégie sur laquelle nous pouvons innover et améliorer.

Code source de la stratégie
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)