Quantitative Handelsstrategie basierend auf Unterstützungs- und Widerstandsumkehrmustern


Erstellungsdatum: 2024-06-07 16:45:09 zuletzt geändert: 2024-06-07 16:45:09
Kopie: 3 Klicks: 611
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Handelsstrategie basierend auf Unterstützungs- und Widerstandsumkehrmustern

Überblick

Die Strategie basiert auf den Umkehrformen in der technischen Analyse (Spitzen, Schlucken und Kreuzstern) sowie auf den Unterstützungs- und Widerstandspositionen und wird auf dem 1-Stunden-Chart gehandelt. Die Strategie führt den Handel durch, indem sie potenzielle Marktumkehrpunkte identifiziert und die vorgesehenen Stop- und Stop-Loss-Levels ausführt.

Die Hauptidee dieser Strategie ist es, Positionen zu übernehmen, wenn eine bullish-reverse Form (z. B. Kopflinie, bullish-swallowing Form oder Kreuz) in der Nähe von Unterstützungspositionen auftritt, und Positionen freizugeben, wenn eine bullish-reverse Form (z. B. Kopflinie, bullish-swallowing Form oder Kreuz) in der Nähe von Widerstandspositionen auftritt. Gleichzeitig werden Stop-Loss-Levels festgelegt, um Risiken zu kontrollieren und Gewinne zu sperren.

Strategieprinzip

  1. Durch die Funktionen ta.lowest() und ta.highest() werden jeweils der niedrigste und der höchste Preis für die angegebene Rücklaufzeit berechnet, um die Unterstützung und den Widerstand zu bestimmen.
  2. Beurteilen Sie, ob sich die aktuelle Karte in einer Kopflinie, einer Verschluckform oder einem Kreuzbild befindet.
  3. Wenn eine bullish-umkehrende Form in der Nähe der Unterstützung entsteht, öffnen Sie eine Position; Wenn eine bearish-umkehrende Form in der Nähe der Resistance entsteht, öffnen Sie eine Position.
  4. Setzen Sie den Stop-Loss-Preis auf 3% des Eröffnungspreises und den Stop-Loss auf 1% des Eröffnungspreises.
  5. Wenn der Preis ein Stop-Loss-Level erreicht hat, wird die Position platziert.

Strategische Vorteile

  1. In Kombination mit der Umkehrform und der Widerstandslage der Schlüsselstütze erhöht sich die Zuverlässigkeit der Handelssignale.
  2. Setzen Sie eindeutige Stopp- und Verlustniveaus, um das Risiko effektiv zu kontrollieren.
  3. Das ist für trendige und schwankende Märkte geeignet, um potenzielle Wendechancen zu erfassen.
  4. Der Code ist einfach zu verstehen und umzusetzen.

Strategisches Risiko

  1. In einem wackligen Markt gibt es häufig Umkehrsignale, die zu Übertriebenen und Verlusten bei den Gebühren führen können.
  2. Die Beurteilung von Unterstützungs- und Widerstandspunkten hängt von der Wahl der Rücklaufzeit ab, wobei unterschiedliche Rücklaufzeiten unterschiedliche Ergebnisse zur Folge haben können.
  3. Die Zuverlässigkeit der Umkehrform ist nicht absolut und falsche Signale können zu Verlusten führen.

Die Lösung:

  1. Falschsignale werden reduziert, indem die Parameter und Bestätigungsbedingungen der Umkehrform angepasst werden.
  2. In Kombination mit anderen technischen Indikatoren oder Marktstimmungsindikatoren erhöht sich die Zuverlässigkeit der Signale.
  3. Die Stop-Loss- und Stop-Off-Levels werden entsprechend den unterschiedlichen Marktbedingungen angepasst.

Richtung der Strategieoptimierung

  1. Die Einführung von Volumenindikatoren bestätigt die Effektivität der Umkehrform. Eine Umkehrform mit hohem Volumen kann zuverlässiger sein.
  2. Berücksichtigung von Widerstandsstützen für mehrere Zeiträume zur Verbesserung der Genauigkeit der Widerstandsstützen.
  3. Handeln Sie in der Richtung des Trends, in Kombination mit Trendindikatoren wie beispielsweise Moving Averages, und vermeiden Sie einen Abweichhandel.
  4. Optimierung der Stop-Loss- und Stop-Off-Levels, die sich an die dynamischen Marktschwankungen anpassen, um ein besseres Risiko-Rendite-Verhältnis zu erzielen.

