Strategi Breakout Bollinger Band


Tanggal Pembuatan: 2023-09-19 16:06:56 Akhirnya memodifikasi: 2023-09-19 16:06:56
menyalin: 2 Jumlah klik: 821
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini didasarkan pada indikator Bollinger Bands, melakukan over jika harga menembus Bollinger Bands down, dan bernegosiasi ketika harga menyentuh Bollinger Bands up. Strategi ini memanfaatkan prinsip inklusifitas Bollinger Bands, untuk melacak harga yang tidak biasa menembus, untuk mencapai tujuan jual beli rendah.

Prinsip Strategi

  1. Perhitungan SMA garis tengah pada Brin Belt, dengan mengambil rata-rata bergerak sederhana dari harga penutupan terakhir.

  2. Perbedaan standar StdDev, yang mencerminkan kisaran fluktuasi harga.

  3. SMA tengah ditambah dengan bias pada standar deviasi, mendapatkan Brin di jalur.

  4. SMA garis tengah dikurangi defisit standar, dan mendapatkan Brin di bawah lintasan.

  5. Ketika harga penutupan dari bawah ke atas menembus tren bawah, lakukan masukan tambahan.

  6. Ketika harga menyentuh rel, anggaplah harga tidak normal, dan keluar dari posisi kosong.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah memanfaatkan karakteristik statistik dari indikator Bollinger Bands untuk secara efektif melacak pergerakan pasar yang tidak normal dan menangkap tren. Strategi Bollinger Bands memiliki keunggulan dibandingkan dengan strategi rata-rata bergerak konvensional:

  1. Brin dapat beradaptasi secara otomatis dengan pergerakan pasar.

  2. Penembusan lebih dipercaya sebagai sinyal masuk.

  3. Kembali ke sumbu tengah sebagai sinyal berhenti masuk akal.

  4. Ada banyak ruang untuk mengoptimalkan parameter, yang dapat disesuaikan dengan pasar yang berbeda.

  5. Trends dapat ditangkap dalam garis tengah dan panjang, dan dapat juga digunakan dalam garis pendek.

Analisis risiko

Strategi ini memiliki beberapa risiko utama:

  1. Brin-band tidak bekerja dengan baik di pasar horizontal, dan harus dihindari.

  2. Sinyal penembusan mungkin palsu, harus dipertimbangkan secara hati-hati.

  3. Posisi stop adalah terlalu ideal, dapat dioptimalkan untuk situasi yang sebenarnya.

  4. Penetapan parameter yang tidak tepat dapat menyebabkan transaksi yang terlalu sering atau konservatif.

  5. Periode pengembalian harus cukup panjang untuk menghindari kecocokan.

Tindakan penanganan risiko yang sesuai:

  1. Sinyal penyaring yang digabungkan dengan indikator volume transaksi.

  2. Mengoptimalkan parameter, menguji efektivitas data di berbagai pasar.

  3. Tambahkan stop loss bergerak, posisi stop rotasi.

  4. “Sebenarnya saya tidak tahu apa yang terjadi”, kata dia.

Arah optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Cobalah berbagai ukuran parameter Brin untuk mencari kombinasi yang optimal.

  2. Meningkatkan sinyal penembusan dari indikator seperti garis rata-rata dan MACD.

  3. Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan parameter Brin.

  4. Pada saat melakukan penetrasi, menilai kekuatan dan kelemahan dan menyesuaikan posisi.

  5. Mengembalikan data siklus yang lebih panjang, untuk menguji stabilitas strategi.

  6. Menambahkan mekanisme stop loss untuk mengendalikan risiko.

Meringkaskan

Strategi Brin Belt secara keseluruhan adalah strategi pelacakan tren yang andal. Ini dapat secara efektif menangkap fluktuasi harga yang tidak biasa. Namun, kita juga harus berhati-hati dengan penyimpangan dari kondisi aktual, dan terus mengoptimalkan parameter.

Kode Sumber Strategi
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="BB training No Repainting (OTS Mode)", overlay=true)


// Strategy Rules:
// 1. Enter trade when price crosses above the lower band
// 2. Exit trade when price touches the upper band
// 

// Chart Properties
testStartYear = input(2010, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)

// User provided values
smaLength = input(title="SMA Length", type=input.integer, defval=20) // Middle band period length (moving average)
stdLength = input(title="StdDev Length", type=input.integer, defval=20) // Range to apply bands to
ubOffset = input(title="Upper Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviations above MA
lbOffset = input(title="Lower Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviation below MA

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

smaValue = sma(close, smaLength) // Middle band
stdDev = stdev(close, stdLength)
upperBand = smaValue + stdDev * ubOffset // Top band
lowerBand = smaValue - stdDev * lbOffset // Bottom band

// Plot bands to chart
plot(series=smaValue, title="SMA", color=color.green)
plot(series=upperBand, title="UB", color=color.blue, linewidth=2)
plot(series=lowerBand, title="LB", color=color.blue, linewidth=2)

longCondition = (crossover(close, lowerBand))
closeLongCondition = (close >= upperBand)

if (longCondition and testPeriod())
    strategy.entry(id="CALL", long=true)

strategy.close(id="CALL", when=closeLongCondition)