Exponentielle gleitende Durchschnitt Candlestick Stop Trading Strategie

EMA RSI SUPPORT RESISTANCE BREAKOUT
Erstellungsdatum: 2025-02-25 11:11:35 zuletzt geändert: 2025-02-25 11:11:35
Kopie: 8 Klicks: 348
2
konzentrieren Sie sich auf
319
Anhänger

Exponentielle gleitende Durchschnitt Candlestick Stop Trading Strategie Exponentielle gleitende Durchschnitt Candlestick Stop Trading Strategie

Überblick

Die Index Moving Average Stopp-Trading-Strategie ist ein quantitatives Handelssystem, das auf der Ballastform und der Ballasttrend-Bestätigung basiert. Die Strategie identifiziert hauptsächlich die Gesamtmarkttrends durch die Identifizierung bestimmter Ballastformen (d.h. “Ballastst-Stopp” -Signale) als Einstiegspunkte, die in Kombination mit EMAs (Index Moving Average) die Gesamtmarkttrends bestätigen und mit dynamischen Unterstützungs- und Widerstandspunkten Marktdurchbrüche identifizieren. Die Strategie verwendet eine strenge Risikomanagement-Mechanik, einschließlich einer vorgegebenen Stop-Loss-Position und einer risikobasierten Stop-Rate-Strategie, um sicherzustellen, dass das Risiko für jeden Handel unter Kontrolle ist.

Strategieprinzip

Der Kern der Strategie ist die Identifizierung bestimmter Absturzformen in den Märkten, die in der Regel die Möglichkeit einer kurzfristigen Umkehr des Marktes darstellen. Die Mechanismen, wie die Strategie funktioniert, sind:

  1. Trendbeurteilung: Beurteilung der Markttrend durch Vergleich der relativen Position von EMA20 und EMA90. Wenn die EMA20 über der EMA90 liegt, wird als Aufwärtstrend beurteilt; wenn die EMA20 unter der EMA90 liegt, wird als Abwärtstrend beurteilt.

  2. Die Ankündigung des Absturzes wurde von der Polizei nicht bestätigt.

    • Aufwärtstrend-Stoppsignale: Die Unterschattenlinie muss mindestens 0,8 Mal so lang sein wie die Einheit, die Aufschattenlinie muss kleiner sein als die Einheit und der Schlusskurs muss höher sein als der Eröffnungskurs.
    • Ein Fall in einem Abwärtstrend erfordert ein Stoppsignal: Die Aufschwellenlinie ist mindestens 0,8 Mal so lang wie die Einheit, die Abschwellenlinie ist kleiner als die Einheit und der Schlusskurs ist niedriger als der Eröffnungskurs (Schattenlinie).
  3. Breakout-Tests: Identifizierung von Marktbrechungen durch Vergleich des aktuellen Schlusskurses mit einem Unterstützungs-/Widerstandsniveau (basierend auf einer 30-Zyklus-Begrenzung des niedrigsten/höchsten Kurses).

  4. Eintrittsbedingungen: Wenn ein Fall-Stopp-Signal auftritt, wenn sich der Markt in einem bestimmten Trend befindet und sich nicht in einem Bruchzustand befindet, wird die Strategie gemäß den vorgegebenen Risikoparametern eingegeben (Risiko von 2,5% pro Handel).

  5. Stop-Loss-Einstellung: Stop-Loss ist für Multi-Position 2.5% unter dem Einstiegspreis festgelegt; Stop-Loss ist für Leer-Position 2.5% über dem Einstiegspreis festgelegt.

  6. Stop-out-Bedingungen: Kombinationsbedingungen basierend auf Gewinnprozentsatz und Retour-Risiko-Ratio. Mehrköpfe erfordern mindestens 7% Gewinn und einen Retour-Risiko-Ratio von nicht weniger als 3; Leerköpfe erfordern mindestens 6% Gewinn und einen Retour-Risiko-Ratio von nicht weniger als 3.

