Hochfrequenz-Handelsstrategie, die Bollinger Bands und DCA kombiniert


Erstellungsdatum: 2024-03-29 16:20:13 zuletzt geändert: 2024-03-29 16:20:13
Kopie: 5 Klicks: 828
1
konzentrieren Sie sich auf
1617
Anhänger

Hochfrequenz-Handelsstrategie, die Bollinger Bands und DCA kombiniert

Überblick

Die Strategie, genannt “DCA Booster (1 Minute) “, ist eine Hochfrequenz-Handelsstrategie, die auf einem 1-Minuten-Zeitrahmen läuft. Die Strategie kombiniert die Techniken Brin-Band und DCA (Dollar-Cost Averaging, Dollar-Cost-Average) mit dem Ziel, die Marktfluktuation zu nutzen, um mehrmals zu kaufen und zu verkaufen, um zu versuchen, einen Gewinn zu erzielen.

Strategieprinzip

  1. Berechnung der Brin-Band: Berechnung der Brin-Band mit einfachen Moving Averages und Standarddifferenzen.
  2. Setzen Sie die DCA-Parameter: Die Festbeträge werden in mehrere Teile aufgeteilt, als die Höhe der Mittel pro Lagerstätte.
  3. Positionsbedingungen: Positionen beginnen, wenn der Schlusskurs zwei aufeinanderfolgende Perioden unter der Bollinger Band-Abwärtsbahn liegt. Je nachdem, ob der Preis weiterhin unter der Abwärtsbahn liegt, kann die Strategie maximal 5 Positionen aufbauen.
  4. Placement-Bedingungen: Alle Positionen werden gelöscht, wenn der Preis durch die Brin-Band auf die Bahn geht.
  5. Pyramide-Positionierung: Die Strategie wird fortgesetzt, wenn der Preis weiter sinkt, und kann bis zu 5 Positionen erhöhen.
  6. Positionsmanagement: Die Strategie zeichnet die Positionserstellung für jede Position auf und löscht die entsprechenden Positionen, wenn die Geländebedingungen erfüllt sind.

Strategische Vorteile

  1. Die Kombination von Brin-Band und DCA ermöglicht es, Marktschwankungen zu erfassen und die Kaufkosten zu senken.
  2. Die Pyramide ist zugelassen, um ihre Lager zu halten, während die Preise weiter sinken, um die Gewinnchancen zu erhöhen.
  3. Die Bedingungen für die Ausgleichsposition sind einfach und klar und ermöglichen eine schnelle Gewinnschließung.
  4. Es ist für den Einsatz in kurzen Zeitrahmen wie 1 Minute geeignet und kann mit hoher Frequenz gehandelt werden.

Strategisches Risiko

  1. Wenn die Marktschwankungen stark sind und die Preise schnell über die Bollinger Bands hinausgehen, kann dies dazu führen, dass die Strategie nicht ausgeglichen wird, was zu Verlusten führt.
  2. Pyramiden können zu einer Überbelichtung führen, die das Risiko erhöht, wenn die Preise weiter sinken.
  3. Die Strategie kann in einem turbulenten Markt schlechter abschneiden, da häufiger Kauf und Verkauf zu höheren Transaktionskosten führen können.

Richtung der Strategieoptimierung

  1. Es kann in Betracht gezogen werden, einen Stop-Loss in der Nullposition einzufügen, um den maximalen Verlust eines einzelnen Handels zu kontrollieren.
  2. Die Logik der Pyramide kann optimiert werden, z. B. indem die Gewinne entsprechend der Höhe des Preisrückgangs angepasst werden, um eine Überbelichtung zu vermeiden.
  3. Es kann mit anderen Indikatoren kombiniert werden, wie dem RSI, MACD usw., um die Genauigkeit von Einstieg und Ausstieg zu verbessern.
  4. Die Parameter wie die Periodizität der Brin-Band und das Standarddifferenz-Multiplikator können optimiert werden, um unterschiedlichen Marktbedingungen gerecht zu werden.

Zusammenfassen

“DCA Booster (1 Minute) ” ist eine Hochfrequenz-Handelsstrategie in Kombination mit Bollinger Bands und DCA, die versucht, Marktbewegungen zu erfassen und zu profitieren, indem sie Positionen in Gruppen aufbaut, wenn der Preis unterhalb der Bollinger Bands liegt, und die Positionen in den Preisen durchbricht, wenn die Bollinger Bands auf den Kurs gehen. Die Strategie erlaubt eine Pyramide, aber es besteht auch das Risiko von starken Marktfluktuationen und Überbelichtung.

Strategiequellcode
/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DCA Booster (1 minute)",
  overlay=true )

// Parameters for Bollinger Bands
length = input.int(50, title="BB Length")
mult = input.float(3.0, title="BB Mult")

// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// Variables for DCA
cantidad_dolares = 50000
orden1 = cantidad_dolares / close
orden2 = orden1 * 1.2
orden3 = orden2 * 1.3
orden4 = orden3 * 1.5
orden5 = orden4 * 1.5

// Variables for tracking purchases
var comprado1 = false
var comprado2 = false
var comprado3 = false
var comprado4 = false
var comprado5 = false

// Buy conditions
condicion_compra1 = close < lower and close[1] < lower[1] and not comprado1
condicion_compra2 = close < lower and close[1] < lower[1] and comprado1 and not comprado2
condicion_compra3 = close < lower and close[1] < lower[1] and comprado2 and not comprado3
condicion_compra4 = close < lower and close[1] < lower[1] and comprado3 and not comprado4
condicion_compra5 = close < lower and close[1] < lower[1] and comprado4 and not comprado5
// Variables de control
var int consecutive_closes_below_lower = 0
var int consecutive_closes_above_upper = 0

// Entry logic
if condicion_compra1 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra1", strategy.long, qty=orden1)
        comprado1 := true
        consecutive_closes_below_lower := 0

if condicion_compra2 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra2", strategy.long, qty=orden2)
        comprado2 := true
        consecutive_closes_below_lower := 0

if condicion_compra3 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra3", strategy.long, qty=orden3)
        comprado3 := true
        consecutive_closes_below_lower := 0

if condicion_compra4 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra4", strategy.long, qty=orden4)
        comprado4 := true
        consecutive_closes_below_lower := 0

if condicion_compra5 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra5", strategy.long, qty=orden5)
        comprado5 := true
        consecutive_closes_below_lower := 0


// Sell conditions
if close > upper  and comprado1 and barstate.isconfirmed
    strategy.close("Compra1")
    comprado1 := false

if close > upper  and comprado2 and barstate.isconfirmed
    strategy.close("Compra2")
    comprado2 := false

if close > upper  and comprado3 and barstate.isconfirmed
    strategy.close("Compra3")
    comprado3 := false

if close > upper and comprado4 and barstate.isconfirmed
    strategy.close("Compra4")
    comprado4 := false

if close > upper and comprado5 and barstate.isconfirmed
    strategy.close("Compra5")
    comprado5 := false