Stratégie de suivi des tendances d'optimisation multi-indicateurs dynamiques

MACD ATR BB SMA MTF IC
Date de création: 2025-02-21 10:46:28 Dernière modification: 2025-02-21 10:46:28
Copier: 3 Nombre de clics: 332
2
Suivre
319
Abonnés

Stratégie de suivi des tendances d’optimisation multi-indicateurs dynamiques Stratégie de suivi des tendances d’optimisation multi-indicateurs dynamiques

Aperçu

La stratégie est un système de trading de suivi de tendance à fusion multi-indicateurs, combinant l’analyse des trois dimensions de la tendance, de la dynamique et de la volatilité du marché. La logique centrale est de juger de la tendance du marché à travers un nuage d’indicateurs (Ichimoku Cloud), de confirmer la dynamique du graphique vertical MACD, de filtrer l’état de volatilité du marché à l’aide de la largeur de la bande de Bollinger (Bollinger Band Width), tout en introduisant un mécanisme de confirmation de tendance au niveau de la semaine, et enfin de gérer le risque par un arrêt dynamique basé sur l’ATR.

Principe de stratégie

La stratégie utilise un mécanisme de filtrage de signaux à plusieurs niveaux: d’abord, déterminer la grande tendance du marché en déterminant si les prix sont au-dessus ou au-dessous de la nuée par les intervalles A et B de l’indicateur d’un nuage; ensuite, utiliser le diagramme linéaire MACD pour déterminer l’intensité de la dynamique, en demandant un diagramme linéaire à plusieurs heures supérieur à -0.05, moins de 0 heures de pointe; troisième, introduire la moyenne des 50 cycles de la période périodique de la courbe de temps pour confirmer la direction de la tendance à un niveau plus élevé; quatrième, utiliser l’indicateur de largeur de bande de Brin pour filtrer le taux de fluctuation bas, uniquement lorsque la largeur est supérieure à 0.02.

Avantages stratégiques

  1. Filtrage de signaux multidimensionnels: réduire efficacement les faux signaux par une combinaison d’indicateurs en trois dimensions: tendance, dynamique et volatilité.
  2. L’analyse des cycles multiples: l’introduction de la confirmation de tendances périphériques pour améliorer la précision de la direction des transactions.
  3. Gestion dynamique des risques: un mécanisme d’arrêt des pertes adaptatif basé sur l’ATR et la bande passante de Brin, qui protège les bénéfices tout en laissant de la place à la tendance.
  4. Les résultats du recensement sont excellents: un bénéfice net de 10,80%, un taux de profit / perte de 2,593, une victoire de 50,70%, et un maximum de retrait de seulement 1,47% [2].

Risque stratégique

  1. La dépendance à la tendance: la stratégie peut générer de faux signaux fréquents dans un marché en crise.
  2. Sensitivité des paramètres: plusieurs paramètres de l’indicateur doivent être optimisés pour différentes conditions de marché.
  3. Risque de retard: le filtrage de signaux multiples peut entraîner un retard de temps d’entrée et une perte partielle.
  4. Limitation de la rétroaction: les performances historiques ne sont pas représentatives des performances futures, et les points de glissement et les frais de traitement doivent être pris en compte sur le disque.

Orientation de l’optimisation de la stratégie

  1. Optimisation du système de signaux: d’autres indicateurs de dynamique tels que le RSI peuvent être introduits pour améliorer la fiabilité du signal.
  2. Optimisation de la gestion des positions: la taille des positions peut être ajustée dynamiquement en fonction de la volatilité.
  3. Optimisation du mécanisme de freinage: augmentation des conditions de freinage mobiles ou basées sur des indicateurs techniques.
  4. Optimisation de l’adaptabilité du marché: paramètres d’ajustement dynamique pour les différentes conditions du marché.

Résumer

La stratégie a construit un système complet de suivi des tendances grâce à la fusion d’indicateurs multidimensionnels et à l’analyse de cycles multi-temps, et est équipée d’un mécanisme de gestion des risques dynamique. Bien que le suivi des performances soit excellent, il convient de rester attentif aux risques liés aux changements de l’environnement du marché.

Code source de la stratégie
/*backtest
start: 2024-11-01 00:00:00
end: 2025-02-19 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FIWB
//@version=6
strategy("Momentum Edge Strategy - 1D BTC Optimized", overlay=true)

// --- Input Parameters ---
atrLength     = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier")
bbWidthThreshold = input.float(0.02, title="Bollinger Band Width Threshold")

// --- Ichimoku Cloud ---
conversionLine = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
baseLine = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
leadingSpanA = (conversionLine + baseLine) / 2
leadingSpanB = (ta.highest(high, 52) + ta.lowest(low, 52)) / 2
priceAboveCloud = close > leadingSpanA and close > leadingSpanB
priceBelowCloud = close < leadingSpanA and close < leadingSpanB

// --- MACD Histogram ---
[_, _, macdHistogram] = ta.macd(close, 12, 26, 9)

// --- Multi-Timeframe Trend Confirmation ---
higherTFTrend = request.security(syminfo.tickerid, "W", close > ta.sma(close, 50))

// --- Bollinger Band Width ---
bbBasis = ta.sma(close, 20)
bbUpper = bbBasis + 2 * ta.stdev(close, 20)
bbLower = bbBasis - 2 * ta.stdev(close, 20)
bbWidth = (bbUpper - bbLower) / bbBasis

// --- ATR-based Stop Loss ---
atrValue     = ta.atr(atrLength)
highestHigh = ta.highest(high, atrLength)
lowestLow = ta.lowest(low, atrLength)
longStopLoss = bbWidth < bbWidthThreshold ? lowestLow : close - atrValue * atrMultiplier
shortStopLoss= bbWidth < bbWidthThreshold ? highestHigh : close + atrValue * atrMultiplier

// --- Entry Conditions ---
longCondition = priceAboveCloud and macdHistogram > -0.05 and higherTFTrend and bbWidth > bbWidthThreshold
shortCondition = priceBelowCloud and macdHistogram < 0 and not higherTFTrend and bbWidth > bbWidthThreshold

// --- Strategy Execution ---
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry="Long", stop=longStopLoss)

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

// --- Plotting ---
plot(leadingSpanA, color=color.new(color.green, 80), title="Leading Span A")
plot(leadingSpanB, color=color.new(color.red, 80), title="Leading Span B")
plotshape(series=longCondition ? close : na, title="Long Signal", location=location.belowbar, color=color.green)
plotshape(series=shortCondition ? close : na, title="Short Signal", location=location.abovebar, color=color.red)