Stratégie de trading RSI stochastique et de suivi de tendance du canal gaussien

RSI GWMA GWSD SRSI
Date de création: 2025-02-20 11:01:36 Dernière modification: 2025-02-20 11:01:36
Copier: 1 Nombre de clics: 638
2
Suivre
319
Abonnés

Stratégie de trading RSI stochastique et de suivi de tendance du canal gaussien Stratégie de trading RSI stochastique et de suivi de tendance du canal gaussien

Aperçu

La stratégie est un système de suivi des tendances qui combine un canal de moyenne mobile pondérée par Gauss et un indice stochastique relativement faible (RSI). La stratégie construit un canal de prix par la méthode de Gauss pondérée, et combine des signaux croisés d’indicateurs RSI aléatoires pour déterminer les moments d’entrée et de sortie, permettant une prise de conscience et une confirmation de la dynamique de la tendance.

Principe de stratégie

La logique centrale de la stratégie comprend deux parties principales:

  1. Système de canaux Gauss: construire des canaux de prix en utilisant des moyennes mobiles gaussées en poids ((GWMA) et des écarts standard gaussés en poids ((GWSD)). Le GWMA donne plus de poids aux données récentes, rendant la ligne de la même longueur plus sensible à la réaction aux changements de prix. La montée et la descente des canaux sont déterminées en multipliant le GWSD par un facteur multiplicatif.

  2. Système RSI aléatoire: traitement aléatoire de l’indicateur RSI traditionnel pour calculer les valeurs K et D. Ce traitement permet de mieux identifier les zones de survente et de survente et de fournir un signal de dynamique plus précis.

La génération de signaux de transaction est basée sur les conditions suivantes:

  • Plus d’entrée: la clôture du cours dépasse le canal de Gauss et traverse la ligne D sur la ligne K du RSI aléatoire
  • Signal de plafond: les cours de clôture sont tombés au-dessous de la trajectoire Gauss

Avantages stratégiques

  1. Les bases mathématiques sont solides: la méthode de Gauss pour construire des canaux de prix a une meilleure base théorique que la moyenne mobile simple.
  2. La fiabilité du signal est élevée: le mécanisme de double vérification combiné à la rupture des prix et à la confirmation de la dynamique permet de réduire efficacement les faux signaux.
  3. Adaptabilité: la méthode Gauss-Gravitée permet d’ajuster automatiquement la largeur des canaux en fonction des fluctuations du marché.
  4. Contrôle des risques: contrôle efficace des coûts et des risques de transaction grâce à la gestion des fonds et à la mise en place des commissions.

Risque stratégique

  1. La dépendance à la tendance: les faux signaux peuvent être fréquents dans les marchés en crise, ce qui conduit à des transactions excessives.
  2. Effets de retardation: Le signal peut être retardé à un tournant de tendance en raison de l’utilisation d’un lissage de ligne moyenne multiple.
  3. Sensitivité des paramètres: l’efficacité de la stratégie est fortement influencée par les paramètres qui doivent être soigneusement optimisés.

Orientation de l’optimisation de la stratégie

  1. Identification de l’environnement de marché: ajout d’un mécanisme de jugement de l’environnement de marché qui utilise différents paramètres dans différents états de marché.
  2. Optimisation de l’arrêt des pertes: l’introduction de mécanismes d’arrêt dynamiques, tels que l’arrêt d’adaptation basé sur l’ATR ou la volatilité.
  3. Filtrage des signaux: augmentation de la confirmation de la transaction ou d’autres indicateurs techniques comme condition de filtrage auxiliaire.
  4. Gestion des fonds: mise en place d’une stratégie de gestion des positions plus flexible, en ajustant le ratio de détention en fonction de l’intensité du signal.

Résumer

La stratégie construit un système de suivi des tendances avec une base mathématique solide en combinant le canal de Gauss et l’indicateur RSI aléatoire. La stratégie est excellente dans les marchés où la tendance est évidente, mais il faut prêter attention à l’optimisation des paramètres et à l’adaptation à l’environnement du marché.

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

//@version=5
strategy("Gaussian Channel + Stoch RSI Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=1)

// User Inputs
length     = input.int(20, "Gaussian Length", minval=5)
multiplier = input.float(2.0, "Channel Multiplier", step=0.1)
rsiLength  = input.int(14, "RSI Length", minval=1)
stochLength= input.int(14, "Stoch RSI Length", minval=1)
kLength    = input.int(3, "Stoch K Smoothing", minval=1)
dLength    = input.int(3, "Stoch D Smoothing", minval=1)

// Gaussian Weighted Moving Average Function
f_gaussian(source, length) =>
    half = (length - 1) / 2.0
    sum = 0.0
    norm = 0.0
    // Gaussian standard deviation chosen as length/6 for a smooth curve
    denom = (length / 6.0) * (length / 6.0)
    for i = 0 to length - 1
        x = i - half
        w = math.exp(-(x * x) / (2 * denom))
        sum += source[i] * w
        norm += w
    sum / norm

// Gaussian Weighted Standard Deviation Function
f_gaussian_std(source, length) =>
    half = (length - 1) / 2.0
    gavg = f_gaussian(source, length)
    sum = 0.0
    norm = 0.0
    denom = (length / 6.0) * (length / 6.0)
    for i = 0 to length - 1
        x = i - half
        w = math.exp(-(x * x)/(2*denom))
        diff = source[i] - gavg
        sum += diff * diff * w
        norm += w
    math.sqrt(sum/norm)

// Compute Gaussian Channel
gaussMid = f_gaussian(close, length)
gaussStd = f_gaussian_std(close, length)
gaussUpper = gaussMid + gaussStd * multiplier
gaussLower = gaussMid - gaussStd * multiplier

// Stochastic RSI Calculation
rsi = ta.rsi(close, rsiLength)
rsiLowest = ta.lowest(rsi, stochLength)
rsiHighest = ta.highest(rsi, stochLength)
stoch = 100 * (rsi - rsiLowest) / math.max(rsiHighest - rsiLowest, 1e-10)
k = ta.sma(stoch, kLength)
d = ta.sma(k, dLength)

// Conditions
// Long entry: Price closes above upper Gaussian line AND Stoch RSI K > D (stochastic is "up")
longCondition = close > gaussUpper and k > d

// Exit condition: Price closes below upper Gaussian line
exitCondition = close < gaussUpper

// Only trade in the specified date range
inDateRange = time >= timestamp("2018-01-01T00:00:00") and time < timestamp("2069-01-01T00:00:00")

// Submit Orders
if inDateRange
    if longCondition and strategy.position_size <= 0
        strategy.entry("Long", strategy.long)
    if exitCondition and strategy.position_size > 0
        strategy.close("Long")
        
// Plot Gaussian Channel
plot(gaussMid, "Gaussian Mid", color=color.new(color.yellow, 0))
plot(gaussUpper, "Gaussian Upper", color=color.new(color.green, 0))
plot(gaussLower, "Gaussian Lower", color=color.new(color.red, 0))