Strategische Vorteile

  1. Klare Ein- und Ausstiegssignale: Bereitstellung eines klaren Handelssignals durch spezifische Fallformationen und bewegliche Gleichgewichtstrends, um die emotionale Auswirkung von subjektiven Urteilen zu reduzieren.

  2. Komplexe Trendbestätigungsmechanismen: Die Verwendung von EMA-Indikatoren für mehrere Zeiträume zur Bestätigung von Markttrends erhöht die Zuverlässigkeit von Handelssignalen.

  3. Identifizierung von dynamischen Unterstützungs- und Widerstandspunkten: Dynamische Unterstützungs- und Widerstandspunkte, die mit einem Rollfenster berechnet wurden, um die Strategie an verschiedene Marktphasen anzupassen.

  4. Strenges Risikomanagement: Vorausgesetzte Risikoparameter (Risiko von 2,5% pro Transaktion) und Stop-Off-Bedingungen basierend auf dem Risiko-Rendite-Verhältnis, um die Rationalität des Fondsmanagements zu gewährleisten.

  5. Differenzierte Standard für den Handel mit mehreren Fronten: Für den Handel mit mehreren Fronten und Fronten werden unterschiedliche Einstiegsbedingungen und Gewinnziele festgelegt, um den asymmetrischen Merkmalen des Marktes gerecht zu werden.

  6. Dynamische Positionsberechnung: Die richtige Positionsgröße basiert auf der automatischen Berechnung der Stop-Loss-Distanz, um die Risikokonsistenz für jeden Handel sicherzustellen.

Strategisches Risiko

  1. Verzögerung des Indikators: Die EMA als Verzögerungsindikator kann in schnelllebigen Märkten verzögerte Signale liefern, was zu einer schlechten Eintrittszeit führt.

  2. Falsche Durchbruchrisiken: Es kann zu Falschen Durchbruchern kommen, die zu falschen Signalen führen. Die Lösung ist die Einführung einer Transaktionsbestätigung oder die Erhöhung der Durchbruchbestätigungsphase.

  3. Sensitivitätsanpassungs-Herausforderung: Die Parameter des Stopp-Signals (z. B. das Verhältnis von Schattenlinie zu Einheit) müssen an unterschiedliche Märkte und Perioden angepasst werden. Eine zu hohe Sensitivität kann zu übermäßigen Transaktionen führen, während eine zu hohe Strenge zu verpassten Chancen führt.

  4. Trendwechsel-Risiko: Während der Trendwechsel kann die Strategie zu einer Reihe von Verlustgeschäften führen. Die Lösung besteht darin, den Trendstärkenfilter zu erhöhen oder die Handelsfrequenz zu reduzieren, wenn der Trend unklar ist.

  5. Unpassbarkeit der festen Stop-Loss-Distanz: Die Verwendung des gleichen Stop-Loss-Prozentsatzes für alle Transaktionen (,5%) kann sich nicht an die unterschiedlichen Marktfluktuationen anpassen. Es kann in Betracht gezogen werden, eine dynamische Stop-Loss-Distanz zu verwenden, die auf der Volatilität basiert.

  6. Einschränkung der RSI-Filterbedingungen: Die Verwendung der RSI-Filterung nur für leere Geschäfte kann zu einer ungleichmäßigen Handelsfrequenz führen. Es kann in Betracht gezogen werden, eine ähnliche Filterung für mehrköpfige Geschäfte einzuführen oder die aktuellen RSI-Parameter zu optimieren.