Zusammenfassen

Die Strategie erfasst potenzielle Handelschancen durch die Identifizierung von Umkehrformationen in der Nähe von Unterstützungs- und Widerstandspunkten. Sie ist einfach und benutzerfreundlich und ist für verschiedene Marktumgebungen geeignet. Der Erfolg der Strategie hängt jedoch von der genauen Beurteilung von Umkehrformationen und Unterstützungs- und Widerstandspunkten ab.

Strategiequellcode
/*backtest
start: 2024-05-07 00:00:00
end: 2024-06-06 00:00:00
period: 2h
basePeriod: 15m
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/
// © Kingcoinmilioner

//@version=5
strategy("Reversal Patterns at Support and Resistance", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Parameters
support_resistance_lookback = input.int(50, title="Support/Resistance Lookback Period")
reversal_tolerance = input.float(0.01, title="Reversal Tolerance (percent)", step=0.01) / 100
take_profit_percent = input.float(3, title="Take Profit (%)") / 100
stop_loss_percent = input.float(1, title="Stop Loss (%)") / 100

// Functions to identify key support and resistance levels
findSupport() =>
    ta.lowest(low, support_resistance_lookback)

findResistance() =>
    ta.highest(high, support_resistance_lookback)

// Identify reversal patterns
isHammer() =>
    body = math.abs(close - open)
    lowerWick = open > close ? (low < close ? close - low : open - low) : (low < open ? open - low : close - low)
    upperWick = high - math.max(open, close)
    lowerWick > body * 2 and upperWick < body

isEngulfing() =>
    (close[1] < open[1] and close > open and close > open[1] and open < close[1]) 
    (close[1] > open[1] and close < open and close < open[1] and open > close[1])

isDoji() =>
    math.abs(open - close) <= (high - low) * 0.1

// Identify support and resistance levels
support = findSupport()
resistance = findResistance()

// Check for reversal patterns at support and resistance
hammerAtSupport = isHammer() and (low <= support * (1 + reversal_tolerance))
engulfingAtSupport = isEngulfing() and (low <= support * (1 + reversal_tolerance))
dojiAtSupport = isDoji() and (low <= support * (1 + reversal_tolerance))

hammerAtResistance = isHammer() and (high >= resistance * (1 - reversal_tolerance))
engulfingAtResistance = isEngulfing() and (high >= resistance * (1 - reversal_tolerance))
dojiAtResistance = isDoji() and (high >= resistance * (1 - reversal_tolerance))

// Trading logic
if (hammerAtSupport or engulfingAtSupport or dojiAtSupport)
    strategy.entry("Long", strategy.long)
    stop_level = low * (1 - stop_loss_percent)
    take_profit_level = close * (1 + take_profit_percent)
    strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_level, limit=take_profit_level)

if (hammerAtResistance or engulfingAtResistance or dojiAtResistance)
    strategy.entry("Short", strategy.short)
    stop_level = high * (1 + stop_loss_percent)
    take_profit_level = close * (1 - take_profit_percent)
    strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=stop_level, limit=take_profit_level)

// Plot support and resistance levels for visualization
plot(support, color=color.green, linewidth=1, title="Support Level")
plot(resistance, color=color.red, linewidth=1, title="Resistance Level")

// Plot reversal patterns on the chart for visualization
plotshape(series=hammerAtSupport, location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer at Support")
plotshape(series=engulfingAtSupport, location=location.belowbar, color=color.green, style=shape.labelup, text="Engulfing at Support")
plotshape(series=dojiAtSupport, location=location.belowbar, color=color.green, style=shape.labelup, text="Doji at Support")

plotshape(series=hammerAtResistance, location=location.abovebar, color=color.red, style=shape.labeldown, text="Hammer at Resistance")
plotshape(series=engulfingAtResistance, location=location.abovebar, color=color.red, style=shape.labeldown, text="Engulfing at Resistance")
plotshape(series=dojiAtResistance, location=location.abovebar, color=color.red, style=shape.labeldown, text="Doji at Resistance")