Stratégie de jugement de tendance basée sur le filtrage par canal gaussien et indice de force relative stochastique

GC RSI SMA K D
Date de création: 2025-02-21 11:42:36 Dernière modification: 2025-02-21 11:42:36
Copier: 0 Nombre de clics: 425
2
Suivre
319
Abonnés

Stratégie de jugement de tendance basée sur le filtrage par canal gaussien et indice de force relative stochastique Stratégie de jugement de tendance basée sur le filtrage par canal gaussien et indice de force relative stochastique

Aperçu

La stratégie est un système de suivi des tendances qui combine le canal de Gauss et un indice stochastique relativement faible au hasard (le RSI stochastique). Le canal de Gauss est utilisé pour identifier les tendances et les plages de fluctuation des prix, tandis que le RSI stochastique sert de filtre pour confirmer les conditions de survente et de survente, ce qui améliore la précision des signaux de négociation. La stratégie génère des signaux de négociation en observant la croisée des prix avec la frontière du canal de Gauss et la position du RSI stochastique.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les éléments clés suivants :

  1. Calcul des canaux de Gauss: Calcul de la ligne médiane à l’aide d’un filtre de Gauss, et basé sur un réglage multiplicatif des bandes de canaux ascendantes et descendantes. Le filtre de Gauss utilise une méthode de lissage de l’indice, ce qui peut réduire efficacement le bruit des prix.
  2. Stochastic RSI: Combine les avantages d’un indicateur aléatoire et du RSI pour identifier un état d’achat et de vente excessif à l’aide de deux lignes de glissement %K et %D.
  3. Conditions d’entrée :
    • Coup de tête: le prix a dépassé la trajectoire descendante du canal de Gauss et le RSI stochastique est en zone de survente
    • Blank: les prix ont dépassé la trajectoire de Gauss et le RSI stochastique est en zone de survente
  4. Conditions de jeu:
    • Quand le prix traverse la ligne médiane du canal de Gauss
    • Le RSI stochastique atteint le niveau inverse de surachat et de survente.

Avantages stratégiques

  1. Une fiabilité élevée du signal: la combinaison de tendances et d’indicateurs de dynamique permet de filtrer efficacement les faux signaux
  2. Contrôle des risques: l’utilisation du canal de Gauss comme point de pression de soutien dynamique fournit un bon cadre de gestion des risques
  3. Paramètres réglables: la largeur du canal et les paramètres RSI peuvent être ajustés en fonction des caractéristiques du marché
  4. Haute efficacité de calcul: le filtre de Gauss est plus petit pour les transactions en temps réel.
  5. Adaptabilité: utilisation dans différentes périodes et conditions de marché

Risque stratégique

  1. Risque de choc: Faux signaux de rupture fréquents sur le marché horizontal
  2. Risque de retard: un traitement lisse de l’indicateur peut entraîner un certain retard du signal
  3. Sensitivité des paramètres: différentes combinaisons de paramètres peuvent entraîner des résultats de transaction significativement différents
  4. Confiance sur les conditions du marché: meilleure performance dans les marchés en forte tendance, mais plus de retraits possibles dans les marchés en forte reprise

Orientation de l’optimisation de la stratégie

  1. Optimisation dynamique des paramètres :
    • Adaptation de la largeur du canal en fonction des fluctuations du marché
    • Paramètres du RSI stochastique ajustés en fonction de la dynamique des caractéristiques du cycle du marché
  2. Mécanisme de confirmation du signal:
    • Ajout d’un indicateur de confirmation de transaction
    • Introduction de filtres de résistance à la tendance
  3. Une meilleure gestion des risques:
    • Mise en œuvre d’un stop-loss dynamique
    • Ajouter un module de gestion de position
  4. Identifier le contexte du marché:
    • Développement d’un classificateur de l’état du marché
    • Adapter les paramètres de stratégie en fonction des différentes conditions du marché

Résumer

