Bollinger Bandit Tier Take-Profit-Strategie

BOLLINGER SMA stdev TP SL
Erstellungsdatum: 2025-08-26 11:39:47 zuletzt geändert: 2025-08-26 11:39:47
Kopie: 5 Klicks: 309
2
konzentrieren Sie sich auf
319
Anhänger

Bollinger Bandit Tier Take-Profit-Strategie Bollinger Bandit Tier Take-Profit-Strategie

Wie stark ist diese Strategie?

Die Strategie der Brin-Bräuber ist wie ein Scharfschütze auf dem Markt! Oh, es ist nicht die Art, die zufällig schießt, sondern speziell auf die “Überschreitenden” an den Rändern des Brin-Bandes.

Die Kernlogik ist einfach.

Die Strategie basiert auf dem Motto “Rückwärtsdenken”:

  • Wenn der Preis unter die Marke fällt, sind Sie überverkauft und bereit, mehr zu tun!
  • Der Preis ist auf Hochtouren geraten = Überkauft, bereit für die Ausgabe! Wie bei der Sprungspirale, je mehr Druck auf die Spirale ausgeübt wird, desto stärker wird die Reaktion. Der Brinband ist das visuelle Werkzeug für diese “Sprungspirale”. Die 20-Tage-Mittellinie ist die Mittel-Achse, die obere und untere Schiene ist die Grenze.

Die magische Faszination der Zitronen

Was ist hier das auffälligste Design? Stufenstopp! Anders als die herkömmliche Strategie des “Einschneidens” ist diese Strategie eher wie die eines klugen Geschäftsmannes:

  • Wenn TP1 erreicht wird, ist 50% der Gewinne (drei Punkte) zuerst in die Tasche gesteckt.
  • Die restlichen 50% bleiben, so TP2 ((5 Punkte))
  • Wenn es schlecht läuft, gibt es noch fünf Punkte zum Verlustschutz.

Es ist wie ein Verkauf von Waren, man verkauft erst die Hälfte und wartet, bis der Preis höher ist!

Empfehlungen für die Einsatzkonfiguration

Die Rettungsanleitung ist da!

  • Auswahl der ZyklenDie 20 Tage sind die klassische Konfiguration, aber man kann sie je nach Handelsvariante anpassen.
  • Multiplikator-Einstellungen1:0 Standarddifferenz ist für die meisten Situationen geeignet, für Varianten mit starker Schwankung kann man 1,5 bis 2,0 einstellen
  • Stopp-Stopp-VerlustDie Konfiguration von 3: 5/5/5 ist sehr konservativ, ein bisschen radikal, kann man es versuchen 5/8/10

Denken Sie daran: Diese Strategie ist am besten geeignet, um in einem einseitigen Trend einen “falschen Durchbruch” zu verhindern.

Warum wählten Sie diese Strategie?

Wenn Sie ein Händler sind, der “stetig gewinnen” möchte, ist diese Strategie für Sie maßgeschneidert! Sie wird Sie nicht über Nacht reich machen, aber sie wird Ihnen helfen, in den schwankenden Märkten stabil zu profitieren.

