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

Système de négociation adaptatif basé sur les deux indicateurs RSI

Auteur:ChaoZhang est là., Date: 2024-12-13 à 11h57
Les étiquettes:Indice de résistanceSLTPMMATRRR

img

Résumé

Cette stratégie est un système de négociation adaptatif basé sur des indicateurs RSI (indice de force relative) doubles. Elle combine des indicateurs RSI de différentes périodes pour identifier les tendances du marché et les opportunités de négociation tout en optimisant les performances de négociation grâce à la gestion de l'argent et des mécanismes de contrôle des risques.

Principes de stratégie

La stratégie utilise un indicateur RSI de 7 périodes comme signal de trading principal, combiné à un RSI quotidien comme filtre de tendance. Une position longue est initiée lorsque le RSI à court terme dépasse 40 et le RSI quotidien est supérieur à 55. Si le prix tombe en dessous du prix d'entrée initial pendant une position, le système ajoute automatiquement à la position pour abaisser le coût moyen. Les positions sont fermées lorsque le RSI dépasse 60 et un stop-loss de 5% est mis en œuvre pour le contrôle des risques. La stratégie comprend également un module de gestion de l'argent qui calcule automatiquement les tailles de position en fonction du capital total et des ratios de risque prédéfinis.

Les avantages de la stratégie

  1. La combinaison de plusieurs périodes RSI améliore la fiabilité du signal
  2. Le mécanisme d'adaptation de la moyenne des positions réduit efficacement les coûts de détention
  3. Système global de gestion de trésorerie qui ajuste les positions en fonction de la préférence pour le risque
  4. La protection par stop-loss fixe contrôle strictement le risque par transaction
  5. Considère les coûts de négociation pour des conditions commerciales plus réalistes

Risques stratégiques

  1. Les indicateurs RSI peuvent générer de faux signaux sur les marchés volatils
  2. Le mécanisme de mise en moyenne des positions peut entraîner des pertes importantes en cas de tendance à la baisse continue
  3. Le taux de stop-loss fixe peut être trop prudent en période de forte volatilité
  4. Les coûts de négociation peuvent avoir une incidence significative sur les rendements lors de négociations fréquentes
  5. L'exécution de la stratégie nécessite une liquidité suffisante

Directions d'optimisation

  1. L'indicateur de volatilité doit être intégré (comme ATR) pour l'ajustement dynamique du stop-loss.
  2. Ajouter des filtres de force de tendance pour réduire les faux signaux sur les marchés en évolution
  3. Optimiser la logique de la moyenne de position avec des ajustements dynamiques basés sur la volatilité du marché
  4. Inclure les confirmations de l'indice de résistance à la température de l'air provenant de délais supplémentaires
  5. Développer un système de dimensionnement de position adaptatif

Résumé

Il s'agit d'un système de trading complet combinant analyse technique et gestion des risques. Il génère des signaux de trading grâce à la coordination RSI multi-période tout en contrôlant le risque grâce à la gestion de l'argent et aux mécanismes de stop-loss.


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



Relationnée

Plus de