Dynamisches Support-Price-Action-Handelssystem

SR PA
Erstellungsdatum: 2024-12-04 15:19:00 zuletzt geändert: 2024-12-04 15:19:00
Kopie: 0 Klicks: 422
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamisches Support-Price-Action-Handelssystem

Überblick

Die Strategie ist ein Handelssystem, das auf Preisbewegungen und dynamischen Unterstützungs- und Widerstandsposten basiert und den Handel durch die Identifizierung von wichtigen Preisformeln in der Nähe von Unterstützungs- und Widerstandspositionen durchführt. Das System verwendet eine 16-Zyklen-Dynamische Unterstützungs- und Widerstandsberechnungsmethode und kombiniert die vier klassischen Reversal-Graphiken - die Rabbit- und Sternenlinie sowie die Kreuz- und Nadel-Graphiken, um potenzielle Marktumkehrchancen zu erfassen. Die Strategie verwendet einen festen Prozentsatz an Stop-Loss-Stopps, um das Risiko zu verwalten, und verwendet Sensitivitätsparameter, um die Strenge des Einstiegssignals zu steuern.

Strategieprinzip

Der Kern der Strategie besteht darin, durch die dynamische Berechnung von Unterstützungs- und Widerstandspunkten eine obere und untere Grenze für die Preisbewegung zu bilden. Wenn die Preise sich diesen kritischen Ebenen nähern, sucht das System nach bestimmten Graphikformationen als Umkehrsignale. Die Einstiegsbedingungen erfordern, dass die Preise in einem Bereich von 1,8% der Unterstützungs- und Widerstandspunkte (default Sensitivität) umgekehrt werden.

Strategische Vorteile

  1. Die Strategie kombiniert die beiden zuverlässigsten Elemente in der technischen Analyse: Preisform und Unterstützungswiderstand, was die Zuverlässigkeit der Handelssignale erhöht.
  2. Unterstützungswiderstandspunkte mit dynamischer Berechnung, die sich an veränderte Marktbedingungen anpassen können
  3. Strenge Mittelmanagement- und Risikokontrollmaßnahmen zur Verhinderung massiver Rücknahmen
  4. Klare Strategie-Logik mit flexiblen Parametern, die sich an unterschiedliche Marktbedingungen anpassen lassen
  5. Eintrittssignale sind eindeutig, ohne subjektive Beurteilungselemente, geeignet für automatisierte Transaktionen

Strategisches Risiko

  1. Die Effektivität von Resistenzstützen kann in einem hochflüchtigen Markt abnehmen
  2. Die Stop-Loss-Position ist relativ weit entfernt (~16%), kann in extremen Situationen größere Verluste erleiden
  3. Die Einstellung der Sensitivitätsparameter hat einen wichtigen Einfluss auf die Häufigkeit und Genauigkeit des Handels
  4. Wenn man sich nur auf die Preisform verlassen würde, könnte man andere wichtige Signale übersehen.
  5. Die Auswirkungen der Transaktionskosten auf die Strategierendite müssen berücksichtigt werden

Richtung der Strategieoptimierung

  1. Einführung von Verkehrsvolumen als Hilfsindikator für die Bestätigung und Signalsicherheit
  2. Entwicklung von adaptiven Sensitivitätsparametern, die sich an dynamische Marktschwankungen anpassen
  3. Optimierung der Stop-Loss-Einstellungen, Erwägung der Verwendung von mobilen Stop-Loss- oder Phasen-Stop-Systemen
  4. Trend-Filter hinzugefügt, um Rückschläge in starken Trends zu vermeiden
  5. Entwicklung eines dynamischen Positionsmanagementsystems, das die Größe des Handels an die Marktlage anpasst

Zusammenfassen

Diese auf dem Preisverhalten basierende Handelsstrategie bietet den Händlern eine systematische Handelsmethode durch die Kombination von dynamischen Unterstützungsresistenzen und klassischen Umkehrformen. Die Vorteile der Strategie liegen in der Logik, der Risikokontrolle, aber die fortlaufende Optimierung basierend auf den tatsächlichen Handelsergebnissen. Der Händler wird empfohlen, vor dem Einsatz in der Praxis ausreichend Rückmeldung und Parameteroptimierung durchzuführen und die Strategie in Verbindung mit Markterfahrung individuell anzupassen.

