Stratégie de trading intelligente RSI Super Trend à double période

RSI ATR
Date de création: 2024-11-25 11:18:30 Dernière modification: 2024-11-25 11:18:30
Copier: 0 Nombre de clics: 551
1
Suivre
1617
Abonnés

Stratégie de trading intelligente RSI Super Trend à double période

Aperçu

Il s’agit d’une stratégie de trading intelligente combinant un indicateur de tendance supérieure et un indicateur RSI à deux périodes de temps. La stratégie est synchronisée avec l’indicateur de tendance supérieure à deux périodes de temps de 5 minutes et 60 minutes, et la confirmation du signal de transaction est effectuée en combinaison avec l’indicateur RSI, tout en disposant d’un mécanisme de gestion de position sophistiqué.

Principe de stratégie

La stratégie est principalement basée sur la logique centrale suivante:

  1. L’indicateur de hypertrend est calculé sur des périodes de 5 minutes et 60 minutes respectivement, avec un cycle ATR de 10 et un facteur de 3.0.
  2. Sur les cycles de 5 minutes et 60 minutes, l’indicateur de tendance supérieure est polyvalent et déclenche un signal polyvalent lorsque le RSI est supérieur à 60.
  3. Sur les cycles de 5 minutes et 60 minutes, les indicateurs de tendance supérieure sont dans la direction de la courbe arrière et le RSI est inférieur à 40, déclenchant un signal de courbe arrière.
  4. Lorsque l’indicateur dépasse la tendance sur une période de 5 minutes, la position de placement correspond à la position de détention dans la direction correspondante.
  5. Il n’est pas permis de faire une pause lorsque l’indicateur de tendance supérieure à 60 minutes est à plusieurs têtes, ni de faire une pause lorsque l’indicateur de tendance supérieure à 60 minutes est à vide.
  6. Offre des fonctionnalités de stop, stop loss et stop mobile basées sur des points ou des pourcentages.
  7. Dans le mode journalier, les positions sont ouvertes uniquement pendant les heures de négociation indiquées.

Avantages stratégiques

  1. Synchronisation multi-périodes: réduire efficacement les faux signaux en combinant des indicateurs de tendance hyper pour différentes périodes.
  2. Confirmation RSI: l’utilisation de l’indicateur RSI pour la confirmation de tendance, améliore la fiabilité des transactions.
  3. Contrôle du vent: offre une large gamme de solutions de freinage, y compris les freins fixes, les freins en pourcentage et les freins mobiles.
  4. Flexibilité: les traders peuvent choisir le mode journalier ou le mode de détention et personnaliser le moment de la transaction.
  5. Suivi de la tendance: position automatiquement équilibrée par le changement de direction de l’indicateur de sur-tendance, pour saisir efficacement les points de retournement de tendance.

Risque stratégique

  1. Risque de choc du marché: les signaux de trading peuvent être déclenchés fréquemment dans un marché de choc horizontal, ce qui entraîne des transactions excessives.
  2. Risque de dérapage: dans le cas d’une forte volatilité du marché, un dérapage peut entraîner une perte ou un écart du prix de l’arrêt par rapport aux prévisions.
  3. Décalage du signal: En raison de l’utilisation d’un indicateur de 60 minutes, il peut y avoir un décalage du signal à un tournant de tendance.
  4. Risque de gestion des fonds: un mauvais réglage du stop loss peut entraîner des pertes excessives en une seule fois.

Orientation de l’optimisation de la stratégie

  1. Introduction de l’adaptation à la volatilité: le facteur de sur-tendance et le cycle ATR peuvent être ajustés en fonction de la dynamique de la volatilité du marché.
  2. Augmentation des indicateurs de trafic: analyse du trafic combinée, amélioration de la fiabilité du signal.
  3. Optimiser les seuils RSI: les données de retracement permettent de déterminer les seuils RSI d’achat et de vente optimaux.
  4. Amélioration de la gestion des positions: ajout d’un mécanisme de gestion des positions dynamique, permettant d’ajuster automatiquement le taux d’ouverture des positions en fonction du risque du marché.
  5. Augmentation du filtrage de la force de la tendance: introduire un indicateur de force de tendance pour filtrer les signaux de négociation dans un environnement de tendance faible.

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle et logiquement rigoureuse. La fiabilité des signaux de négociation est améliorée grâce à la synergie multi-cyclique et au mécanisme de confirmation RSI. Un mécanisme de contrôle des risques parfait et un paramètre flexible le rendent utile pour une application pratique.

