Stratégie de croisement dynamique SMMA et SMA


Date de création: 2024-02-02 11:38:08 Dernière modification: 2024-02-02 11:38:08
Copier: 0 Nombre de clics: 788
1
Suivre
1617
Abonnés

Stratégie de croisement dynamique SMMA et SMA

Aperçu

Cette stratégie utilise un signal croisé de 50 cycles de moyenne mobile lisse (SMMA) et de 20 cycles de moyenne mobile simple (SMA) pour déterminer le moment de l’achat et de la vente. Elle génère un signal d’achat lorsque la SMA rapide monte au-dessus de la SMMA lente et génère un signal de vente lorsque la SMA descend au-dessus de la SMMA.

Principe de stratégie

  1. Calculer et tracer les SMMA à 50 cycles et les SMA à 20 cycles.
  2. Lorsqu’un SMA franchit le SMMA de bas en haut, il génère un signal d’achat; à l’inverse, lorsqu’un SMA franchit le SMMA de haut en bas, il génère un signal de vente.
  3. Lorsque les signaux d’achat et de vente se produisent, les positions “Buy” et “Sell” sont créées respectivement.
  4. Il y a 150 points fixes pour chaque position.
  5. Définissez un stop-loss dynamique sur la ligne K suivante qui génère le signal.
  6. Si le prix touche le point d’arrêt, il s’arrête; s’il touche le point d’arrêt, il s’arrête.

Analyse des avantages

  1. La stratégie de la double ligne uniforme est facile à utiliser, simple et compréhensible.
  2. SMMA est une amélioration de SMA qui permet de mieux saisir les tendances.
  3. La combinaison des SMA et des SMMA de différentes périodes permet de capturer les tendances en même temps que les oscillations de la houle.
  4. L’utilisation d’un stop-loss dynamique permet d’ajuster la position du stop-loss en fonction des changements de situation et de contrôler efficacement le risque.
  5. Le blocage des positions prédéfinies permet de verrouiller les bénéfices en temps opportun.

Analyse des risques

  1. Les stratégies bi-parallèles sont susceptibles de générer de faux signaux et d’être arbitragées. Les signaux peuvent être filtrés de manière appropriée pour éviter des transactions trop fréquentes.
  2. Les arrêts fixes sont faciles à manquer. Les arrêts mobiles ou les arrêts de taux de profit peuvent être définis.
  3. Les stop-loss dynamiques peuvent être trop rapprochés lors de fortes fluctuations du marché et devraient être allégés de manière appropriée.
  4. Attention aux variétés et aux paramètres de cycle.

Direction d’optimisation

  1. une combinaison de différents paramètres (nombre de cycles, conditions de filtrage, etc.) peut être testée pour trouver le paramètre optimal;

  2. Le signal de filtrage peut être combiné avec d’autres facteurs, tels que l’augmentation de la circulation;

  3. les outils d’optimisation des paramètres peuvent être utilisés pour trouver les paramètres optimaux;

  4. D’autres méthodes d’arrêt, telles que l’arrêt mobile et l’arrêt proportionnel, peuvent être envisagées.

  5. Le stop loss dynamique peut être calculé en fonction de la volatilité du marché.

Résumer

La stratégie fonctionne de manière simple, en capturant l’orientation de la tendance par une double ligne de symétrie; l’utilisation flexible de stop-loss fixes et de stop-loss dynamiques permet de verrouiller les bénéfices et de contrôler les risques, les risques et les bénéfices. La stratégie de récapitulation peut être adaptée à un environnement de marché plus large en optimisant les paramètres et les règles.

Code source de la stratégie
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true)

// Define 50 SMMA
smma50 = sma(close, 50)

// Define 20 SMA
sma20 = sma(close, 20)

// Plotting the SMMA and SMA
plot(smma50, color=color.blue, title="50 SMMA")
plot(sma20, color=color.red, title="20 SMA")

// Initialize TP and SL variables
tp = 150
var float sl_price = na

// Buy Signal
buySignal = crossover(sma20, smma50)
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price)

// Sell Signal
sellSignal = crossunder(sma20, smma50)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price)

// Update stop loss level on every crossover
if (buySignal or sellSignal)
    sl_price := close[bar_index + 1]

// Plot Stop Loss level
plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)