Strategi perdagangan mengikuti tren adaptif berdasarkan penembusan volume yang digerakkan Bollinger

BB stdev SMA EMA SMMA WMA VWMA ATR
Tanggal Pembuatan: 2024-12-13 11:43:10 Akhirnya memodifikasi: 2024-12-13 11:43:10
menyalin: 2 Jumlah klik: 420
1
fokus pada
1617
Pengikut

Strategi perdagangan mengikuti tren adaptif berdasarkan penembusan volume yang digerakkan Bollinger

Ringkasan

Strategi ini adalah sistem perdagangan terobosan momentum berdasarkan Bollinger Bands, yang menangkap peluang tren melalui hubungan harga dengan Bollinger Bands. Strategi ini menggunakan mekanisme pilihan jenis rata-rata yang disesuaikan, yang dikombinasikan dengan saluran standard deviasi untuk mengidentifikasi karakteristik pasar yang berfluktuasi, yang sangat cocok untuk digunakan dalam lingkungan pasar yang lebih berfluktuasi.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:

  1. Rata-rata rata-rata bergerak yang dapat disesuaikan (termasuk SMA, EMA, SMMA, WMA, dan VWMA) digunakan untuk menghitung lintasan tengah pita Bollinger Bands.
  2. Mengidentifikasi posisi naik dan turun rel melalui perkalian dari perbedaan standar ((default 2.0) dinamis.
  3. Pada saat harga terjatuh, lebih banyak masuk menunjukkan adanya tren terjatuh yang kuat.
  4. Ketika harga turun ke bawah, maka akan muncul tanda-tanda bahwa tren naik mungkin sudah berakhir.
  5. Sistem ini memiliki pertimbangan biaya transaksi ((0.1%) dan slippage ((3 poin) yang lebih sesuai dengan lingkungan transaksi yang sebenarnya.

Keunggulan Strategis

  1. Adaptabilitas: Strategi dapat beradaptasi dengan kondisi pasar yang berbeda dengan pilihan berbagai jenis garis rata.
  2. Pengendalian risiko yang lebih baik: Pengendalian risiko yang lebih jelas disediakan dengan Bollinger Band as a stop loss.
  3. Pengelolaan dana yang wajar: Menggunakan manajemen rasio posisi, menghindari risiko yang ditimbulkan oleh jumlah tetap.
  4. Biaya transaksi dipertimbangkan secara menyeluruh: termasuk komisi dan faktor slippage, hasil retrospektif lebih dekat dengan yang sebenarnya.
  5. Fleksibilitas kerangka waktu: Anda dapat memilih jangka waktu perdagangan tertentu dengan pengaturan parameter.

Risiko Strategis

  1. Risiko terobosan palsu: sinyal terobosan palsu yang mungkin sering terjadi di pasar yang bergejolak. Solusi: Anda dapat menambahkan indikator konfirmasi atau mekanisme penundaan masuk.
  2. Risiko Trend Reversal: Risiko terjadinya kerugian yang lebih besar jika pasar yang sedang tren tiba-tiba berbalik. Solusi: Anda bisa menambahkan filter intensitas tren.
  3. Sensitivitas parameter: Kombinasi parameter yang berbeda dapat menyebabkan perbedaan besar dalam kinerja strategi. Solusi: Optimasi parameter yang memadai dan pengujian stabilitas diperlukan.

Arah optimasi strategi

  1. Ini adalah indikator intensitas tren:
  • Anda dapat menambahkan ADX atau indikator serupa untuk menyaring sinyal pasar yang sedang tren
  • Hal ini dapat mengurangi kerugian akibat penembakan palsu.
  1. Mengoptimalkan mekanisme penghentian kerugian:
  • Dapat melakukan stop loss dinamis, seperti tracking stop loss
  • Ini akan membantu Anda mendapatkan keuntungan lebih besar jika tren terus berlanjut.
  1. Menambahkan filter transaksi:
  • Sinyal konfirmasi berdasarkan volume transaksi
  • Hindari transaksi di lingkungan yang kurang likuid
  1. Meningkatkan mekanisme pendaftaran:
  • Mekanisme yang dapat meningkatkan pengambilan kembali
  • Membantu Anda mendapatkan harga tiket yang lebih baik

Meringkaskan

Ini adalah strategi pelacakan tren yang dirancang secara rasional dan logis. Ini menangkap dinamika pasar melalui karakteristik dinamis dari Bollinger Bands, dan memiliki mekanisme pengendalian risiko yang baik. Strategi ini sangat dapat disesuaikan, dapat disesuaikan dengan lingkungan pasar yang berbeda melalui penyesuaian parameter.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bollinger Bands", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)

// Date range inputs
startYear = input.int(2018, "Start Year", minval=1970, maxval=2100)
startMonth = input.int(1, "Start Month", minval=1, maxval=12)
startDay = input.int(1, "Start Day", minval=1, maxval=31)
endYear = input.int(2069, "End Year", minval=1970, maxval=2100)
endMonth = input.int(12, "End Month", minval=1, maxval=12)
endDay = input.int(31, "End Day", minval=1, maxval=31)

// Time range
startTime = timestamp("GMT+0", startYear, startMonth, startDay, 0, 0)
endTime = timestamp("GMT+0", endYear, endMonth, endDay, 23, 59)

// Moving average function
ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Calculate Bollinger Bands
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot
plot(basis, "Basis", color=#2962FF, offset=offset)
p1 = plot(upper, "Upper", color=#F23645, offset=offset)
p2 = plot(lower, "Lower", color=#089981, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))

// Strategy logic: Only go long and flat
inDateRange = time >= startTime and time <= endTime
noPosition = strategy.position_size == 0
longPosition = strategy.position_size > 0

// Buy if close is above upper band
if inDateRange and noPosition and close > upper
    strategy.entry("Long", strategy.long)

// Sell/Exit if close is below lower band
if inDateRange and longPosition and close < lower
    strategy.close("Long")