Il s'agit d'une stratégie de trading quantitative basée sur des signaux de croisement de moyenne mobile double. La stratégie utilise deux moyennes mobiles, l'une comme ligne de signal principale et l'autre comme ligne de signal de lissage. Elle génère des signaux de trading en surveillant les croisements de prix avec la ligne de signal de lissage, permettant la capture des tendances du marché et le suivi de l'élan.
La stratégie utilise deux niveaux de calcul de la moyenne mobile. Elle calcule d'abord une moyenne mobile de base (période par défaut de 9), suivie d'un processus de lissage secondaire (période par défaut de 5). La stratégie propose diverses méthodes de calcul de la moyenne mobile, notamment la moyenne mobile simple (SMA), la moyenne mobile exponentielle (EMA), la moyenne mobile lissée (SMMA), la moyenne mobile pondérée (WMA) et la moyenne mobile pondérée en volume (VWMA).
Il s'agit d'une version améliorée d'une stratégie classique de suivi des tendances qui améliore la stabilité tout en conservant la simplicité grâce à une conception de moyenne mobile à double couche. La stratégie offre une bonne évolutivité et flexibilité, adaptable à différents environnements de marché grâce à l'optimisation des paramètres et aux extensions de fonction. Cependant, les utilisateurs doivent faire attention au contrôle des coûts de transaction et à la gestion des risques, et il est recommandé de procéder à un backtesting approfondi avant le trading en direct.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average 1.0 Strategy", overlay=true) // Input for Moving Average Length len = input.int(9, minval=1, title="Length") src = input(close, title="Source") offset = input.int(title="Offset", defval=0, minval=-500, maxval=500) // Calculate the Moving Average out = ta.sma(src, len) // Plot the Moving Average plot(out, color=color.blue, title="MA", offset=offset) // Function to choose the type of moving average ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Input for Smoothing Method and Length typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing") // Calculate the Smoothing Line smoothingLine = ma(out, smoothingLength, typeMA) // Plot the Smoothing Line plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset) // Strategy Logic if (ta.crossover(close, smoothingLine)) strategy.entry("Buy", strategy.long) if (ta.crossunder(close, smoothingLine)) strategy.entry("Sell", strategy.short)