Bollinger Band Breakout Trend Mengikuti Strategi


Tarikh penciptaan: 2023-09-22 14:31:17 Akhirnya diubah suai: 2023-09-22 14:31:17
Salin: 1 Bilangan klik: 678
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend berdasarkan indikator Bollinger Bands. Ia menggunakan terobosan Bollinger Bands ke bawah untuk menentukan arah trend dan membuka kedudukan yang sesuai. Apabila harga mula turun, ia menggunakan stop loss pengesanan dengan selang dinamik untuk keluar dari kedudukan dan mencapai keuntungan.

Prinsip Strategi

Strategi ini menggunakan indikator Brin Belt untuk menentukan arah trend. Brin Belt membina uptrend dengan mengira perbezaan piawai harga. Apabila harga menembusi uptrend, dianggap bahawa trend bermula ke atas; apabila harga menembusi downtrend, dianggap bahawa trend bermula ke bawah.

Logik urus niaga adalah seperti berikut:

  1. Hitung lintasan tengah, lintasan atas dan lintasan bawah.

  2. Apabila harga menembusi lintasan, buka lebih banyak; apabila harga menembusi lintasan, buka kosong.

  3. Menggunakan Tracking Stop Loss untuk mengawal risiko, berhenti ketika harga mula turun.

  4. Apabila ia kembali ke orbit Brin, ia kembali ke trend.

Menggunakan Brinband untuk menentukan arah trend, dan digabungkan dengan Tracking Stop Loss Dinamik, boleh mengawal risiko dengan berkesan.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan indikator Brin untuk menilai trend, mudah dan berkesan.

  2. Kombinasi penembusan entry dan trailing stop loss yang dinamik, dengan trend capture dan kawalan risiko.

  3. Struktur kod jelas dan ringkas, mudah difahami dan diubah suai.

  4. Parameter yang lebih sedikit, mudah untuk dioptimumkan.

  5. Sesuai untuk pelbagai jenis, fleksibel.

  6. “Saya tidak tahu apa-apa tentang apa yang berlaku, tetapi saya tahu bahawa ia adalah satu perkara yang tidak dapat dielakkan.

Analisis risiko

Risiko utama strategi ini ialah:

  1. Beringkas Brin hanya berdasarkan ciri-ciri statistik dan mempunyai risiko untuk melengkungkan kurva.

  2. Tidak dapat membezakan antara perkembangan dan trend sebenar, dan mungkin salah faham.

  3. Titik henti terlalu padat dan mungkin terjejas oleh pergerakan harga biasa.

  4. Kesan kos transaksi tidak diambil kira.

  5. Tempoh pengesanan terhad, mungkin terlalu sesuai.

Penyelesaian:

  1. Optimumkan parameter atau masukkan isyarat pengesahan penunjuk lain.

  2. Meningkatkan pengiktirafan gegaran dan saluran.

  3. Berdasarkan dinamika penyesuaian titik henti seperti ATR.

  4. Penambahan yuran, perhitungan mata.

  5. Menambah jangka masa pengesahan semula, pengesahan pelbagai pasaran.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Uji keserasian pelbagai indikator.

  2. Meningkatkan pengiktirafan ke atas perubahan trend.

  3. Memperkenalkan parameter pengoptimuman dinamik kaedah pembelajaran mesin.

  4. Mengoptimumkan strategi hentikan kerugian berdasarkan tinjauan semula.

  5. Penilaian dan kesan kos transaksi.

  6. Mengoptimumkan ruang parameter untuk mencari parameter yang optimum Settings。

  7. Meningkatkan pengurusan wang untuk mengawal risiko kedudukan.

ringkaskan

Strategi ini menilai arah trend melalui indikator Brinband, dan dilengkapi dengan pengesanan berhenti untuk mengawal risiko, logik perdagangan keseluruhan sederhana dan jelas. Strategi ini mempunyai kesan tangkapan trend yang baik, tetapi dapat diperbaiki dengan memperkenalkan lebih banyak petunjuk teknikal, parameter pengoptimuman, dan memasukkan pengiraan kos untuk menjadikan strategi lebih stabil dan dipercayai.

Kod sumber strategi
/*backtest
start: 2022-09-15 00:00:00
end: 2023-09-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB Strategy",initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, commission_type = strategy.commission.percent, commission_value = 0.3, max_bars_back = 1000, overlay=true)

// Inputs //

sma = input(20,  minval=1)
mult   = input(1.2, minval=0.001, maxval=50)
src = input(close)

// alert msg  //

message_long_entry  = input("long entry")
message_short_entry = input("short entry")

// Calculations //

basis = sma(close, sma)
dev   = mult * stdev(close, sma)

upper = basis + dev
lower = basis - dev

// Backtest //
fromyear = input(2019, defval = 2019, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(1, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

leverage = input(1, "Leverage")

term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

// PLOT //

plot(basis, color = color.gray,  linewidth = 2)
lu = plot(upper, color = color.green, linewidth = 2)
ll = plot(lower, color = color.red,   linewidth = 2)

fill(lu, ll, color = color.gray)

// Signals //

long  = crossover(close, upper)
short = crossunder(close, lower)

// Strategy entry //
strategy.initial_capital = 50000
if (long and term)
    strategy.entry("long",  strategy.long, qty=strategy.initial_capital/close*leverage, when = long and barstate.isconfirmed, alert_message = message_long_entry)
    
if (short and term)
    strategy.entry("short",  strategy.short, qty=strategy.initial_capital/close*leverage, when = short and barstate.isconfirmed, alert_message = message_short_entry)

// strategy exit //

strategy.exit("long tsl", "long", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)
strategy.exit("short tsl", "short", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)