Bullish Engulfing Strategie Quantitatives Handelssystem für Bollinger Band Risikomanagement

BB SMA
Erstellungsdatum: 2025-02-25 10:57:40 zuletzt geändert: 2025-02-25 10:57:40
Kopie: 0 Klicks: 430
2
konzentrieren Sie sich auf
319
Anhänger

Bullish Engulfing Strategie Quantitatives Handelssystem für Bollinger Band Risikomanagement Bullish Engulfing Strategie Quantitatives Handelssystem für Bollinger Band Risikomanagement

Überblick

Die Strategie ist ein auf der technischen Analyse basierendes, quantitatives Handelssystem, das hauptsächlich Positionsmanagement und Positionskontrolle mit Bollinger Bands in Kombination mit Bollinger Bands-Volatilitätsindikatoren durchführt. Die Strategie ermittelt das Risiko-Ratio R ((Wert)) basierend auf dem Bollinger Bands-Volatilitätsbereich, dann berechnet sie die genaue Positionsgröße ((0,75%) basierend auf einem festen Anteil am Gesamtwert der Konten und verwaltet den Handel schließlich durch die Einrichtung eines Gewinnziels von Stop Loss und einem festen Risiko-Rendite-Verhältnis (4R)).

Strategieprinzip

Die Kernlogik dieser Strategie besteht aus drei Teilen: Signalgenerierung, Positionsverwaltung und Ausstiegsbedingungen.

Zunächst basiert die Signalgenerierung auf einer Pfeife-Einnahme-Form, die folgende Bedingungen erfüllt:

  1. Derzeit ist der Schlusskurs der K-Linie höher als der Eröffnungskurs der Y-Linie.
  2. Der letzte K-Linie-Schlusskurs ist niedriger als der Eröffnungskurs.
  3. Der aktuelle Schlusskurs der K-Linie ist höher als der Anfangskurs der vorherigen K-Linie.
  4. Der aktuelle K-Line-Eröffnungspreis ist niedriger als der Schlusskurs der vorherigen K-Line
  5. Der Umsatz muss größer sein als der gesetzte Mindestwert (default ist 1.000.000)

Zweitens wird die Positionsverwaltung in folgenden Schritten umgesetzt:

  1. Mit 40 Zyklen und 2,5 Standardunterschiede berechnet Brin-Band auf und ab
  2. R-Wert berechnet durch die Preisunterschiede zwischen den Auf- und Abfahrten über den Brin-Band: R = 0,4 * (1 - (Abfahrt / Auffahrt))
  3. 0,75% des Gesamtwertes des Portfolios als Risikobetrag pro Transaktion
  4. Genaue Positionsgröße, berechnet nach Stop-Loss-Distanz (R-Wert) und Einstiegspreis

Schließlich wurden die Bedingungen für den Ausstieg wie folgt festgelegt:

  1. Stop-Loss: Ausstieg, wenn der Einstiegspreis minus R% fällt
  2. Gewinn: Ausstieg, wenn der Einstiegspreis auf 4R% steigt

Strategische Vorteile

  1. Risikokontrolle ist präzise und dynamisch: Die Strategie verwendet keine festen Stop-Loss-Punkte, sondern passt die Risikoparameter dynamisch an die aktuelle Volatilität des Marktes an (durch die Berechnung der Brin-Band), so dass das System sich an verschiedene Marktumgebungen anpassen kann.

  2. Risikomanagement mit festen Anteilen: 0,75% des Risikokontos pro Transaktion, um übermäßige Verluste bei einzelnen Transaktionen zu verhindern und die Stabilität der langfristigen Fondsverwaltung zu gewährleisten.

  3. Genaue Positionsberechnung: Die Positionsgröße für jeden Handel wird auf Basis der Brin-Band-Volatilität und des Risikobetrags genau berechnet, um eine einheitliche Risikobereitschaft unter verschiedenen Marktbedingungen zu gewährleisten.

  4. Klare Risikobeträge: Setzen Sie ein Gewinnziel mit den 4 R’s, um sicherzustellen, dass die potenziellen Gewinne pro Handel viermal so hoch sind wie die potenziellen Risiken und die Risikobeträge für professionelle Geschäfte erfüllen.

  5. Visualisierung des Handels: Helfen Sie Händlern, die Handelsleistung intuitiv zu verstehen, indem Sie die Einstiegssignale markieren und die Handelsräume abbilden.

