Fortgeschrittene Multiple Pattern Breakout Trading-Strategie

DOJI PIN BAR HAMMER BREAKOUT CANDLESTICK RSI
Erstellungsdatum: 2025-02-20 13:33:36 zuletzt geändert: 2025-02-20 13:33:36
Kopie: 0 Klicks: 349
2
konzentrieren Sie sich auf
319
Anhänger

Fortgeschrittene Multiple Pattern Breakout Trading-Strategie Fortgeschrittene Multiple Pattern Breakout Trading-Strategie

Überblick

Die Strategie ist ein hochentwickeltes Handelssystem, das auf mehreren Technologien basiert, die auf der Formerkennung basieren, die die Analyse der Pivot-Form und die Grundlagen des Durchbruchs des Handels kombiniert. Die Strategie ist in der Lage, mehrere klassische Pivot-Formen zu erkennen und zu handeln, darunter die Kreuz-Stern-Form (Doji), die Hammer-Strecke (Hammer) und die Nadel-Form (P) in Bar, und kombiniert dies mit einem System zur Bestätigung von Doppelringe, um die Signalzuverlässigkeit des Handels zu erhöhen.

Strategieprinzip

Die Kernlogik der Strategie basiert auf folgenden Schlüsselelementen:

  1. Formenerkennungssystem - mit Hilfe von exakten mathematischen Berechnungen identifiziert drei wichtige Graphikformen: Kreuzstern, Pfeil und Nadel. Jede Form hat ihre eigenen, einzigartigen Identifikationskriterien, wie die proportionale Beziehung zwischen dem Entity und dem Schatten.
  2. Durchbruch-Bestätigung - Mit einem Zwei-Spitzen-Bestätigungssystem wird verlangt, dass die zweite Leitung die Höhe der vorherigen Leitung überschreitet, um falsche Signale zu reduzieren.
  3. Zielpreisbestimmung - Die Verwendung einer verstellbaren Rücklaufzeit (die Standardzeit beträgt 20 Zyklen) zur Bestimmung des jüngsten Höchst- oder Tiefstpreises als Zielpreis, um die Strategie dynamisch anpassungsfähig zu machen.

Strategische Vorteile

  1. Multi-Form-Erkennung - durch die gleichzeitige Überwachung mehrerer Technikformate werden potenzielle Handelsmöglichkeiten deutlich erhöht.
  2. Signalbestätigungsmechanismus - Die Bestätigung mit zwei Zellen reduziert das Risiko von Falschsignalen.
  3. Visualisierung der Handelsabschnitte - Farbkästchen werden verwendet, um die Handelsabschnitte zu markieren, um die Handelsziele intuitiver zu machen.
  4. Flexible Anpassung der Parameter - Rücklaufzeiten und andere Parameter können je nach Marktbedingungen angepasst werden.

Strategisches Risiko

  1. Risiken von Marktschwankungen - während hoher Schwankungen können falsche Durchbruchsignale erzeugt werden.
  2. Rutschrisiko - In weniger liquiden Märkten kann der tatsächliche Kaufpreis stark von dem Signalpreis abweichen.
  3. Trendwechselrisiko - In einem stark trendigen Markt kann ein Umkehrsignal zu größeren Verlusten führen.

Optimierungsrichtung

  1. Einführung von Transit-Bestätigung - Es wird empfohlen, Transit-Analysen in Formerkennungssysteme einzubauen, um die Zuverlässigkeit der Signale zu verbessern.
  2. Dynamische Stop-Loss-Mechanismen - Dynamische Stop-Loss-Positionen können basierend auf ATR oder Schwankungen eingestellt werden.
  3. Filter für die Marktumgebung - Hinzufügen von Indikatoren für die Trendstärke und Filterung von Umkehrsignalen während eines starken Trends.
  4. Optimierung des Zeitrahmens - Überlegen Sie, die Signalbestätigung auf mehreren Zeitrahmen durchzuführen.

Zusammenfassen

Die Strategie baut ein vollständiges Handelssystem auf, das durch die Kombination von mehrfacher technischer Gestaltungsanalyse und durchbruchbringenden Handelsprinzipien aufgebaut wird. Ihr Vorteil liegt in der mehrdimensionalen Bestätigung der Signale und der flexiblen Anpassung der Parameter, aber auch in der Beachtung von Marktschwankungen und Liquiditätsrisiken. Die Stabilität und Zuverlässigkeit der Strategie kann durch die empfohlene Optimierungsrichtung weiter verbessert werden.

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

//@version=5
strategy("Target(Made by Karan)", overlay=true)

// Input for lookback period
lookbackPeriod = input.int(20, title="Lookback Period for Recent High/Low", minval=1)

// --- Pattern Identification Functions ---

// Identify Doji pattern
isDoji(open, high, low, close) =>
    bodySize = math.abs(close - open)
    rangeSize = high - low
    bodySize <= rangeSize * 0.1  // Small body compared to total range

// Identify Hammer pattern
isHammer(open, high, low, close) =>
    bodySize = math.abs(close - open)
    lowerShadow = open - low
    upperShadow = high - close
    bodySize <= (high - low) * 0.3 and lowerShadow > 2 * bodySize and upperShadow <= bodySize * 0.3  // Long lower shadow, small upper shadow

// Identify Pin Bar pattern
isPinBar(open, high, low, close) =>
    bodySize = math.abs(close - open)
    rangeSize = high - low
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    (upperShadow > bodySize * 2 and lowerShadow < bodySize) or (lowerShadow > bodySize * 2 and upperShadow < bodySize)  // Long shadow on one side

