Stratégie d'inversion de la moyenne mobile double

Auteur:ChaoZhang est là., Date: 2023-12-20 à 14h43
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading de suivi de tendance et d'inversion basée sur des moyennes mobiles simples.

La logique de la stratégie

Lorsqu'un MA de 1 jour dépasse le MA de 4 jours, un signal de vente est généré. Lorsqu'un MA de 1 jour dépasse le MA de 4 jours, un signal d'achat est généré. En utilisant le croisement d'une moyenne mobile rapide et lente pour identifier les points d'inversion de tendance, il vise à réaliser des bénéfices.

Après l'entrée sur le marché, les points de stop loss et de take profit sont définis. Le stop loss est défini 10 points en dessous du prix d'entrée. Le take profit est défini 100 points au-dessus du prix d'entrée. Cela peut limiter les pertes et verrouiller les bénéfices.

Analyse des avantages

  • Utilise des MAs doubles pour identifier les points d'inversion de manière simple et pratique
  • Sets stop-loss et profit pour limiter le risque
  • paramètres réglables, adaptables aux différentes conditions du marché
  • facile à comprendre et à mettre en œuvre, adapté aux débutants

Analyse des risques

  • Les paramètres d'AM non valides peuvent entraîner une survente ou des opportunités manquées
  • L'utilisation incorrecte des paramètres stop loss et take profit peut entraîner une sortie prématurée
  • Le retard des doubles AMP permettant d'identifier les renversements peut entraîner des pertes
  • Faibles performances si les paramètres ne sont pas ajustés en fonction des variations du marché

Les risques peuvent être atténués par la régulation des paramètres, la mise en place d'arrêts dynamiques, l'intégration d'autres indicateurs de validation du signal, etc.

Directions d'optimisation

  • Ajout de MACD, KD pour filtrer les faux signaux
  • Étude de l'effet des différentes périodes d'AM
  • Ajout d'un filtre de tendance pour éviter les transactions contre-tendance
  • Utilisation d'arrêts proportionnels au lieu de valeurs fixes
  • Réglage dynamique des paramètres par volatilité

Résumé

Il s'agit d'une stratégie typique d'inversion de double MA dans l'ensemble. Il identifie les inversions par des croisements rapides et lents de MA, contrôle le risque avec des arrêts, simple et pratique à comprendre pour les débutants. Avec le réglage des paramètres et des optimisations, il peut être adaptatif et l'ajout de filtres peut l'améliorer davantage. C'est une très bonne stratégie de démarrage à apprendre.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
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/
// © cesarpieres72

//@version=5
strategy("300% STRATEGY", overlay=true, margin_long=10, margin_short=10)
 
var float lastLongOrderPrice = na
var float lastShortOrderPrice = na

longCondition = ta.crossover(ta.sma(close, 1), ta.sma(close, 4))
if (longCondition)
    strategy.entry("Long Entry", strategy.long)  // Enter long

shortCondition = ta.crossunder(ta.sma(close, 1), ta.sma(close, 4))
if (shortCondition)
    strategy.entry("Short Entry", strategy.short)  // Enter short

if (longCondition)
    lastLongOrderPrice := close

if (shortCondition)
    lastShortOrderPrice := close

// Calculate stop loss and take profit based on the last executed order's price
stopLossLong = lastLongOrderPrice - 170  // 10 USDT lower than the last long order price
takeProfitLong = lastLongOrderPrice + 150  // 100 USDT higher than the last long order price
stopLossShort = lastShortOrderPrice + 170  // 10 USDT higher than the last short order price
takeProfitShort = lastShortOrderPrice - 150  // 100 USDT lower than the last short order price

// Apply stop loss and take profit to long positions
strategy.exit("Long Exit", from_entry="Long Entry", stop=stopLossLong, limit=takeProfitLong)

// Apply stop loss and take profit to short positions
strategy.exit("Short Exit", from_entry="Short Entry", stop=stopLossShort, limit=takeProfitShort) 

Plus de