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.
Die Strategie verwendet einen dreifachen Verifizierungsmechanismus für Handelsentscheidungen: Erstens identifiziert sie durch spezifische Algorithmen doppelte Tiefmuster, darunter den schärferen
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)