Richtung der Strategieoptimierung

  1. Die Einführung von Volatilitätsindikatoren (z. B. ATR) zur dynamischen Anpassung der Shadow Line-Ratio-Anforderungen und der Stop-Loss-Distanz des Stopp-Signals ermöglicht eine bessere Anpassung der Strategie an unterschiedliche Marktbedingungen.

  2. Bestätigung von mehreren Zeitrahmen: Bestätigung von Trends zur Wiedereinführung von höheren Zeitrahmen (z. B. 1-Stunden-Diagramm), um die Zuverlässigkeit von Handelssignalen zu verbessern und die Auswirkungen von Falschsignalen zu reduzieren.

  3. Eintrittszeitoptimierung: Erhöhung der Erfolgsrate durch das Hinzufügen von zusätzlichen Filterbedingungen (z. B. Trendstärken, Bestätigung der Transaktionsmenge).

  4. Teilstop-Mechanismen: Einführung von Phasenstop-Mechanismen, bei denen nach Erreichen eines bestimmten Gewinns ein Stop-Loss auf den Kostenpreis verschoben oder ein Teil des Gewinns gesperrt wird, um Risiko und Rendite besser auszugleichen.

  5. Erweiterung des Rücklaufzyklus: Eine umfassendere Rücklaufphase unter verschiedenen Marktzyklen und -bedingungen, um die Stabilität und Anpassungsfähigkeit der Strategie zu überprüfen.

  6. Optimierung durch maschinelles Lernen: Automatische Optimierung von Strategieparametern mit Hilfe von maschinellen Lernmethoden, um die optimale Kombination von Parametern für einen bestimmten Markt zu finden.

  7. Frequenz-Kontrolle: Einführung von Handelsbeschränkungen oder Abkühlungsfristen, um Überhändlungen unter ungünstigen Marktbedingungen zu vermeiden.

Zusammenfassen

Die Index-Moving-Equilibrium-Stopp-Trading-Strategie ist ein quantitatives Handelssystem, das technische Analyse und Risikomanagement kombiniert, um Handelssignale zu erzeugen, indem spezifische Stagnationen identifiziert und Trendbestätigung kombiniert werden. Die Hauptvorteile der Strategie liegen in klaren Handelsregeln und strengen Risikokontrollen, die die Handelsentscheidung systematisierter und disziplinierter machen. Wie bei jeder technischen Analyse-Strategie hat sie jedoch auch Herausforderungen wie die Rückständigkeit der Indikatoren und die Anpassung an Marktveränderungen.

Die Strategie hat das Potenzial, eine stabilere Performance in verschiedenen Marktumgebungen zu erzielen, indem sie Verbesserungen in Richtung der Anpassung der Volatilitätsparameter, der Bestätigung und Optimierung der Eintrittszeitpunkte in mehreren Zeitrahmen einführt. Insbesondere die Anwendung von Methoden des maschinellen Lernens für die Optimierung von Parametern kann die Anpassung und die Gesamtleistung der Strategie erheblich verbessern.

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

//@version=6
strategy("Advanced Candle Stop Strategy Backtest - Tuned v9 - Max Trades", overlay=true)

// --- EMA Variables ---
ema5_length = 5
ema20_length = 20
ema90_length = 90

ema5 = ta.ema(close, ema5_length)
ema20 = ta.ema(close, ema20_length)
ema90 = ta.ema(close, ema90_length)

// --- Support, Resistance, and Volume Calculation ---
lookback_support_resistance = 30
support_level = ta.lowest(low, lookback_support_resistance)
resistance_level = ta.highest(high, lookback_support_resistance)

// --- Volume Condition for Short (Removed) ---
avg_volume_lookback = 20
avg_volume = ta.sma(volume, avg_volume_lookback)

// --- RSI Condition for Short (Removed) ---
rsi_length = 14
rsi_overbought = 70
rsi = ta.rsi(close, rsi_length)


// --- Candle Stop Function ---
is_candle_stop(trend) =>
    body = math.abs(close - open)
    upper_shadow = high - math.max(open, close)
    lower_shadow = math.min(open, close) - low

    if trend == "up"
        lower_shadow >= 0.8 * body and upper_shadow < body and close > open // Shadow ratio reduced to 0.8 for longs
    else if trend == "down"
        upper_shadow >= 0.8 * body and lower_shadow < body and close < open // Shadow ratio reduced to 0.8 for shorts - EMA5 and Volume conditions removed
    else
        false