// --- Candle Breakout Logic ---

// Identify the first green candle (Bullish)
is_first_green_candle = close > open

// Identify the breakout above the high of the first green candle
breakout_green_candle = ta.crossover(close, high[1]) and is_first_green_candle[1]

// Identify the second green candle confirming the breakout
second_green_candle = close > open and breakout_green_candle[1]

// Find the recent high (for the target)
recent_high = ta.highest(high, lookbackPeriod)  // Use adjustable lookback period

// Plot the green rectangle box if the conditions are met and generate buy signal
var float start_price_green = na
var float end_price_green = na

if second_green_candle
    start_price_green := low[1]  // Low of the breakout green candle
    end_price_green := recent_high  // The most recent high in the lookback period
    strategy.entry("Buy", strategy.long)  // Buy signal

// --- Red Candle Logic ---

// Identify the first red candle (Bearish)
is_first_red_candle = close < open

// Identify the breakdown below the low of the first red candle
breakdown_red_candle = ta.crossunder(close, low[1]) and is_first_red_candle[1]

// Identify the second red candle confirming the breakdown
second_red_candle = close < open and breakdown_red_candle[1]

// Find the recent low (for the target)
recent_low = ta.lowest(low, lookbackPeriod)  // Use adjustable lookback period

// Plot the red rectangle box if the conditions are met and generate sell signal
var float start_price_red = na
var float end_price_red = na

if second_red_candle
    start_price_red := high[1]  // High of the breakout red candle
    end_price_red := recent_low  // The most recent low in the lookback period
    strategy.entry("Sell", strategy.short)  // Sell signal

// --- Pattern Breakout Logic for Doji, Hammer, Pin Bar ---

// Detect breakout of Doji, Hammer, or Pin Bar patterns
var float start_price_pattern = na
var float end_price_pattern = na

// Check for Doji breakout
if isDoji(open, high, low, close) and ta.crossover(close, high[1])
    start_price_pattern := low[1]  // Low of the breakout Doji
    end_price_pattern := recent_high  // The most recent high in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = end_price_pattern, bottom = start_price_pattern, border_color = color.new(color.blue, 0), bgcolor = color.new(color.blue, 80))
    strategy.entry("Buy Doji", strategy.long)  // Buy signal for Doji breakout

// Check for Hammer breakout
if isHammer(open, high, low, close) and ta.crossover(close, high[1])
    start_price_pattern := low[1]  // Low of the breakout Hammer
    end_price_pattern := recent_high  // The most recent high in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = end_price_pattern, bottom = start_price_pattern, border_color = color.new(color.blue, 0), bgcolor = color.new(color.blue, 80))
    strategy.entry("Buy Hammer", strategy.long)  // Buy signal for Hammer breakout

// Check for Pin Bar breakout
if isPinBar(open, high, low, close) and ta.crossover(close, high[1])
    start_price_pattern := low[1]  // Low of the breakout Pin Bar
    end_price_pattern := recent_high  // The most recent high in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = end_price_pattern, bottom = start_price_pattern, border_color = color.new(color.blue, 0), bgcolor = color.new(color.blue, 80))
    strategy.entry("Buy Pin Bar", strategy.long)  // Buy signal for Pin Bar breakout

// Check for bearish Doji breakout
if isDoji(open, high, low, close) and ta.crossunder(close, low[1])
    start_price_pattern := high[1]  // High of the breakdown Doji
    end_price_pattern := recent_low  // The most recent low in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = start_price_pattern, bottom = end_price_pattern, border_color = color.new(color.orange, 0), bgcolor = color.new(color.orange, 80))
    strategy.entry("Sell Doji", strategy.short)  // Sell signal for Doji breakdown

// Check for bearish Hammer breakout
if isHammer(open, high, low, close) and ta.crossunder(close, low[1])
    start_price_pattern := high[1]  // High of the breakdown Hammer
    end_price_pattern := recent_low  // The most recent low in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = start_price_pattern, bottom = end_price_pattern, border_color = color.new(color.orange, 0), bgcolor = color.new(color.orange, 80))
    strategy.entry("Sell Hammer", strategy.short)  // Sell signal for Hammer breakdown

// Check for bearish Pin Bar breakout
if isPinBar(open, high, low, close) and ta.crossunder(close, low[1])
    start_price_pattern := high[1]  // High of the breakdown Pin Bar
    end_price_pattern := recent_low  // The most recent low in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = start_price_pattern, bottom = end_price_pattern, border_color = color.new(color.orange, 0), bgcolor = color.new(color.orange, 80))
    strategy.entry("Sell Pin Bar", strategy.short)  // Sell signal for Pin Bar breakdown

// Optional: Plot shapes for the green sequence of candles
plotshape(series=is_first_green_candle, location=location.belowbar, color=color.green, style=shape.labelup, text="1st Green")
plotshape(series=breakout_green_candle, location=location.belowbar, color=color.blue, style=shape.labelup, text="Breakout")
plotshape(series=second_green_candle, location=location.belowbar, color=color.orange, style=shape.labelup, text="2nd Green")

// Optional: Plot shapes for the red sequence of candles
plotshape(series=is_first_red_candle, location=location.abovebar, color=color.red, style=shape.labeldown, text="1st Red")
plotshape(series=breakdown_red_candle, location=location.abovebar, color=color.blue, style=shape.labeldown, text="Breakdown")
plotshape(series=second_red_candle, location=location.abovebar, color=color.orange, style=shape.labeldown, text="2nd Red")