Système de swing trading adaptatif basé sur deux indicateurs RSI

RSI SL TP MM ATR RR
Date de création: 2024-12-13 11:57:17 Dernière modification: 2024-12-13 11:57:17
Copier: 4 Nombre de clics: 448
1
Suivre
1617
Abonnés

Système de swing trading adaptatif basé sur deux indicateurs RSI

Aperçu

La stratégie est un système de trading auto-adaptatif basé sur le double RSI (indice de relative faiblesse). Il combine des indicateurs RSI de différentes périodes de temps pour identifier les tendances du marché et les opportunités de négociation, et pour optimiser la performance des transactions grâce à des mécanismes de gestion des fonds et de contrôle des risques. Le cœur de la stratégie est d’améliorer la rentabilité tout en garantissant la sécurité des transactions grâce à une combinaison synchrone de RSI à plusieurs périodes.

Principe de stratégie

La stratégie utilise l’indicateur RSI à 7 cycles comme signal de trading principal, en combinaison avec le RSI à jour comme filtre de tendance. Lorsque le RSI à court terme franchit le seuil de 40 et que le RSI à jour est supérieur à 55, le système émet plusieurs signaux. Si le cours du portefeuille est inférieur au prix de la position initiale, le système augmente automatiquement la position pour réduire le coût moyen.

Avantages stratégiques

  1. La combinaison du RSI à cycles multiples améliore la fiabilité du signal
  2. Un mécanisme d’acquisition de positions adapté pour réduire efficacement les coûts de détention
  3. Système de gestion de fonds parfait, qui ajuste automatiquement les positions en fonction des préférences en matière de risque
  4. Protection contre les pertes fixes et contrôle strict du risque de chaque transaction
  5. Le coût de transaction est pris en compte, ce qui est plus conforme à l’environnement de transaction réel.

Risque stratégique

  1. L’indicateur RSI peut produire de faux signaux dans des marchés très volatils
  2. Les mécanismes d’hypothèques peuvent entraîner des pertes importantes dans une situation de baisse continue
  3. Le stop loss à pourcentage fixe peut être trop conservateur en période de forte volatilité
  4. Les coûts de transaction peuvent avoir un impact significatif sur les bénéfices en cas de transactions fréquentes
  5. La mise en œuvre d’une stratégie de soutien à la liquidité adéquate

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de volatilité (comme ATR) pour modifier dynamiquement la position de stop loss
  2. Augmentation des filtres d’intensité de tendance pour réduire les fausses signaux dans les marchés en crise
  3. Optimisation de la logique de prise de position et adaptation dynamique à la volatilité du marché
  4. Ajouter un signal de confirmation RSI pour plus de périodes
  5. Développer un système de gestion de position adapté

Résumer

Il s’agit d’un système de trading complet qui combine l’analyse technique et la gestion des risques. Il fournit des signaux de trading grâce à la synergie du RSI pluricyclique et contrôle les risques grâce à la gestion des fonds et au mécanisme de stop-loss. La stratégie est adaptée pour fonctionner dans des marchés où la tendance est évidente, mais nécessite une optimisation des paramètres en fonction de la situation réelle du marché.

Code source de la stratégie
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Dual RSI with Rebuy Logic + Capital, Commission, and Stop Loss", overlay=true)

// Parameter
rsi_length = input.int(7, title="RSI Length")
daily_rsi_length = input.int(7, title="Daily RSI Length")
capital = input.float(10000, title="Initial Capital", minval=0)  // Kapital
risk_per_trade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=1.0)  // Risikogröße in Prozent
commission = input.float(0.1, title="Commission (%)", minval=0, maxval=100)  // Kommission in Prozent
stop_loss_pct = input.float(5, title="Stop Loss (%)", minval=0.1, maxval=100)  // Stop-Loss in Prozent

// Ordergröße berechnen
risk_amount = capital * risk_per_trade
order_size = risk_amount / close  // Größe der Order basierend auf Risikogröße und Preis

// Daily RSI
day_rsi = request.security(syminfo.tickerid, "D", ta.rsi(close, daily_rsi_length), lookahead=barmerge.lookahead_on)

// RSI auf aktuellem Timeframe
rsi = ta.rsi(close, rsi_length)

// Kauf- und Verkaufsbedingungen
buy_condition = rsi[1] < 40 and rsi > rsi[1] and day_rsi > 55
sell_condition = rsi[1] > 60 and rsi < rsi[1]

// Variablen, um den Preis des ersten Kaufs zu speichern
var float first_buy_price = na
var bool is_position_open = false

// Kauf-Logik
if buy_condition
    if not is_position_open
        // Initiales Kaufsignal
        strategy.entry("Buy", strategy.long, qty=1)
        first_buy_price := close
        is_position_open := true
    else if close < first_buy_price
        // Rebuy-Signal, nur wenn Preis niedriger als erster Kaufpreis
        strategy.entry("Rebuy", strategy.long, qty=1)

// Verkaufs-Logik
if sell_condition and is_position_open
    strategy.close("Buy")
    strategy.close("Rebuy")
    first_buy_price := na  // Zurücksetzen des Kaufpreises
    is_position_open := false

// Stop-Loss-Bedingung
if is_position_open
    // Stop-Loss-Preis berechnen (5% unter dem Einstiegspreis)
    stop_loss_price = first_buy_price * (1 - stop_loss_pct / 100)
    
    // Stop-Loss für "Buy" und "Rebuy" festlegen
    strategy.exit("Stop Loss Buy", from_entry="Buy", stop=stop_loss_price)
    strategy.exit("Stop Loss Rebuy", from_entry="Rebuy", stop=stop_loss_price)

// Performance-Metriken berechnen (mit Kommission)
gross_profit = strategy.netprofit / capital * 100
commission_cost = commission / 100 * strategy.closedtrades
net_profit = gross_profit - commission_cost

// Debug-Plots
plot(first_buy_price, title="First Buy Price", color=color.blue, linewidth=1)
plotchar(buy_condition, title="Buy Condition", char='B', location=location.abovebar, color=color.green)
plotchar(sell_condition, title="Sell Condition", char='S', location=location.belowbar, color=color.red)

// Debugging für Performance