// --- Trend Determination (only 15m, no 1H confirmation) ---
trend = ema20 > ema90 ? "up" : ema20 < ema90 ? "down" : "neutral"
final_trend = trend  // حذف تأیید با تایم‌فریم 1H

// --- Breakout Detection ---
var bool breakout_detected = false
if final_trend == "up" and close > resistance_level
    breakout_detected := true
    alert("شکست صعودی تشخیص داده شد! منتظر پولبک 🚀", alert.freq_once_per_bar)
else if final_trend == "down" and close < support_level
    breakout_detected := true
    alert("شکست نزولی تشخیص داده شد! منتظر پولبک 📉", alert.freq_once_per_bar)

// --- Entry and Exit Conditions ---
var float position = 0.0
var float entry_price = 0.0
var float stop_loss_price = na
var bool take_profit_long = false  // Declare take_profit_long
var bool stop_loss_hit_long = false // Declare stop_loss_hit_long
var bool take_profit_short = false // Declare take_profit_short
var bool stop_loss_hit_short = false // Declare stop_loss_hit_short
risk_per_trade_percent = 2.5  // افزایش ریسک به 2.5٪ برای موقعیت‌های بیشتر


if not breakout_detected
    if position == 0 and is_candle_stop(final_trend)
        risk_amount_usd = strategy.initial_capital * (risk_per_trade_percent / 100)
        if final_trend == "up"
            stop_loss_price := close * 0.975 // Stop loss at 2.5% below entry for longs
            if (close - stop_loss_price) != 0
                position_size_usd = risk_amount_usd / (close - stop_loss_price)
                amount = position_size_usd / close
                strategy.entry("Long", strategy.long, qty=amount)
                position := amount
                entry_price := close
        else if final_trend == "down"
            stop_loss_price := close * 1.025 // Stop loss at 2.5% above entry for shorts
            if (stop_loss_price - close) != 0
                position_size_usd = risk_amount_usd / (stop_loss_price - close)
                amount = position_size_usd / close
                if rsi >= rsi_overbought // RSI condition for short entry - No Change, still using RSI but not enforcing it for now - Consider removing RSI condition as well for max trades
                    strategy.entry("Short", strategy.short, qty=amount)
                    position := amount
                    entry_price := close

if position > 0
    profit_percent_long = (close - entry_price) / entry_price * 100
    profit_percent_short = (entry_price - close) / entry_price * 100
    loss_percent_long = (entry_price - close) / entry_price * 100
    loss_percent_short = (close - entry_price) / entry_price * 100

    risk_reward_long = loss_percent_long != 0 ? profit_percent_long / loss_percent_long : (profit_percent_long != 0 ? 99999 : 0)
    risk_reward_short = loss_percent_short != 0 ? profit_percent_short / loss_percent_short : (profit_percent_short != 0 ? 99999 : 0)


    take_profit_long := profit_percent_long >= 7 and risk_reward_long >= 3
    stop_loss_hit_long := close <= stop_loss_price
    take_profit_short := profit_percent_short >= 6 and risk_reward_short >= 3 // Reduced Take Profit for Shorts to 6% - No Change
    stop_loss_hit_short := close >= stop_loss_price

    if (final_trend == "up" and (take_profit_long or stop_loss_hit_long)) or (final_trend == "down" and (take_profit_short or stop_loss_hit_short))
        if final_trend == "up"
            strategy.close("Long")
        else
            strategy.close("Short")
        position := 0
        entry_price := 0.0
        breakout_detected := false

// --- Plotting EMAs and Support/Resistance Levels ---
plot(ema5, color=color.blue, title="EMA5")
plot(ema20, color=color.red, title="EMA20")
plot(ema90, color=color.green, title="EMA90")
plot(resistance_level, color=color.orange, style=plot.style_line, title="Resistance")
plot(support_level, color=color.orange, style=plot.style_line, title="Support")