Code source de la stratégie
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Author: Debabrata Saha
strategy("Supertrend Dual Timeframe with RSI", overlay=true)

// Input for System Mode (Positional/Intraday)
systemMode = input.string("Intraday", title="System Mode", options=["Intraday", "Positional"])

// Input for Intraday Session Times
startSession = input(timestamp("2023-10-01 09:15"), title="Intraday Start Session (Time From)")
endSession = input(timestamp("2023-10-01 15:30"), title="Intraday End Session (Time To)")

// Input for Target Settings (Off/Points/%)
targetMode = input.string("Off", title="Target Mode", options=["Off", "Points", "%"])
target1Value = input.float(10, title="Target 1 Value", step=0.1)
target2Value = input.float(20, title="Target 2 Value", step=0.1)

// Input for Stoploss Settings (Off/Points/%)
stoplossMode = input.string("Off", title="Stoploss Mode", options=["Off", "Points", "%"])
stoplossValue = input.float(10, title="Stoploss Value", step=0.1)

// Input for Trailing Stop Loss (Off/Points/%)
trailStoplossMode = input.string("Off", title="Trailing Stoploss Mode", options=["Off", "Points", "%"])
trailStoplossValue = input.float(5, title="Trailing Stoploss Value", step=0.1)

// Supertrend settings
atrPeriod = input(10, title="ATR Period")
factor = input(3.0, title="Supertrend Factor")

// Timeframe definitions
timeframe5min = "5"
timeframe60min = "60"

// Supertrend 5-min and 60-min (ta.supertrend returns two values: [Supertrend line, Buy/Sell direction])
[st5minLine, st5minDirection] = ta.supertrend(factor, atrPeriod)
[st60minLine, st60minDirection] = request.security(syminfo.tickerid, timeframe60min, ta.supertrend(factor, atrPeriod))

// RSI 5-min
rsi5min = ta.rsi(close, 14)

// Conditions for Buy and Sell signals
isSupertrendBuy = (st5minDirection == 1) and (st60minDirection == 1)
isSupertrendSell = (st5minDirection == -1) and (st60minDirection == -1)

buyCondition = isSupertrendBuy and (rsi5min > 60)
sellCondition = isSupertrendSell and (rsi5min < 40)

// Exit conditions
exitBuyCondition = st5minDirection == -1
exitSellCondition = st5minDirection == 1

// Intraday session check
inSession = true

// Strategy Logic (Trades only during the intraday session if systemMode is Intraday)
if (buyCondition and inSession)
    strategy.entry("Buy", strategy.long)

if (sellCondition and inSession)
    strategy.entry("Sell", strategy.short)

// Exit logic using strategy.close() to close the position at market price
if (exitBuyCondition)
    strategy.close("Buy")

if (exitSellCondition)
    strategy.close("Sell")

// No Sell when 60-min Supertrend is green and no Buy when 60-min Supertrend is red
if isSupertrendSell and (st60minDirection == 1)
    strategy.close("Sell")

if isSupertrendBuy and (st60minDirection == -1)
    strategy.close("Buy")

// Target Management
if (targetMode == "Points")
    strategy.exit("Target 1", "Buy", limit=close + target1Value)
    strategy.exit("Target 2", "Sell", limit=close - target2Value)
if (targetMode == "%")
    strategy.exit("Target 1", "Buy", limit=close * (1 + target1Value / 100))
    strategy.exit("Target 2", "Sell", limit=close * (1 - target2Value / 100))

// Stoploss Management
if (stoplossMode == "Points")
    strategy.exit("Stoploss", "Buy", stop=close - stoplossValue)
    strategy.exit("Stoploss", "Sell", stop=close + stoplossValue)
if (stoplossMode == "%")
    strategy.exit("Stoploss", "Buy", stop=close * (1 - stoplossValue / 100))
    strategy.exit("Stoploss", "Sell", stop=close * (1 + stoplossValue / 100))

// Trailing Stop Loss
if (trailStoplossMode == "Points")
    strategy.exit("Trail SL", "Buy", trail_price=na, trail_offset=trailStoplossValue)
    strategy.exit("Trail SL", "Sell", trail_price=na, trail_offset=trailStoplossValue)
if (trailStoplossMode == "%")
    strategy.exit("Trail SL", "Buy", trail_price=na, trail_offset=trailStoplossValue / 100 * close)
    strategy.exit("Trail SL", "Sell", trail_price=na, trail_offset=trailStoplossValue / 100 * close)