Stratégie de prédiction adaptative du signal de croisement SMI basée sur l'indicateur de momentum

SMI EMA
Date de création: 2024-12-27 15:38:01 Dernière modification: 2024-12-27 15:38:01
Copier: 2 Nombre de clics: 370
1
Suivre
1617
Abonnés

Stratégie de prédiction adaptative du signal de croisement SMI basée sur l’indicateur de momentum

Aperçu

La stratégie est un système de trading adaptatif basé sur l’indicateur de momentum stochastique (SMI). Il prédit les tendances du marché en analysant le croisement de l’indicateur SMI et de sa ligne de signal, et émet automatiquement des signaux d’achat et de vente aux positions clés. La stratégie utilise une moyenne mobile exponentielle double (EMA) pour lisser les données et améliorer la fiabilité du signal. Ce système est particulièrement adapté aux transactions à moyen et long terme et permet de capter efficacement les points de retournement des grandes tendances du marché.

Principe de stratégie

Le cœur de la stratégie consiste à mesurer la dynamique des prix en calculant l’indicateur de dynamique stochastique (SMI). Tout d’abord, la fourchette des prix hauts et bas au cours d’une période donnée est calculée, puis le prix de clôture est normalisé par rapport à cette fourchette. En appliquant un double lissage EMA à la plage relative et à la plage de prix, une valeur SMI plus stable est obtenue. Lorsque la ligne SMI effectue un croisement doré avec sa ligne de signal (EMA du SMI), un signal d’achat est déclenché ; lorsqu’elle effectue un croisement mortel, un signal de vente est déclenché. Dans le même temps, les plages de surachat et de survente (+40/-40) devraient confirmer la fiabilité du signal.

Avantages stratégiques

  1. Forte clarté du signal : l’utilisation de signaux croisés comme déclencheurs de trading évite les jugements subjectifs
  2. Bonne résistance au bruit : le double lissage EMA est utilisé pour filtrer efficacement le bruit du marché
  3. Forte adaptabilité : peut s’adapter à différents environnements de marché grâce à l’optimisation des paramètres
  4. Contrôle des risques amélioré : définir des plages de surachat et de survente pour éviter les erreurs de jugement dans des conditions de marché extrêmes
  5. Haut degré de visualisation : utilisez le remplissage en dégradé pour afficher intuitivement l’état du marché

Risque stratégique

  1. Risque de décalage : en raison de l’utilisation de plusieurs moyennes mobiles, le signal aura un certain décalage
  2. Risque de marché volatil : de faux signaux peuvent être générés dans un marché latéral et volatil
  3. Sensibilité des paramètres : différentes combinaisons de paramètres peuvent conduire à des résultats complètement différents
  4. Dépendance à l’environnement de marché : meilleure performance sur les marchés à tendance, mauvaise performance sur les marchés volatils

Orientation de l’optimisation de la stratégie

  1. Présentation des indicateurs de volume : vérification de la validité du signal en combinant les variations de volume
  2. Ajouter un filtre de tendance : utilisez la moyenne mobile à long terme pour confirmer la direction de la tendance générale
  3. Optimiser l’adaptation des paramètres : ajuster dynamiquement les paramètres en fonction de la volatilité du marché
  4. Ajoutez un mécanisme de stop loss : définissez un stop loss mobile pour protéger les bénéfices existants
  5. Améliorer la gestion des risques : ajouter des modules de gestion de position et de gestion de fonds

Résumer

Il s’agit d’une stratégie de trading mature basée sur l’indicateur SMI. Elle génère des signaux de trading grâce au croisement d’indicateurs techniques et est très pratique. L’avantage principal de cette stratégie est que le signal est clair et qu’il est très résistant au bruit, mais il existe également un certain degré de décalage. En ajoutant des mesures d’optimisation telles que la vérification du volume et le filtrage des tendances, la stabilité et la fiabilité de la stratégie peuvent être encore améliorées. Cette stratégie est particulièrement adaptée au suivi des tendances à moyen et long terme et constitue un bon choix pour les investisseurs qui souhaitent créer un système de trading systématique.

Code source de la stratégie
/*backtest
start: 2024-12-19 00:00:00
end: 2024-12-26 00:00:00
period: 45m
basePeriod: 45m
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/
// © Iban_Boe

//@version=6
strategy("SMI Strategy with Signals", "SMI Strategy", overlay=false)

// Parámetros del SMI
lengthK   = input.int(14, "%K Length",  minval=1, maxval=15000)
lengthD   = input.int(3,  "%D Length",  minval=1, maxval=4999)
lengthEMA = input.int(3,  "EMA Length", minval=1, maxval=4999)

// Función de doble EMA
emaEma(source, length) => ta.ema(ta.ema(source, length), length)

// Cálculos del SMI
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
smiSignal = ta.ema(smi, lengthEMA)

// Gráficos del SMI
smiPlot = plot(smi, "SMI", color=color.blue)
plot(smiSignal, "SMI-based EMA", color=color.orange)

// Level lines
hline(40, "Overbought Line", color=color.green)
hline(-40, "Oversold Line", color=color.red)
hline(0, "Middle Line", color=color.gray)

midLinePlot = plot(0, color = na, editable = false, display = display.none)
fill(smiPlot, midLinePlot, 120,  40,   top_color = color.new(#4caf4f, 50),    bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(smiPlot, midLinePlot, -40, -120,  top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 50),    title = "Oversold Gradient Fill")

// Señales de compra y venta
buySignal = ta.crossover(smi, smiSignal) // Detect crossover
sellSignal = ta.crossunder(smi, smiSignal) // Detect crossover

// Graficar señales de compra/venta
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Señal de Compra")
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Señal de Venta")

// Lógica de la estrategia
if (buySignal)
    strategy.entry("Compra", strategy.long)

if (sellSignal)
    strategy.entry("Venta", strategy.short)

// Alertas
alertcondition(buySignal, title="Alerta de Compra", message="¡Señal de Compra Detectada!")
alertcondition(sellSignal, title="Alerta de Venta", message="¡Señal de Venta Detectada!")