Strategi Take-Profit Berjenjang Bollinger Bandit

BOLLINGER SMA stdev TP SL
Tanggal Pembuatan: 2025-08-26 11:39:47 Akhirnya memodifikasi: 2025-08-26 11:39:47
menyalin: 5 Jumlah klik: 309
2
fokus pada
319
Pengikut

Strategi Take-Profit Berjenjang Bollinger Bandit Strategi Take-Profit Berjenjang Bollinger Bandit

Bagaimana strategi ini bisa berhasil?

Tahukah kamu? Strategi “perampok Brin” ini seperti penembak jitu di pasar! Oh, ini bukan jenis yang menembak sembarangan, tapi khusus untuk “penjajah” di pinggiran Brin.

Logika inti sangat sederhana.

Ini adalah strategi yang disebut “berpikir terbalik”:

  • Harga turun ke bawah = oversold, siap untuk melakukan lebih banyak!
  • Harga Meledak di Jalur = Terlalu Banyak, Siap Berkomitmen! Seperti halnya dengan spring, semakin banyak tekanan, semakin keras bouncing back. Brinet adalah alat visualisasi “spring” ini. Garis 20 adalah sumbu tengah, dan lintasan atas dan bawah adalah batas.

Keindahan Sihir Penghentian Kencing

Apa yang paling mencolok di sini? Stop Stop! tidak seperti strategi “sekali potong” tradisional, ini lebih seperti strategi seorang pedagang yang cerdas:

  • Ketika TP1 tercapai, Anda dapat mengantongi keuntungan 50% (tiga poin)
  • Sisa 50% terus dipegang, yaitu TP2 ((5 poin)
  • Jika tidak, 5 poin lagi untuk perlindungan dari kerusakan

Ini seperti menjual langsung, menjual setengahnya, dan sisanya dengan harga yang lebih baik!

Rekomendasi konfigurasi tempur

Panduan untuk Menghindar dari Gua!

  • Pilihan siklus20 hari adalah konfigurasi klasik, tetapi Anda dapat menyesuaikan sesuai dengan varietas perdagangan
  • Pengaturan perkalianPerbedaan standar 0.1x cocok untuk sebagian besar situasi, varietas yang berfluktuasi besar dapat disetel menjadi 1.5-2.0
  • Stop Stop Loss3: 5/5/5 adalah konfigurasi yang sangat konservatif, sedikit radikal, bisa dicoba 5/8/10

Ingat: strategi ini paling cocok untuk situasi yang bergejolak, berhati-hatilah dengan lubang “penembusan palsu” dalam tren sepihak!

Mengapa Anda memilih strategi ini?

Jika Anda adalah jenis trader yang suka “mencari kemenangan dengan cara yang stabil”, strategi ini sangat cocok untuk Anda! Ini tidak akan membuat Anda kaya dengan cepat, tetapi dapat membantu Anda mendapatkan keuntungan yang stabil di pasar yang bergejolak.

Kode 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)