Mehrstufige dynamische Swing-Trading-Strategie mit Durchschnittskosten basierend auf dem Relative-Stärke-Index und der Average True Range

RSI ATR DCA TP
Erstellungsdatum: 2025-02-20 17:25:04 zuletzt geändert: 2025-02-27 17:22:25
Kopie: 0 Klicks: 369
2
konzentrieren Sie sich auf
319
Anhänger

Mehrstufige dynamische Swing-Trading-Strategie mit Durchschnittskosten basierend auf dem Relative-Stärke-Index und der Average True Range Mehrstufige dynamische Swing-Trading-Strategie mit Durchschnittskosten basierend auf dem Relative-Stärke-Index und der Average True Range

Überblick

Die Strategie ist ein mehrschichtiges dynamisches Kosten-Kosten-Verhältnis (DCA) -Handelssystem, das einen relativ starken Index (RSI) und eine durchschnittliche reale Wellenlänge (ATR) kombiniert. Es wird hauptsächlich durch die Identifizierung von Überverkaufszuständen in den Märkten durchgeführt.

Strategieprinzip

Die Strategie funktioniert auf einer 4-Stunden- oder Tageszeiten-Ebene, wobei die Kernlogik folgende Aspekte umfasst:

  1. Eintrittssignale basieren auf Überverkaufsurteilen mit RSI unter 30 und erlauben bis zu vier Lagerstücks-Besetzungen
  2. Der Betrag für jede Position basiert auf einer Gesamtrisikomarge von 200 US-Dollar und der Größe der Positionen, berechnet auf der Grundlage von 2x ATR-Dynamik
  3. Lagerhaltung mit dynamischen Durchschnittskostenverfolgung und Berechnung des Durchschnittspreises nach mehreren Lagerstätten in Echtzeit
  4. Die Stop-Off-Einstellung ist 3x ATR über dem Durchschnittspreis und passt sich der Marktvolatilität an.
  5. Durch die Markierung Linie zeigen Sie den Mittelwert und die Stop-Location in Echtzeit, um eine visuelle Verfolgung zu erleichtern

Strategische Vorteile

  1. Genaue Risikokontrolle - Genaue Kontrolle des Risikos eines einzelnen Handels durch die Voreinstellung des Risikos und die dynamische Anpassung der ATR
  2. Flexibilität beim Lagerbau - Schrumpfbau kann Kosten senken und Chancen nutzen
  3. Intelligente Stop-Off - ATR-basierte dynamische Stop-Off, die sowohl Gewinne garantiert als auch auf Marktschwankungen eingestellt ist
  4. Sehr gut sichtbar - Echtzeit-Anzeige von Durchschnitts- und Stopp-Linien bietet intuitive Handelsreferenzen
  5. Anpassungsfähigkeit - Strategieparameter können flexibel an unterschiedliche Marktmerkmale angepasst werden

Strategisches Risiko

  1. Kontinuierliche Überverkaufsrisiken - ein anhaltender Markteinbruch könnte zu einer Überlagerung führen Lösung: Strenge Einschränkungen für die maximale Anzahl von Lagerstätten, erforderlichenfalls mit Stop-Loss
  2. Stop-Loss-Risiken - zu hohe Stop-Loss-Multiplikatoren können zu verpassten Gewinnchancen führen Lösung: ATR-Multiplikatoren an die Dynamik der Marktbedingungen anpassen
  3. Risiken bei der Vermögensverwaltung - der Bau von Lagerstätten in Chargen kann zu viel Geld in Anspruch nehmen Lösung: Risikogrenzen und Größenordnungen

Richtung der Strategieoptimierung

  1. Optimierung von Einstiegssignalen
  • Zunahme der Trendmessgrößen und Vermeidung von vorzeitigen Positionen bei starken Abwärtstrends
  • Kombination von Umsatzindikatoren zur Verbesserung der Zuverlässigkeit von Überverkaufsurteilen
  1. Verbesserte Bremsvorrichtungen
  • Ein Trailing-Stop-Mechanismus zur besseren Gewinnbindung
  • Erhöhung der Flexibilität bei der Erzielung von Gewinnen
  1. Erhöhung der Risikokontrollen
  • Hinzufügen einer Gesamtrücknahmekontrolle
  • Optimierte Algorithmen für die Verteilung von Geldern

Zusammenfassen

Die Strategie kombiniert die RSI- und ATR-Indikatoren, um ein Handelssystem mit Risikokontrolle und Ertragsstabilität zu erreichen. Die Bündelung der Lagerhaltung bietet die Möglichkeit der Kostenoptimierung, während die dynamische Stopp-Design eine vernünftige Ertragsentwicklung gewährleistet. Obwohl einige potenzielle Risiken bestehen, wird die Gesamtperformance der Strategie durch die Implementierung vernünftiger Parameter und der Optimierungsrichtung weiter verbessert.

Strategiequellcode
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("DCA-Based Swing Strategy (Risk $200) with Signals", overlay=true)

// === Main Indicators ===
// RSI for identifying oversold conditions
rsi = ta.rsi(close, 14)

// ATR for volatility estimation
atr = ta.atr(14)

// === Strategy Parameters ===
// Risk management
riskPerTrade = 200                       // Total risk ($200)
atrRisk = 2 * atr                        // Risk in dollars per buy (2 ATR)
positionSize = riskPerTrade / atrRisk    // Position size (shares)

// DCA Parameters
maxEntries = 4                           // Maximum of 4 buys
takeProfitATR = 3                        // Take profit: 3 ATR

// === Position Management ===
var float avgEntryPrice = na             // Average entry price
var int entryCount = 0                   // Number of buys
var line takeProfitLine = na             // Take profit line
var line avgPriceLine = na               // Average entry price line

// === Buy and Sell Conditions ===
buyCondition = rsi < 30 and entryCount < maxEntries  // Buy when oversold
if (buyCondition)
    strategy.entry("DCA Buy", strategy.long, qty=positionSize)
    
    // Update the average entry price
    avgEntryPrice := na(avgEntryPrice) ? close : (avgEntryPrice * entryCount + close) / (entryCount + 1)
    entryCount += 1

    // Display "BUY" signal on the chart
    label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)

    // Update lines for average entry price and take profit
    if (not na(takeProfitLine))
        line.delete(takeProfitLine)
    if (not na(avgPriceLine))
        line.delete(avgPriceLine)
    takeProfitPrice = avgEntryPrice + takeProfitATR * atr


// Sell condition: Take profit = 3 ATR from average entry price
takeProfitPrice = avgEntryPrice + takeProfitATR * atr
if (close >= takeProfitPrice and entryCount > 0)
    strategy.close("DCA Buy")
    
    // Reset parameters after closing
    avgEntryPrice := na
    entryCount := 0

    // Remove lines after selling
    if (not na(takeProfitLine))
        line.delete(takeProfitLine)
    if (not na(avgPriceLine))
        line.delete(avgPriceLine)