Strategiequellcode
/*backtest
start: 2024-08-25 00:00:00
end: 2025-01-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Bollinger Bandit + TP Escalonado", overlay=true)

// Configuración básica
length = input.int(20, "Periodo", minval=1)
mult = input.float(1.0, "Multiplicador", minval=0.1, maxval=3.0)
source = input(close, "Fuente")

// Opción para cierre en media
close_on_ma = input.bool(true, "Cierre en Media Móvil")

// SL/TP CONFIGURABLE CON NIVELES FIJOS
use_sltp = input.bool(true, "Usar SL/TP Personalizado", group="Gestión de Riesgo")
sl_points = input.int(5, "Puntos para SL", minval=1, group="Gestión de Riesgo")
tp1_points = input.int(3, "Puntos para TP1", minval=1, group="Gestión de Riesgo")
tp2_points = input.int(5, "Puntos para TP2", minval=1, group="Gestión de Riesgo")

// MOSTRAR TEXTO DE PRECIO
show_price_text = input.bool(true, "Mostrar Precio SL/TP", group="Visualización")

// Cálculo de las Bandas de Bollinger
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

// Detección de cruces
longCondition = ta.crossover(close, lower)
shortCondition = ta.crossunder(close, upper)

// Cálculo de SL/TP con niveles FIJOS EXACTOS - CORREGIDO
var float last_sl_price = na
var float last_tp1_price = na
var float last_tp2_price = na
var int last_entry_bar = 0
var float last_entry_price = na
var bool last_is_long = false

if longCondition or shortCondition
    last_entry_price := close
    last_is_long := longCondition
    if longCondition
        // COMPRA: SL = entrada - 5 puntos, TP1 = entrada + 3 puntos, TP2 = entrada + 5 puntos
        last_sl_price := last_entry_price - sl_points
        last_tp1_price := last_entry_price + tp1_points
        last_tp2_price := last_entry_price + tp2_points
    else
        // VENTA: SL = entrada + 5 puntos, TP1 = entrada - 3 puntos, TP2 = entrada - 5 puntos
        last_sl_price := last_entry_price + sl_points
        last_tp1_price := last_entry_price - tp1_points
        last_tp2_price := last_entry_price - tp2_points
    last_entry_bar := bar_index

// Entradas
if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

// DETECCIÓN DE CIERRES CON TEXTO PERSONALIZADO
var bool long_closed_by_sl = false
var bool long_closed_by_tp1 = false
var bool long_closed_by_tp2 = false
var bool short_closed_by_sl = false
var bool short_closed_by_tp1 = false
var bool short_closed_by_tp2 = false

// Para posiciones LARGAS
if (use_sltp and strategy.position_size > 0)
    if low <= last_sl_price
        strategy.close("Long", comment="LongSL")
        long_closed_by_sl := true
    else if high >= last_tp1_price and not long_closed_by_tp1
        strategy.close("Long", qty_percent=50, comment="LongTP1")
        long_closed_by_tp1 := true
    else if high >= last_tp2_price and not long_closed_by_tp2
        strategy.close("Long", comment="LongTP2")
        long_closed_by_tp2 := true
else if (strategy.position_size > 0)
    if (ta.crossunder(close, upper))
        strategy.close("Long", comment="STOP")
    if (close_on_ma and ta.crossunder(close, basis))
        strategy.close("Long", comment="STOPMedia")

// Para posiciones CORTAS
if (use_sltp and strategy.position_size < 0)
    if high >= last_sl_price
        strategy.close("Short", comment="ShortSL")
        short_closed_by_sl := true
    else if low <= last_tp1_price and not short_closed_by_tp1
        strategy.close("Short", qty_percent=50, comment="ShortTP1")
        short_closed_by_tp1 := true
    else if low <= last_tp2_price and not short_closed_by_tp2
        strategy.close("Short", comment="ShortTP2")
        short_closed_by_tp2 := true
else if (strategy.position_size < 0)
    if (ta.crossover(close, lower))
        strategy.close("Short", comment="STOP")
    if (close_on_ma and ta.crossover(close, basis))
        strategy.close("Short", comment="STOPMedia")

// Reset flags cuando no hay posición
if strategy.position_size == 0
    long_closed_by_sl := false
    long_closed_by_tp1 := false
    long_closed_by_tp2 := false
    short_closed_by_sl := false
    short_closed_by_tp1 := false
    short_closed_by_tp2 := false

// Visualización (manteniendo tus colores y estilo)
plot(basis, "Media", color=color.blue, linewidth=1)
plot(upper, "Banda Superior", color=color.orange, linewidth=2)
plot(lower, "Banda Inferior", color=color.green, linewidth=2)

// Señales de entrada
plotshape(longCondition, "↑ Compra", shape.triangleup, location.belowbar, color=color.green, size=size.tiny)
plotshape(shortCondition, "↓ Venta", shape.triangledown, location.abovebar, color=color.red, size=size.tiny)

// Relleno entre bandas (manteniendo tu estilo)
bgcolor = color.new(color.yellow,80)
fill(plot(upper), plot(lower), bgcolor)