Strategi Perdagangan Frekuensi Tinggi Menggabungkan Bollinger Bands dan DCA

Penulis:ChaoZhang, Tanggal: 2024-03-29 16:20:13
Tag:

img

Gambaran umum

Strategi yang diberi nama DCA Booster (1 menit) adalah strategi perdagangan frekuensi tinggi yang beroperasi pada jangka waktu satu menit. Strategi ini menggabungkan teknik Bollinger Bands dan Dollar-Cost Averaging (DCA) untuk memanfaatkan fluktuasi pasar dengan melakukan beberapa pembelian dan penjualan, bertujuan untuk menghasilkan keuntungan. Ide utama dari strategi ini adalah: ketika harga jatuh di bawah Bollinger Band bawah selama dua periode berturut-turut, mulai membangun posisi menggunakan DCA; ketika harga naik di atas Bollinger Band atas, menutup semua posisi. Selain itu, strategi ini memungkinkan piramida, yang berarti dapat terus menambahkan posisi jika harga terus turun.

Prinsip Strategi

  1. Menghitung Bollinger Bands: Gunakan rata-rata bergerak sederhana dan standar deviasi untuk menghitung band atas dan bawah Bollinger Bands.
  2. Atur parameter DCA: Bagi sejumlah uang tetap menjadi beberapa bagian, masing-masing berfungsi sebagai modal untuk setiap posisi.
  3. Kondisi masuk: Ketika harga penutupan berada di bawah Bollinger Band bawah selama dua periode berturut-turut, mulailah membangun posisi. Tergantung pada apakah harga terus berada di bawah band bawah, strategi dapat membangun hingga 5 posisi.
  4. Kondisi keluar: Ketika harga melintasi atas Bollinger Band atas, tutup semua posisi.
  5. Pyramiding: Jika harga terus turun, strategi akan terus menambahkan posisi, hingga maksimal 5 posisi.
  6. Manajemen Posisi: Strategi mencatat status masuk dari setiap posisi dan menutup posisi yang sesuai ketika kondisi keluar terpenuhi.

Keuntungan Strategi

  1. Dengan menggabungkan Bollinger Bands dan teknik DCA, strategi dapat secara efektif menangkap volatilitas pasar dan mengurangi biaya pembelian rata-rata.
  2. Memungkinkan piramida memungkinkan strategi untuk terus membangun posisi ketika harga terus turun, meningkatkan peluang profitabilitas.
  3. Kondisi keluar sederhana dan langsung, memungkinkan untuk mengambil keuntungan cepat.
  4. Cocok untuk digunakan pada jangka waktu pendek seperti 1 menit, memungkinkan perdagangan frekuensi tinggi.

Risiko Strategi

  1. Jika pasar berfluktuasi drastis dan harga dengan cepat menembus Bollinger Band atas, strategi mungkin tidak dapat menutup posisi tepat waktu, yang mengakibatkan kerugian.
  2. Pyramiding dapat menyebabkan keterpaparan berlebihan ketika harga terus turun, meningkatkan risiko.
  3. Strategi ini mungkin tidak berjalan dengan baik di pasar yang bergolak, karena sering membeli dan menjual dapat menghasilkan biaya perdagangan yang tinggi.

Arah Optimasi Strategi

  1. Pertimbangkan untuk menambahkan stop-loss dalam kondisi keluar untuk mengontrol kerugian maksimum per perdagangan.
  2. Mengoptimalkan logika piramida, seperti menyesuaikan ukuran posisi berdasarkan besarnya penurunan harga, untuk menghindari keterlibatan yang berlebihan.
  3. Masukkan indikator lain, seperti RSI dan MACD, untuk meningkatkan akurasi entri dan keluar.
  4. Mengoptimalkan parameter, seperti periode dan pengganda standar deviasi Bollinger Bands, untuk beradaptasi dengan kondisi pasar yang berbeda.

Ringkasan

DCA Booster (1 menit) adalah strategi perdagangan frekuensi tinggi yang menggabungkan Bollinger Bands dan DCA. Ini bertujuan untuk menangkap fluktuasi pasar dan menghasilkan keuntungan dengan membangun posisi ketika harga berada di bawah Bollinger Band bawah dan menutup posisi ketika harga melintasi di atas Bollinger Band atas. Strategi ini memungkinkan piramida tetapi juga menghadapi risiko seperti volatilitas pasar yang drastis dan keterpaparan berlebihan. Dengan memperkenalkan stop-loss, mengoptimalkan logika piramida, menggabungkan indikator lain, dan mengoptimalkan parameter, kinerja strategi ini dapat ditingkatkan lebih lanjut.


/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DCA Booster (1 minute)",
  overlay=true )

// Parameters for Bollinger Bands
length = input.int(50, title="BB Length")
mult = input.float(3.0, title="BB Mult")

// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// Variables for DCA
cantidad_dolares = 50000
orden1 = cantidad_dolares / close
orden2 = orden1 * 1.2
orden3 = orden2 * 1.3
orden4 = orden3 * 1.5
orden5 = orden4 * 1.5

// Variables for tracking purchases
var comprado1 = false
var comprado2 = false
var comprado3 = false
var comprado4 = false
var comprado5 = false

// Buy conditions
condicion_compra1 = close < lower and close[1] < lower[1] and not comprado1
condicion_compra2 = close < lower and close[1] < lower[1] and comprado1 and not comprado2
condicion_compra3 = close < lower and close[1] < lower[1] and comprado2 and not comprado3
condicion_compra4 = close < lower and close[1] < lower[1] and comprado3 and not comprado4
condicion_compra5 = close < lower and close[1] < lower[1] and comprado4 and not comprado5
// Variables de control
var int consecutive_closes_below_lower = 0
var int consecutive_closes_above_upper = 0

// Entry logic
if condicion_compra1 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra1", strategy.long, qty=orden1)
        comprado1 := true
        consecutive_closes_below_lower := 0

if condicion_compra2 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra2", strategy.long, qty=orden2)
        comprado2 := true
        consecutive_closes_below_lower := 0

if condicion_compra3 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra3", strategy.long, qty=orden3)
        comprado3 := true
        consecutive_closes_below_lower := 0

if condicion_compra4 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra4", strategy.long, qty=orden4)
        comprado4 := true
        consecutive_closes_below_lower := 0

if condicion_compra5 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra5", strategy.long, qty=orden5)
        comprado5 := true
        consecutive_closes_below_lower := 0


// Sell conditions
if close > upper  and comprado1 and barstate.isconfirmed
    strategy.close("Compra1")
    comprado1 := false

if close > upper  and comprado2 and barstate.isconfirmed
    strategy.close("Compra2")
    comprado2 := false

if close > upper  and comprado3 and barstate.isconfirmed
    strategy.close("Compra3")
    comprado3 := false

if close > upper and comprado4 and barstate.isconfirmed
    strategy.close("Compra4")
    comprado4 := false

if close > upper and comprado5 and barstate.isconfirmed
    strategy.close("Compra5")
    comprado5 := false



Lebih banyak