Strategisches Risiko

  1. Zeitwirksamkeitsrisiken: Die Bollinger-Swallow-Form ist ein kurzfristiges Preisumkehrsignal, das möglicherweise keine mittelfristigen Trendänderungen vorhersagt und zu einem vorzeitigen Einstieg in einen stark trendigen Markt führen kann.

  2. Marktbedingte Einschränkungen: Die Strategie kann in einem sehr volatilen oder unliquiditätsorientierten Markt schlecht abschneiden, insbesondere wenn die Bollinger Bands außergewöhnlich expandieren oder zusammenziehen.

  3. Einschränkte Zugangsbedingungen: Die Abhängigkeit von einer einzigen Spekulantenübernahme kann dazu führen, dass die Signale spärlich sind oder andere effektive Zugangsmöglichkeiten verpasst werden.

  4. Das Risiko einer festen Multiplikation: Die Verwendung eines festen R-Faktors von 0,4 zur Berechnung des R-Wertes kann unter bestimmten Marktbedingungen nicht flexibel genug sein, um sich an extreme Marktbedingungen zu gewöhnen.

  5. Potenzielle Schlupfpunkte: In einem stark volatilen Markt kann es zu einem deutlichen Schlupfpunkt bei der tatsächlichen Stop-Loss-Ausführung kommen, der die Effektivität der tatsächlichen Risikokontrolle beeinträchtigt.

Richtung der Strategieoptimierung

  1. Hinzufügen von Filterbedingungen: Es kann in Erwägung gezogen werden, Trendbestätigungskennzeichen wie beispielsweise Moving Averages hinzuzufügen, um sicherzustellen, dass nur in Richtung des Haupttrends gehandelt wird, und um Rückschlüsse zu vermeiden.

  2. Multi-Zeitrahmen-Analyse: Einführung der Analyse der Marktstruktur in höheren Zeitrahmen, die nur dann ausgeführt werden, wenn die Trends in den höheren Zeitrahmen übereinstimmen, um die Signalqualität zu verbessern.

  3. Dynamische Anpassung der Risiko-Parameter: Setzen Sie ein festes Risiko-Verhältnis von 0,75% und einen R-Wert-Faktor von 0,4 als anpassbare Parameter, die sich automatisch an die Marktvolatilität anpassen, um das Risiko in niedrig-volatilen Märkten zu erhöhen und das Risiko in hoch-volatilen Märkten zu senken.

  4. Optimierung der Ausstiegsstrategie: Es kann in Betracht gezogen werden, mobile Stop-Loss- oder dynamische Ausstiegsbedingungen auf Basis von Kennzahlen hinzuzufügen, anstatt nur auf feste Stop-Loss- und Gewinnniveaus zu vertrauen.

  5. Mehrfache Indikator-Bestätigung: Die Kombination von bullish-swallowing-Formen mit anderen technischen Indikatoren (wie RSI, MACD oder Trading-Volume-Analyse) erhöht die Zuverlässigkeit des Eintrittssignals.

Zusammenfassen

Die Brin-Risk-Management-Quantifizierung ist ein vollständiges Handelssystem, das die traditionelle Graphikerkennung mit modernen Risikomanagementmethoden kombiniert. Die Strategie passt die Risikoparameter dynamisch an die Brin-Risk-Management-Strategie an, kontrolliert die Positionsgröße für jeden Handel exakt und setzt die Gewinnziele mit einem festen Risiko-Rendite-Verhältnis. Diese Methode bietet die Fähigkeit, sich an die Marktvolatilität anzupassen, während die Handelsdisziplin beibehalten wird.

