Les ressources ont été chargées... Je charge...

Stratégie de négociation DEV par déviation type basée sur l'indice de résistance relative RSI et la moyenne mobile simple SMA

Auteur:ChaoZhang est là., Date: 2024-05-28 10:57:06 Je vous en prie.
Les étiquettes:Indice de résistanceSMADéfinition de la valeur

img

Résumé

Cette stratégie est basée sur l'indice de force relative (RSI) et l'écart type (DEV) de la volatilité des prix. Elle détermine les points d'entrée en comparant le prix avec les bandes supérieures et inférieures, tout en utilisant le RSI comme indicateur de filtrage auxiliaire. Elle génère des signaux d'entrée longs lorsque le prix dépasse la bande inférieure et que le RSI est en dessous du seuil de survente, et des signaux d'entrée courts lorsque le prix dépasse la bande supérieure et que le RSI est au-dessus du seuil de survente.

Principe de stratégie

  1. Calculer la moyenne mobile simple (SMA) et l'écart type (DEV) du prix au cours des dernières périodes longueur.
  2. Construire un canal de volatilité avec SMA comme ligne centrale, SMA + seuilEntréeDEV comme bande supérieure et seuil SMAEntréeDEV comme la bande inférieure.
  3. Calculer simultanément l'indicateur RSI du prix de clôture au cours des dernières périodes rsiLength.
  4. Lorsque le prix dépasse la bande inférieure et que le RSI est inférieur au seuil de survente rsiOversold, générez un signal d'entrée long.
  5. Lorsque le prix dépasse la bande supérieure et que le RSI dépasse le seuil de surachat rsiOverbought, générer un signal d'entrée court.
  6. Construire un autre canal de sortie plus étroit avec SMA comme ligne centrale, SMA + seuilExitDEV comme bande supérieure et seuil SMAExitDEV comme la bande inférieure.
  7. Lorsqu'une position longue est détenue, si le prix dépasse la bande inférieure de sortie ou si le RSI dépasse le seuil de surachat, la position longue est fermée.
  8. Lorsqu'une position courte est détenue, si le prix dépasse la bande supérieure de sortie ou si le RSI tombe en dessous du seuil de survente, fermer la position courte.

Analyse des avantages

  1. En utilisant à la fois le comportement des prix et les indicateurs de dynamique pour le jugement auxiliaire, il peut filtrer efficacement les faux signaux.
  2. En ajustant dynamiquement la largeur du canal en fonction de la volatilité, la stratégie peut s'adapter aux différents états du marché.
  3. En établissant deux ensembles de canaux, il peut réduire les pertes au stade précoce de l'inversion des prix et contrôler les retraits, tout en étant toujours en mesure de conserver des positions pour réaliser un profit après la formation d'une tendance.
  4. La logique du code et les paramètres sont clairs et faciles à comprendre et à optimiser.

Analyse des risques

  1. Lorsque le marché continue de suivre une tendance unilatérale, la stratégie peut réduire les pertes trop tôt et manquer les profits de tendance.
  2. Les paramètres définis ont une incidence significative sur les performances de la stratégie et l'optimisation des paramètres doit être effectuée séparément pour différentes variétés et délais.
  3. Si une tendance à long terme s'inverse soudainement, la stratégie peut connaître un retrait plus important.
  4. Si la volatilité de l'actif sous-jacent change de façon drastique, les paramètres fixes peuvent devenir invalides.

Direction de l'optimisation

  1. Essayez d'introduire des indicateurs de jugement de tendance, tels que des croisements de moyennes mobiles à court terme, ADX, etc., pour distinguer les marchés tendance et oscillation et utiliser différents paramètres.
  2. Considérez l'utilisation d'indicateurs de volatilité plus adaptatifs, tels que ATR, pour ajuster dynamiquement la largeur du canal de volatilité.
  3. Avant d'ouvrir une position, effectuez un jugement de tendance sur le mouvement des prix afin de détecter s'il s'agit d'une tendance claire afin d'éviter les transactions contre-tendance.
  4. Utilisez des algorithmes génétiques, la recherche par grille et d'autres méthodes pour optimiser différentes combinaisons de paramètres et trouver les meilleurs paramètres.
  5. Considérez l'utilisation de paramètres différents pour les positions longues et courtes afin de contrôler l'exposition au risque.

Résumé

Cette stratégie combine les canaux de volatilité et l'indice de force relative pour prendre des décisions d'entrée et de sortie basées sur les fluctuations des prix tout en se référant à l'indicateur RSI. Elle peut mieux capturer les tendances à court terme et réduire les pertes et réaliser des bénéfices en temps opportun. Cependant, la performance de la stratégie est relativement sensible aux paramètres et doit être optimisée pour différents environnements de marché et actifs sous-jacents.


/*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")




Relationnée

Plus de