Langfristige Handelsstrategie auf Basis von Bollinger-Bändern %B Indikator

Schriftsteller:ChaoZhang, Datum: 2024-02-01 11:15:44
Tags:

img

Übersicht

Diese Strategie erzeugt Handelssignale auf der Grundlage des Bollinger Bands %B-Indikators. Sie geht lang, wenn der %B-Wert unter einen vorgegebenen Schwellenwert fällt und einen dynamischen Positionsdurchschnittsansatz annimmt, um dem Trend zu folgen, bis ein Take Profit oder Stop Loss ausgelöst wird. Die Strategie eignet sich zur Identifizierung von Rückzugsmöglichkeiten, nachdem die Unterstützung des unteren Bollinger Bands gebrochen wurde.

Strategie Logik

  1. Berechnung des mittleren, oberen und unteren Bands der N-Tage-Bollinger-Bänder
  2. Berechnen Sie den Wert %B: (%B = (Schließen - UnterBB) /(OberBB - UnterBB)
  3. Verlängern, wenn der Wert %B unter den Schwellenwert fällt (Standardwert 0)
  4. Ein Satz von Gewinn auf Basis des Einstiegspreises (Standstillstand ist 105% des Einstiegspreises) und Stop-Loss (Standstillstand ist 95% des Einstiegspreises)
  5. Hinzufügen der Position, solange die Bedingungen nach der Eröffnungsposition erfüllt sind
  6. Der erste ausgelöste Take Profit oder Stop Loss schließt die Position

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. %B-Indikator identifiziert effizient Pullback-Punkte nach Unterbandunterstützung
  2. Dynamische Positionsdurchschnittswerte zeigen den Trend zu höherem Gewinn
  3. Klarere Gewinn- und Stop-Loss-Bedingungen erleichtern die Risikokontrolle

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Höhere Wahrscheinlichkeit falscher Signale ab %B
  2. Häufigere Stopp-Loss-Trigger während der Ranging-Märkte
  3. Risiken bei aggressiver Durchschnittsberechnung unkontrollierte Verluste

Lösungen:

  1. Kombination mit Indikatoren wie KD und MACD zur Bestätigung der Signalverlässlichkeit
  2. Anpassung der Stop-Loss-Platzierung an die Marktvolatilität
  3. Steuerung der Durchschnittsgeschwindigkeit zur Vermeidung von Explosionsrisiken

Möglichkeiten zur Verbesserung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Verschiedene Parameterkombinationen für optimale Ergebnisse testen
  2. Optimieren Sie die Logik der Durchschnittsrechnung, z. B. stoppen Sie die Addition, nachdem ein gewisses Gewinnziel erreicht wurde
  3. Hinzufügen eines Liquiditätsfilters, um fehlerhaften Handel mit niedrigen Liquiditätsbeständen zu verhindern

Zusammenfassung

Insgesamt ist dies eine relativ robuste langfristige Handelsstrategie. Es gibt Raum für Verbesserungen sowohl bei der Signalgenauigkeit als auch bei der Parameter-Ausrichtung. In Kombination mit zusätzlicher Signalfilterung und umsichtiger Positionsgröße kann diese Strategie anständige Ergebnisse in Trendmärkten erzielen.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands %B Long Strategy", shorttitle="BB %B Long Strategy", overlay=true)

// Girdiler
length = input.int(20, title="BB Length")
src = input(close, title="Source")
dev = input.float(2.0, title="Deviation")
kar_hedefi = input(5, title="Take Profit")
zarar_durumu = input(100, title="Stop Loss")
start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date")
end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date")
altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin")

// Bollinger Bantları %B göstergesi
basis = ta.sma(src, length)
stdDev = ta.stdev(src, length)
upperBand = basis + dev * stdDev
lowerBand = basis - dev * stdDev
percentB = (src - lowerBand) / (upperBand - lowerBand)

// Alım-Satım Sinyalleri
longCondition = percentB < altinda_kalirsa_long

// Kar/Zarar Hesaplama
takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100)
stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100)

// Long (Alım) İşlemi
if (longCondition )
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss)

// Take Profit Seviyesi Çizgisi
plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)


Mehr