Obwohl die Strategie in Bezug auf das Risikomanagement hervorragend funktioniert, gibt es noch Raum für Optimierungen, insbesondere in Bezug auf die Qualität der Eintrittssignale und die Flexibilität der Ausstiegsstrategie. Durch die Hinzufügung zusätzlicher Filterbedingungen, Multi-Time-Framework-Analysen und die Anpassung der dynamischen Risikoparameter kann die Strategie die Anpassungsfähigkeit und Profitabilität in verschiedenen Marktumgebungen weiter verbessern.

Insgesamt ist es ein vollständiges Handelssystem mit professionellen Risikomanagement-Eigenschaften, das sich für Trader eignet, die Wert auf die Vermögensverwaltung und Risikokontrolle legen. Mit vernünftiger Optimierung und Parameteranpassung kann die Strategie zu einem langfristig stabilen Handelsinstrument werden.

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

//@version=5
strategy("Bullish Engulfing Strategy with BB Risk", overlay=true)

// Input parameters for customization (optional, can be adjusted in Strategy Tester)
minVolume = input.int(1000000, "Minimum Volume", minval=1)  // Optional filter for liquidity

// Calculate Bollinger Bands (length=40, StdDev=2.5) for R
length = 40
mult = 2.5
basis = ta.sma(close, length)  // Middle Band (40-period SMA of close)
dev = mult * ta.stdev(close, length)  // Standard deviation multiplied by 2.5
upperBB = basis + dev  // Upper Bollinger Band
lowerBB = basis - dev  // Lower Bollinger Band

// Define R as 0.4 times the Bollinger Bands spread: R = 0.4 * ((1 - (lowerBB / upperBB)) * 100)
R = 0.4 * (1 - (lowerBB / upperBB))  // Percentage value, scaled by 0.4

// Define Bullish Engulfing pattern with optional volume filter
isBullishEngulfing() => close > open and close[1] < open[1] and close > open[1] and open < close[1] and close[1] < open[1] and close > open and volume > minVolume

bullishEngulfing = isBullishEngulfing()

// Track position and entry details
var bool inPosition = false
var float entryPrice = 0.0
var int entryBar = 0
var int exitBar = 0  // Track exit bar (added here to fix undeclared variable)
var float exitPrice = 0.0  // Track exit price

// Enter long position on the next bar after Bullish Engulfing, with position size risking 0.75% of portfolio
if (bullishEngulfing and not inPosition)
    // Calculate position size to risk 0.75% of portfolio
    portfolioValue = strategy.equity  // Current portfolio equity
    riskPerTrade = portfolioValue * 0.0075  // 0.75% of portfolio
    stopLossDistance = R  // R% of entry price (stop-loss distance)
    entryPrice := close
    positionSize = riskPerTrade / stopLossDistance / entryPrice  // Position size in units (contracts/shares)
    
    // Ensure positionSize is rounded to a practical number (e.g., whole shares)
    positionSize := math.round(positionSize)
    
    // Enter long position with calculated size
    strategy.entry("Long", strategy.long, limit = entryPrice, qty=positionSize)
    inPosition := true
    entryBar := bar_index

// Exit logic: Stop-loss or Take-profit
if (inPosition)
    // Stop-loss: Exit if price drops below entryPrice - R%
    stopLossLevel = entryPrice * (1 - R)
    if (low <= stopLossLevel)
        strategy.close("Long")
        inPosition := false
        exitBar := bar_index
        exitPrice := close
    
    // Take-profit: Exit if price rises above entryPrice + 4R%
    takeProfitLevel = entryPrice * (1 + 4 * R)
    if (high >= takeProfitLevel)
        strategy.close("Long")
        inPosition := false
        exitBar := bar_index
        exitPrice := close

// Optional: Plot signals and R for visualization
if (bullishEngulfing)
    label.new(bar_index, high, "Bullish Engulfing", yloc=yloc.abovebar, color=color.green, style=label.style_label_down, textcolor=color.white)

plot(R, title="R (BB Spread %)", color=color.blue, style=plot.style_histogram)