La stratégie est conçue de manière rationnelle, avec une bonne extensibilité et une bonne adaptabilité. La direction d’optimisation recommandée peut améliorer encore la stabilité et la rentabilité de la stratégie. Dans les applications réelles, il est recommandé de tester pleinement différentes combinaisons de paramètres et d’optimiser de manière ciblée en fonction des caractéristiques spécifiques du marché.

Code source de la stratégie
/*backtest
start: 2025-01-21 00:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Gaussian Channel + Stochastic RSI Filter", overlay=true, margin_long=100, margin_short=100)

// === INPUTS ===
input_length = input.int(100, title="Gaussian Channel Length", minval=1)
input_mult = input.float(2.0, title="Gaussian Channel Multiplier", minval=0.1, step=0.1)
stoch_rsi_period = input.int(14, title="Stochastic RSI Period", minval=1)
stoch_rsi_smoothK = input.int(3, title="Stochastic RSI Smooth K", minval=1)
stoch_rsi_smoothD = input.int(3, title="Stochastic RSI Smooth D", minval=1)
stoch_rsi_overbought = input.float(80.0, title="Stochastic RSI Overbought Level", minval=0, maxval=100)
stoch_rsi_oversold = input.float(20.0, title="Stochastic RSI Oversold Level", minval=0, maxval=100)

// === GAUSSIAN CHANNEL ===
// Gaussian filter calculation with proper initialization
gauss(src, len) =>
    b = math.exp(-1.414 * 3.14159 / len)
    a0 = 1 - b
    var float f = na
    f := na(f[1]) ? src : a0 * src + b * f[1]

// Calculate Gaussian channel
gaussian_channel_mid = gauss(close, input_length)
gaussian_channel_high = gaussian_channel_mid + gaussian_channel_mid * input_mult / 100
gaussian_channel_low = gaussian_channel_mid - gaussian_channel_mid * input_mult / 100

// Plot Gaussian Channel
plot(gaussian_channel_mid, color=color.blue, linewidth=2, title="Gaussian Channel Midline")
plot(gaussian_channel_high, color=color.green, linewidth=1, title="Gaussian Channel Upper Band")
plot(gaussian_channel_low, color=color.red, linewidth=1, title="Gaussian Channel Lower Band")

// === STOCHASTIC RSI ===
k = ta.sma(ta.stoch(close, high, low, stoch_rsi_period), stoch_rsi_smoothK)
d = ta.sma(k, stoch_rsi_smoothD)
is_oversold = k < stoch_rsi_oversold and d < stoch_rsi_oversold
is_overbought = k > stoch_rsi_overbought and d > stoch_rsi_overbought

// Plot Stochastic RSI
hline(stoch_rsi_overbought, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(stoch_rsi_oversold, "Oversold", color=color.green, linestyle=hline.style_dotted)
plot(k, color=color.blue, title="Stochastic RSI %K")
plot(d, color=color.orange, title="Stochastic RSI %D")

// === ENTRY AND EXIT LOGIC ===
// Long entry: Price crosses above Gaussian Channel lower band and Stochastic RSI is oversold
long_condition = ta.crossover(close, gaussian_channel_low) and is_oversold

// Short entry: Price crosses below Gaussian Channel upper band and Stochastic RSI is overbought
short_condition = ta.crossunder(close, gaussian_channel_high) and is_overbought

// Exit logic
long_exit = ta.crossunder(close, gaussian_channel_mid) or is_overbought
short_exit = ta.crossover(close, gaussian_channel_mid) or is_oversold

// Execute trades
if (long_condition)
    strategy.entry("Long", strategy.long)

if (short_condition)
    strategy.entry("Short", strategy.short)

if (long_exit)
    strategy.close("Long")

if (short_exit)
    strategy.close("Short")

// === SETTINGS ===
// Backtest date range
start_date = timestamp(2023, 1, 1, 0, 0)
end_date = timestamp(2069, 1, 1, 0, 0)
if (time < start_date or time > end_date)
    strategy.close_all()