Stratégie de trading basée sur l'écart type de volatilité DEV basé sur l'indice de force relative RSI et la moyenne mobile glissante SMA

RSI SMA DEV
Date de création: 2024-05-28 10:57:06 Dernière modification: 2024-05-28 10:57:06
Copier: 1 Nombre de clics: 626
1
Suivre
1617
Abonnés

Stratégie de trading basée sur l’écart type de volatilité DEV basé sur l’indice de force relative RSI et la moyenne mobile glissante SMA

Aperçu

Cette stratégie de Pine Script est basée sur un indice RSI relativement faible et une volatilité standard différentielle DEV des prix, pour juger du point d’entrée en comparant le prix avec la trajectoire ascendante et descendante, et en utilisant le RSI comme indicateur de filtrage auxiliaire, pour générer un signal d’ouverture de position lorsque le prix touche l’orbite ascendante et que le RSI atteint la zone de survente de l’offre, et pour niveler la position lorsque le prix sort de la trajectoire d’inversion ou lorsque le RSI atteint la zone de survente de l’offre. La stratégie est capable de s’adapter dynamiquement aux fluctuations du marché, de conserver des positions de profit lorsque les fluctuations sont élevées et de s’arrêter lorsque les fluctuations sont faibles.

Principe de stratégie

  1. Le prix est calculé en fonction de la moyenne mobile (SMA) et de l’écart standard (DEV) sur les six derniers périodes.
  2. Avec SMA comme axe central, SMA+thresholdEntry*DEV est une entrée de seuil*Le DEV est en train de construire un canal de fluctuation.
  3. L’indicateur RSI de la clôture de chaque période de rsiLength est calculé en même temps.
  4. Un signal d’ouverture de position est généré lorsque le prix dépasse la trajectoire descendante vers le haut et que le RSI est inférieur au seuil de survente rsi.
  5. Un signal d’ouverture de position est généré lorsque le prix a franchi une trajectoire descendante et que le RSI est supérieur au seuil de survente rsiOverbought.
  6. Avec SMA comme axe central, SMA + thresholdExit*DEV est sur la voie, SMA-thresholdExit*Le DEV est descendu de la voie ferrée pour construire une autre sortie plus étroite.
  7. Lors d’une position en survente, le cours se stabilise si le cours s’écarte de la trajectoire descendante ou si le RSI est supérieur au seuil de survente.
  8. Lors de la tenue d’une position blanche, la position blanche est utilisée si le prix se déclenche à la hausse ou si le RSI est inférieur au seuil de dépassement.

Analyse des avantages

  1. Le prix de l’action et les indicateurs de dynamique peuvent également être utilisés pour filtrer efficacement les faux signaux.
  2. L’adaptation de la largeur des canaux à la dynamique des fluctuations des taux permet à la stratégie de s’adapter aux différentes conditions du marché.
  3. La configuration de deux canaux permet d’arrêter les pertes au début d’une inversion de prix, de contrôler les retraits et de conserver les bénéfices de la position après la formation d’une tendance.
  4. La logique du code et les paramètres sont clairs, faciles à comprendre et à optimiser.

Analyse des risques

  1. La stratégie peut s’arrêter prématurément et manquer des gains de tendance lorsque le marché continue à fonctionner de manière unilatérale.
  2. Les paramètres ont une grande influence sur les performances de la stratégie et doivent être optimisés pour différentes variétés et périodes.
  3. La stratégie a plus d’avantage sur les marchés tendance que sur les marchés tendance. Si la tendance à long terme est soudainement inversée, la stratégie peut entraîner un retrait plus important.
  4. Les paramètres fixes peuvent être annulés si la volatilité des actifs de l’indicateur change radicalement.

Direction d’optimisation

  1. On peut essayer d’introduire des indicateurs de jugement de tendance, tels que le croisement de la moyenne à long terme, l’ADX, etc., pour distinguer les marchés tendance et oscillant, en utilisant différents paramètres.
  2. Considérez l’utilisation d’indicateurs de fluctuation plus adaptatifs, tels que l’ATR, pour ajuster dynamiquement la largeur du canal de fluctuation.
  3. Avant d’ouvrir une position, il faut évaluer la tendance des prix et vérifier s’ils sont dans une tendance claire, afin d’éviter de négocier à contre-courant.
  4. Les différentes combinaisons de paramètres peuvent être optimisées par des méthodes telles que les algorithmes génétiques et la recherche de grille pour trouver le meilleur réglage de paramètres.
  5. Envisager d’utiliser des paramètres différents pour les positions multiples et vides, afin de contrôler les marges de risque.

Résumer

La stratégie, combinant le canal de volatilité et un indice relativement faible, permet de mieux saisir les tendances étape par étape, les arrêts de pertes et les gains en temps opportun. Cependant, la performance de la stratégie est sensible aux paramètres, elle doit être optimisée pour différents environnements de marché et actifs de référence.

Code source de la stratégie
/*backtest
start: 2024-05-20 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"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/
// © tmalvao

//@version=5
strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100)

// Parâmetros
length = input.int(20, title="Período do Desvio Padrão")
thresholdEntry = input.float(1.5, title="Limite de Entrada")
thresholdExit = input.float(0.5, title="Limite de Saída")
rsiLength = input.int(14, title="Período do RSI")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")

// Cálculo do Desvio Padrão
price = close
stdDev = ta.stdev(price, length)

// Média Móvel Simples
sma = ta.sma(price, length)

// Limites baseados no Desvio Padrão
upperLimit = sma + thresholdEntry * stdDev
lowerLimit = sma - thresholdEntry * stdDev
exitUpperLimit = sma + thresholdExit * stdDev
exitLowerLimit = sma - thresholdExit * stdDev

// Cálculo do RSI
rsi = ta.rsi(price, rsiLength)

// Condições de Entrada com RSI
longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold
shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought

// Condições de Saída com RSI
exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought
exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold

// Plotar Linhas
plot(upperLimit, color=color.red, title="Limite Superior")
plot(lowerLimit, color=color.green, title="Limite Inferior")
plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior")
plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior")
plot(sma, color=color.gray, title="SMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)

// Estratégia de Trade
if (longCondition)
    strategy.entry("Long", strategy.long)

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

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

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