Die Ressourcen sind geladen. Beförderung...

Multi-Pattern-Erkennung und Handelsstrategie auf SR-Ebene

Schriftsteller:ChaoZhang, Datum: 2024-12-05 16:30:14
Tags:SRBlutdruckTPFIBOATRSMA

img

Übersicht

Es handelt sich um ein umfassendes Handelsstrategie-System, das die Erkennung mehrerer technischer Analyse-Muster mit Unterstützungs- und Widerstandsniveaus kombiniert. Die Strategie funktioniert hauptsächlich durch die Identifizierung von doppelten Tiefmustern (Adam- und Eva-Böden), die Integration von Fibonacci-Retracement-Niveaus und die Nutzung von Unterstützungs- und Widerstandslinien für Handelsentscheidungen. Die Kernstärke liegt in der mehrdimensionalen technischen Indikatorverifizierung, die die Zuverlässigkeit von Handelssignalen erhöht, während Unterstützungs- und Widerstandsniveaus als entscheidende Referenzen für die Risikokontrolle verwendet werden.

Strategieprinzipien

Die Strategie verwendet einen dreifachen Verifizierungsmechanismus für Handelsentscheidungen: Erstens identifiziert sie durch spezifische Algorithmen doppelte Tiefmuster, darunter den schärferen Adam-Boden und den abgerundeten Eve-Boden; Zweitens verwendet sie Fibonacci-Retracement-Level (0,618 und 1,618) zur Bestimmung der Zielzonen; Schließlich bestätigt sie Handelssignale durch Support- und Widerstandsniveau-Verifizierung. Handelssignale werden nur generiert, wenn die Bedingungen für Mustererkennung, Fibonacci-Level und Support/Resistance-Level gleichzeitig erfüllt sind. Insbesondere wird ein langes Signal ausgelöst, wenn das Support/Resistance-Level über der 1,618 Fibonacci-Erweiterung liegt, während ein kurzes Signal ausgelöst wird, wenn das Support/Resistance-Level unterhalb der 0,618 Fibonacci-Retracement liegt.

Strategische Vorteile

  1. Mehrere Überprüfungsmechanismen verbessern die Zuverlässigkeit der Handelssignale erheblich
  2. Algorithmen zur Mustererkennung erfassen Marktwendepunkte genau
  3. Fibonacci-Levels liefern präzise Zielzonen
  4. Überprüfung des Unterstützungs-/Widerstandsniveaus erhöht die Handelssicherheit
  5. Hochverstellbare Parameter an unterschiedliche Marktbedingungen angepasst
  6. Ein hoher Automatisierungsgrad verringert subjektive Urteilsverzerrungen

Strategische Risiken

  1. Mustererkennung kann Latenz haben, was sich auf den Zeitpunkt der Eingabe auswirkt
  2. In stark volatilen Märkten können falsche Signale auftreten
  3. Die Wirksamkeit des Unterstützungs-/Widerstandsniveaus wird von den Marktbedingungen beeinflusst
  4. Falsche Einstellungen von Parametern können zu Überhandelungen führen
  5. Erfordert längere Beobachtungszeiten, verpasst möglicherweise schnelle Gelegenheiten

Strategieoptimierungsrichtlinien

  1. Einführung von Volatilitätsindikatoren zur Filterung der Marktbedingungen
  2. Hinzufügen von Trendfiltern zur Verbesserung der Mustererkennungsgenauigkeit
  3. Optimierung der Berechnungsmethoden für Unterstützungs-/Widerstandsniveau
  4. Als Bestätigung Volumenindikatoren angeben
  5. Entwicklung flexiblerer Stop-Loss- und Take-Profit-Mechanismen
  6. Implementieren von Algorithmen für maschinelles Lernen zur Verbesserung der Mustererkennungsgenauigkeit

Zusammenfassung