Strategiequellcode
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-03 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © felipemiransan

//@version=5
strategy("Price Action Strategy", overlay=true)

// Settings
length = input.int(16, title="Support and Resistance Length")
sensitivity = input.float(0.018, title="Sensitivity")

// Stop Loss and Take Profit
stop_loss_pct = input.float(16, title="Stop Loss percentage", minval=0.1) / 100
take_profit_pct = input.float(9.5, title="Take Profit percentage", minval=0.1) / 100

// Function to identify a Hammer
isHammer() =>
    body = close - open
    price_range = high - low
    lower_shadow = open - low
    upper_shadow = high - close
    body > 0 and lower_shadow > body * 2 and upper_shadow < body * 0.5 and price_range > 0

// Function to identify a Shooting Star
isShootingStar() =>
    body = open - close
    price_range = high - low
    lower_shadow = close - low
    upper_shadow = high - open
    body > 0 and upper_shadow > body * 2 and lower_shadow < body * 0.5 and price_range > 0

// Function to identify a Doji
isDoji() =>
    body = close - open
    price_range = high - low
    math.abs(body) < (price_range * 0.1)  // Doji has a small body

// Function to identify a Pin Bar
isPinBar() =>
    body = close - open
    price_range = high - low
    lower_shadow = open - low
    upper_shadow = high - close
    (upper_shadow > body * 2 and lower_shadow < body * 0.5) or (lower_shadow > body * 2 and upper_shadow < body * 0.5)

// Support and resistance levels 
support = ta.lowest(low, length)
resistance = ta.highest(high, length)

// Entry criteria
long_condition = (isHammer() or isDoji() or isPinBar()) and close <= support * (1 + sensitivity)
short_condition = (isShootingStar() or isDoji() or isPinBar()) and close >= resistance * (1 - sensitivity)

// Function to calculate stop loss and take profit (long)
calculate_levels(position_size, avg_price, stop_loss_pct, take_profit_pct) =>
    stop_loss_level = avg_price * (1 - stop_loss_pct)
    take_profit_level = avg_price * (1 + take_profit_pct)
    [stop_loss_level, take_profit_level]

// Function to calculate stop loss and take profit (short)
calculate_levels_short(position_size, avg_price, stop_loss_pct, take_profit_pct) =>
    stop_loss_level = avg_price * (1 + stop_loss_pct)
    take_profit_level = avg_price * (1 - take_profit_pct)
    [stop_loss_level, take_profit_level]

// Buy entry order with label
if (long_condition and strategy.opentrades == 0)
    strategy.entry("Buy", strategy.long)
    pattern = isHammer() ? "Hammer" : isDoji() ? "Doji" : isPinBar() ? "Pin Bar" : ""
    label.new(x=bar_index, y=low, text=pattern, color=color.green, textcolor=color.black, size=size.small)

// Sell entry order with label
if (short_condition and strategy.opentrades == 0)
    strategy.entry("Sell", strategy.short)
    pattern = isShootingStar() ? "Shooting Star" : isDoji() ? "Doji" : isPinBar() ? "Pin Bar" : ""
    label.new(x=bar_index, y=high, text=pattern, color=color.red, textcolor=color.black, size=size.small)

// Stop Loss and Take Profit management for open positions
if (strategy.opentrades > 0)
    if (strategy.position_size > 0)  // Long position
        avg_price_long = strategy.position_avg_price  // Average price of long position
        [long_stop_level, long_take_profit_level] = calculate_levels(strategy.position_size, avg_price_long, stop_loss_pct, take_profit_pct)
        strategy.exit("Exit Long", from_entry="Buy", stop=long_stop_level, limit=long_take_profit_level)
    if (strategy.position_size < 0)  // Short position
        avg_price_short = strategy.position_avg_price  // Average price of short position
        [short_stop_level, short_take_profit_level] = calculate_levels_short(strategy.position_size, avg_price_short, stop_loss_pct, take_profit_pct)
        strategy.exit("Exit Short", from_entry="Sell", stop=short_stop_level, limit=short_take_profit_level)

// Visualization of Support and Resistance Levels
plot(support, title="Support", color=color.green, linewidth=2)
plot(resistance, title="Resistance", color=color.red, linewidth=2)