Les ressources ont été chargées... Je charge...

Tendance croisée dynamique moyenne mobile multiflexible suivant une stratégie à confirmations multiples

Auteur:ChaoZhang est là., Date: 2025-01-17 15h53 et 16h
Les étiquettes:- Je vous en prie.Le taux d'intérêtIndice de résistanceATRSMARMALa WMASLTP

 Multi-Smoothed Moving Average Dynamic Crossover Trend Following Strategy with Multiple Confirmations

Résumé

Cette stratégie est un système de suivi de tendance basé sur plusieurs moyennes mobiles lisses, utilisant un triple lissage pour filtrer le bruit du marché tout en combinant l'indicateur de dynamique RSI, l'indicateur de volatilité ATR et le filtre de tendance EMA de 200 périodes pour confirmer les signaux de trading.

Principes de stratégie

Le noyau de la stratégie est de construire une ligne de tendance principale par triple assouplissement des prix et de générer des signaux de trading par croisement avec une ligne de signal à période plus courte. 1. la position des prix par rapport à 200EMA confirme la direction de la tendance principale La position de l'indicateur RSI confirme le dynamisme L'indicateur ATR confirme une volatilité suffisante 4. Le croisement de la ligne de signal avec une MA triple lissée confirme des points d'entrée spécifiques Le stop-loss utilise des stops dynamiques basés sur ATR, tandis que le take-profit est fixé à 2x ATR pour assurer des ratios risque-rendement favorables.

Les avantages de la stratégie

  1. Le triplométrage réduit considérablement les faux signaux et améliore la fiabilité du jugement de la tendance
  2. Des mécanismes de confirmation multiples assurent l'alignement de l'orientation des échanges avec les principales tendances
  3. Les paramètres dynamiques d'arrêt des pertes et de prise de bénéfices s'adaptent aux différents environnements de volatilité du marché
  4. L'exploitation stratégique sur une période d'une heure évite efficacement les oscillations sur une période inférieure
  5. La fonction de non-repeinture garantit la fiabilité des résultats des tests antérieurs

Risques stratégiques

  1. Peut entraîner de petites pertes consécutives sur différents marchés
  2. Des mécanismes de confirmation multiples pourraient entraîner des occasions de négociation manquées
  3. Le décalage du signal peut affecter l'optimisation du point d'entrée
  4. Requiert une volatilité suffisante pour générer des signaux efficaces
  5. Les arrêts dynamiques peuvent ne pas être suffisamment opportuns dans des conditions de marché extrêmes

Directions d'optimisation de la stratégie

  1. Peut ajouter des indicateurs de volume comme confirmation auxiliaire
  2. Considérer l'introduction de mécanismes d'optimisation adaptative des paramètres
  3. Peut ajouter une évaluation quantitative de la force de la tendance
  4. Optimiser les paramètres du multiplicateur stop-loss et take-profit
  5. Considérer l'ajout d'indicateurs d'oscillateur pour améliorer les performances du marché

Résumé

Il s'agit d'une stratégie de suivi des tendances avec une structure complète et une logique rigoureuse. Grâce à plusieurs processus de lissage et à plusieurs mécanismes de confirmation, il améliore efficacement la fiabilité des signaux de trading. Le mécanisme de gestion dynamique des risques offre une bonne adaptabilité. Bien qu'il y ait un certain retard, la stratégie a encore une marge d'amélioration significative grâce à l'optimisation des paramètres et à des indicateurs auxiliaires supplémentaires.


/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("Optimized Triple Smoothed MA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// === Input Settings ===
slength = input.int(7, "Main Smoothing Length", group="Moving Average Settings")
siglen = input.int(12, "Signal Length", group="Moving Average Settings")
src = input.source(close, "Data Source", group="Moving Average Settings")
mat = input.string("EMA", "Triple Smoothed MA Type", ["EMA", "SMA", "RMA", "WMA"], group="Moving Average Settings")
mat1 = input.string("EMA", "Signal Type", ["EMA", "SMA", "RMA", "WMA"], group="Moving Average Settings")

// === Trend Confirmation (Higher Timeframe Filter) ===
useTrendFilter = input.bool(true, "Enable Trend Filter (200 EMA)", group="Trend Confirmation")
trendMA = ta.ema(close, 200)

// === Momentum Filter (RSI Confirmation) ===
useRSIFilter = input.bool(true, "Enable RSI Confirmation", group="Momentum Confirmation")
rsi = ta.rsi(close, 14)
rsiThreshold = input.int(50, "RSI Threshold", group="Momentum Confirmation")

// === Volatility Filter (ATR) ===
useATRFilter = input.bool(true, "Enable ATR Filter", group="Volatility Filtering")
atr = ta.atr(14)
atrMa = ta.sma(atr, 14)

// === Risk Management (ATR-Based Stop Loss) ===
useAdaptiveSL = input.bool(true, "Use ATR-Based Stop Loss", group="Risk Management")
atrMultiplier = input.float(1.5, "ATR Multiplier for SL", minval=0.5, maxval=5, group="Risk Management")
takeProfitMultiplier = input.float(2, "Take Profit Multiplier", group="Risk Management")

// === Moving Average Function ===
ma(source, length, MAtype) =>
    switch MAtype
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "RMA" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)

// === Triple Smoothed Calculation ===
tripleSmoothedMA = ma(ma(ma(src, slength, mat), slength, mat), slength, mat)
signalLine = ma(tripleSmoothedMA, siglen, mat1)

// === Crossovers (Entry Signals) ===
bullishCrossover = ta.crossunder(signalLine, tripleSmoothedMA)
bearishCrossover = ta.crossover(signalLine, tripleSmoothedMA)

// === Additional Confirmation Conditions ===
trendLongCondition = not useTrendFilter or (close > trendMA)  // Only long if price is above 200 EMA
trendShortCondition = not useTrendFilter or (close < trendMA) // Only short if price is below 200 EMA

rsiLongCondition = not useRSIFilter or (rsi > rsiThreshold)  // RSI above 50 for longs
rsiShortCondition = not useRSIFilter or (rsi < rsiThreshold) // RSI below 50 for shorts

atrCondition = not useATRFilter or (atr > atrMa)  // ATR must be above its MA for volatility confirmation

// === Final Trade Entry Conditions ===
longCondition = bullishCrossover and trendLongCondition and rsiLongCondition and atrCondition
shortCondition = bearishCrossover and trendShortCondition and rsiShortCondition and atrCondition

// === ATR-Based Stop Loss & Take Profit ===
longSL = close - (atr * atrMultiplier)
longTP = close + (atr * takeProfitMultiplier)

shortSL = close + (atr * atrMultiplier)
shortTP = close - (atr * takeProfitMultiplier)

// === Strategy Execution ===
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", stop=longSL, limit=longTP)

if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", stop=shortSL, limit=shortTP)

// === Plots ===
plot(tripleSmoothedMA, title="Triple Smoothed MA", color=color.blue)
plot(signalLine, title="Signal Line", color=color.red)
plot(trendMA, title="200 EMA", color=color.gray)

// === Alerts ===
alertcondition(longCondition, title="Bullish Signal", message="Triple Smoothed MA Bullish Crossover Confirmed")
alertcondition(shortCondition, title="Bearish Signal", message="Triple Smoothed MA Bearish Crossover Confirmed")


Relationnée

Plus de