Diese Strategie baut ein relativ vollständiges Handelssystem auf, indem sie umfassend mehrere technische Analysemethoden einschließlich Mustererkennung, Fibonacci-Levels und Unterstützungs-/Widerstandslinien nutzt. Ihre Stärke liegt in der hohen Zuverlässigkeit, die durch mehrere Verifizierungsmechanismen bereitgestellt wird, während ihre Anpassungsfähigkeit die Anpassung an verschiedene Marktbedingungen ermöglicht. Obwohl einige inhärente Risiken bestehen, zeigt die Strategie durch kontinuierliche Optimierung und Verbesserung das Versprechen für eine stabile Leistung im tatsächlichen Handel. Durch die Einbeziehung zusätzlicher technischer Indikatoren und Optimierungsalgorithmen besteht erheblicher Raum für eine Leistungssteigerung.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Double Bottom with Support/Resistance Strategy - Aynet", overlay=true)

// Inputs
lookbackPeriod = input(21, "Lookback Period")
swingLowThreshold = input(1.5, "Swing Low Threshold")
fibLevel1 = input(0.618, "Fibonacci Level 1")
fibLevel3 = input(1.618, "Fibonacci Level 2")
srPeriod = input(21, "Support/Resistance Period") 
srThreshold = input(3, "Support/Resistance Touch Points")

// Support/Resistance Function
get_sr_level(idx) =>
    var level = 0.0
    var count = 0
    
    if bar_index % srPeriod == 0
        highCount = 0
        lowCount = 0
        for i = 0 to srPeriod - 1
            if math.abs(high[i] - high) < (high * 0.001)
                highCount += 1
            if math.abs(low[i] - low) < (low * 0.001)
                lowCount += 1
                
        if highCount >= srThreshold
            level := high
            count := highCount
        if lowCount >= srThreshold
            level := low
            count := lowCount
            
    [level, count]

// Pattern Detection Functions
isSwingLow(src, left, right) =>
    isLow = true
    for i = 0 to left + right
        if src[i] < src[right]
            isLow := false
    isLow

getSpikeSharpness(index) =>
    priceRange = high[index] - low[index]
    bodyRange = math.abs(close[index] - open[index])
    sharpness = priceRange / bodyRange
    sharpness

// Pattern Variables
var float firstBottom = na
var float secondBottom = na
var bool isAdam = false
var bool isEve = false
var float level1Value = na
var float level3Value = na

// Pattern Detection
bottom = isSwingLow(low, lookbackPeriod, lookbackPeriod)
if bottom
    sharpness = getSpikeSharpness(0)
    if na(firstBottom)
        firstBottom := low
        isAdam := sharpness > swingLowThreshold
    else if low <= firstBottom * 1.02 and low >= firstBottom * 0.98
        secondBottom := low
        isEve := sharpness <= swingLowThreshold

// Calculate Fibonacci
if not na(secondBottom)
    highPoint = ta.highest(high, lookbackPeriod)
    fibDistance = highPoint - math.min(firstBottom, secondBottom)
    level1Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel1
    level3Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel3

// Get S/R Level
[srLevel, srCount] = get_sr_level(0)

// Trading Logic
longCondition = srLevel > level3Value
shortCondition = srLevel < level1Value

if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Reset Pattern
if high > ta.highest(high[1], lookbackPeriod)
    firstBottom := na
    secondBottom := na
    isAdam := false
    isEve := false
var table logo = table.new(position.top_right, 1, 1)
table.cell(logo, 0, 0, 'Double Bottom with Support/Resistance Strategy - Aynet', text_size=size.large, text_color=color.white)
// Plots
plot(level1Value, "0.236", color=color.rgb(245, 0, 0), style=plot.style_line)
plot(level3Value, "0.618", color=color.rgb(82, 166, 255), style=plot.style_line)
plot(srLevel, "S/R Level", color=color.white)

plotshape(bottom and not na(firstBottom) and na(secondBottom), "Adam Bottom", shape.circle, location.belowbar, color.green)
plotshape(bottom and not na(secondBottom), "Eve Bottom", shape.circle, location.belowbar, color.yellow)

Verwandt

Mehr