Stratégie de trading quantitative d'inversion de tendance basée sur le canal gaussien et le RSI stochastique

RSI STOCH EMA SD GC
Date de création: 2025-02-20 16:41:36 Dernière modification: 2025-02-20 16:41:36
Copier: 3 Nombre de clics: 372
2
Suivre
319
Abonnés

Stratégie de trading quantitative d’inversion de tendance basée sur le canal gaussien et le RSI stochastique Stratégie de trading quantitative d’inversion de tendance basée sur le canal gaussien et le RSI stochastique

Aperçu

La stratégie est un système de trading quantitatif combinant un canal gaussien et un indicateur stochastique relativement faible (le RSI stochastique). La stratégie capte les occasions de revirement de tendance du marché en surveillant les croisements des prix avec le canal gaussien et les mouvements du RSI aléatoire. Le canal gaussien est construit à partir d’une moyenne mobile et d’un écart-type, ce qui permet de refléter dynamiquement la gamme de fluctuations du marché, tandis que le RSI aléatoire fournit un signal de confirmation de la dynamique.

Principe de stratégie

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

  1. Construction du canal de Gauss: utilisation d’une moyenne mobile indicielle de 20 cycles (EMA) comme axe central du canal, la limite supérieure et inférieure du canal étant l’axe central plus moins deux fois l’écart-type.
  2. Calcul du RSI aléatoire: Calculer le RSI à 14 cycles, puis appliquer la formule aléatoire à 14 cycles aux valeurs du RSI, et ensuite traiter le résultat de 3 cycles pour obtenir la ligne K et la ligne D.
  3. Génération de signaux de négociation: génération de signaux de multiplication lorsque le prix franchit la trajectoire de Gauss et traverse la ligne D sur la ligne K du RSI au hasard; sortie de position de placement lorsque le prix franchit la trajectoire de Gauss.

Avantages stratégiques

  1. La fiabilité du signal est élevée: la combinaison d’indicateurs en deux dimensions de tendance et de dynamique permet de réduire efficacement les faux signaux.
  2. Contrôle des risques: utilisation des caractéristiques dynamiques du canal de Gauss pour ajuster automatiquement les zones de négociation en fonction des fluctuations du marché.
  3. Adaptabilité: grâce à une conception paramétrique, la stratégie peut s’adapter à différents environnements de marché et types de transactions.
  4. Efficacité d’exécution: logique stratégique claire et simple, faible volume de calcul, adapté aux transactions en temps réel.

Risque stratégique

  1. Risque de retard: le calcul des moyennes mobiles et de l’écart-type présente un certain retard qui peut entraîner un retard dans le temps d’entrée.
  2. Risque de fausse rupture: Les signaux de fausse rupture peuvent être fréquents dans les marchés en crise.
  3. Sensibilité des paramètres : l’efficacité de la stratégie est sensible aux paramètres définis, et les paramètres peuvent devoir être ajustés dans différents environnements de marché.
  4. La dépendance aux conditions du marché: les stratégies peuvent être moins efficaces dans les marchés horizontaux où la tendance n’est pas évidente.

Orientation de l’optimisation de la stratégie

  1. Optimisation du filtrage des signaux: vous pouvez ajouter des indicateurs auxiliaires tels que le volume de transactions, les fluctuations, etc. pour filtrer les signaux de transaction.
  2. Ajustement des paramètres dynamiques: un mécanisme d’adaptation est introduit pour ajuster dynamiquement les paramètres du canal et les paramètres RSI aléatoires en fonction des conditions du marché.
  3. Amélioration des mécanismes d’arrêt des pertes: ajout d’un mécanisme d’arrêt dynamique qui suit les pertes ou est basé sur la volatilité.
  4. Optimisation de la gestion des positions: ajustement du ratio de position en fonction de l’intensité du signal et de la dynamique de la volatilité du marché.

Résumer

La stratégie, en combinant le suivi des tendances et les indicateurs de dynamique dans l’analyse technique, construit un système de trading quantifié, logiquement complet et contrôlable par les risques. Bien qu’il existe des risques inhérents, la stratégie est susceptible de maintenir une performance stable dans différents environnements de marché grâce à une optimisation et une amélioration continues. La conception modulaire de la stratégie fournit également une bonne base pour les optimisations et les extensions ultérieures.

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":"BNB_USDT"}]
*/

//@version=5
strategy("SAJJAD JAMSHIDI Channel with Stochastic RSI Strategy", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)

// Gaussian Channel Inputs
lengthGC = input.int(20, "Gaussian Channel Length", minval=1)
multiplier = input.float(2.0, "Standard Deviation Multiplier", minval=0.1)

// Calculate Gaussian Channel
basis = ta.ema(close, lengthGC)
deviation = multiplier * ta.stdev(close, lengthGC)
upperChannel = basis + deviation
lowerChannel = basis - deviation

// Plot Gaussian Channel
plot(basis, "Basis", color=color.blue)
plot(upperChannel, "Upper Channel", color=color.green)
plot(lowerChannel, "Lower Channel", color=color.red)

// Stochastic RSI Inputs
rsiLength = input.int(14, "RSI Length", minval=1)
stochLength = input.int(14, "Stochastic Length", minval=1)
smoothK = input.int(3, "Smooth K", minval=1)
smoothD = input.int(3, "Smooth D", minval=1)

// Calculate RSI
rsi = ta.rsi(close, rsiLength)

// Calculate Stochastic RSI
lowestRSI = ta.lowest(rsi, stochLength)
highestRSI = ta.highest(rsi, stochLength)
stochRSI = (rsi - lowestRSI) / (highestRSI - lowestRSI) * 100
k = ta.sma(stochRSI, smoothK)
d = ta.sma(k, smoothD)

// Trading Conditions
stochUp = k > d
priceAboveUpper = ta.crossover(close, upperChannel)
priceBelowUpper = ta.crossunder(close, upperChannel)




strategy.entry("Long", strategy.long, when=priceAboveUpper and stochUp)
strategy.close("Long", when=priceBelowUpper)