Strategi Ambil Untung Bollinger Bandit Peringkat

BOLLINGER SMA stdev TP SL
Tarikh penciptaan: 2025-08-26 11:39:47 Akhirnya diubah suai: 2025-08-26 11:39:47
Salin: 5 Bilangan klik: 309
2
fokus pada
319
Pengikut

Strategi Ambil Untung Bollinger Bandit Peringkat Strategi Ambil Untung Bollinger Bandit Peringkat

Bagaimana agaknya taktik ini?

Tahukah anda? Strategi “Rampok Burin” ini seperti penembak jitu di pasar! Oh, ia bukan jenis yang melepaskan tembakan secara tidak sengaja, tetapi ia bertujuan untuk “penjajah” di pinggir Burin.

Logik terasnya sangat mudah.

Ini adalah strategi yang diarahkan kepada pemikiran terbalik:

  • Harga turun ke bawah = Terlalu terjual, bersedia untuk melakukan lebih banyak!
  • Harga Meledak = Terlalu Beli, Bersedia untuk Berbuka! Sama seperti spring, semakin banyak tekanan, semakin kuat bouncing back. Blink adalah alat visual untuk “spring” ini, garis rata-rata 20 hari adalah sumbu tengah, dan garisan atas dan bawah adalah batas.

Tarikan-tarikan yang menarik

Tidak seperti strategi “satu potong” tradisional, strategi ini lebih menyerupai pedagang yang bijak:

  • Apabila TP1 dicapai, anda akan mendapat keuntungan 50% (tiga mata)
  • 50% yang tinggal terus dipegang, iaitu TP2 ((5 mata)
  • Jika keadaan tidak baik, 5 langkah perlindungan dari kerosakan ️

Ini seperti menjual barangan tunai, menjual separuh untuk harga yang lebih baik!

Cadangan konfigurasi pertempuran

Panduan untuk melarikan diri!

  • Pilihan kitaran20 hari adalah konfigurasi klasik, tetapi anda boleh menyesuaikan mengikut jenis dagangan
  • Tetapan kaliber0.1 kali standard deviasi sesuai untuk kebanyakan keadaan, varieti yang bergelombang besar boleh disesuaikan kepada 1.5-2.0
  • Stop Stop Loss3: 5/5/5 adalah konfigurasi yang konservatif, sedikit radikal boleh cuba 5/8/10

Ingat: taktik ini paling sesuai untuk situasi yang bergolak, dan berhati-hatilah dengan “penembusan palsu” dalam trend unilateral!

Kenapa anda memilih strategi ini?

Jika anda seorang peniaga yang suka “mencari kemenangan dengan cara yang stabil”, strategi ini sesuai untuk anda! Ia tidak akan menjadikan anda kaya dengan cepat, tetapi dapat membantu anda mendapatkan keuntungan yang stabil dalam turun naik pasaran.

Kod sumber strategi
/*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)