Aliran penyesuaian mengikut strategi dagangan berdasarkan penembusan volum dipacu Bollinger

BB stdev SMA EMA SMMA WMA VWMA ATR
Tarikh penciptaan: 2024-12-13 11:43:10 Akhirnya diubah suai: 2024-12-13 11:43:10
Salin: 2 Bilangan klik: 420
1
fokus pada
1617
Pengikut

Aliran penyesuaian mengikut strategi dagangan berdasarkan penembusan volum dipacu Bollinger

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan terobosan momentum yang berdasarkan Bollinger Bands, yang menangkap peluang yang sedang berkembang melalui hubungan harga dengan Bollinger Bands. Strategi ini menggunakan mekanisme pilihan jenis garis sejajar yang disesuaikan, digabungkan dengan saluran perbezaan piawai untuk mengenal pasti ciri-ciri turun naik pasaran, yang sangat sesuai untuk digunakan dalam persekitaran pasaran yang lebih bergelombang.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Menggunakan purata bergerak yang boleh disesuaikan (termasuk SMA, EMA, SMMA, WMA, VWMA) untuk mengira lintasan tengah jalur Bollinger.
  2. Mengenali kedudukan naik dan turun rel secara dinamik melalui perkalian perbezaan piawai ((default 2.0)).
  3. Penarikan lebih banyak apabila harga melangkaui landasan, menunjukkan pembentukan trend melangkaui kuat.
  4. Apabila harga jatuh ke bawah, ia menunjukkan bahawa trend menaik mungkin telah berakhir.
  5. Sistem ini mempunyai pertimbangan kos dagangan ((0.1%) dan slippage ((3 mata) yang lebih sesuai dengan persekitaran dagangan sebenar.

Kelebihan Strategik

  1. Adaptif: Dengan pelbagai jenis garis rata, strategi dapat disesuaikan dengan keadaan pasaran yang berbeza.
  2. Pengendalian risiko yang sempurna: Pengendalian risiko yang jelas disediakan dengan menggunakan jalur bawah Bollinger sebagai titik hentian.
  3. Pengurusan dana yang munasabah: Menggunakan pengurusan perkadaran kedudukan, mengelakkan risiko yang dibawa oleh nombor tetap.
  4. Kos urus niaga dipertimbangkan dengan baik: termasuk komisen dan faktor slip, dan hasil pengesanan balik lebih dekat dengan yang sebenar.
  5. Fleksibiliti jangka masa: anda boleh memilih jangka masa dagangan tertentu dengan menetapkan parameter.

Risiko Strategik

  1. Risiko penembusan palsu: Isyarat penembusan palsu yang mungkin berlaku dalam pasaran yang bergolak. Penyelesaian: Anda boleh menambah penunjuk pengesahan atau mekanisme kelewatan kemasukan.
  2. Risiko trend reversal: risiko kerugian yang besar boleh berlaku jika pasaran yang sedang dalam trend yang kuat tiba-tiba berbalik. Penyelesaian: Anda boleh menambah penapis kekuatan trend.
  3. Kepekaan parameter: Kombinasi parameter yang berbeza boleh membawa kepada perbezaan besar dalam prestasi strategi. Penyelesaian: Optimasi parameter dan pengujian ketahanan diperlukan.

Arah pengoptimuman strategi

  1. Ini menunjukkan bahawa trend ini tidak akan berlaku dalam jangka masa yang lama.
  • Anda boleh menambah ADX atau indikator serupa untuk menapis isyarat pasaran yang lemah
  • Ini boleh mengurangkan kerosakan akibat penembusan palsu
  1. Mengoptimumkan kawalan kerugian:
  • Membolehkan penutupan dinamik, seperti penutupan jejak
  • Membantu untuk mendapatkan keuntungan yang lebih besar jika trend berterusan
  1. Menambah penapis transaksi:
  • Isyarat pengesahan berdasarkan jumlah transaksi
  • Elakkan berdagang dalam keadaan kurang kecairan
  1. Meningkatkan mekanisme kemasukan:
  • Mekanisme yang boleh meningkatkan kemasukan semula
  • Membantu untuk mendapatkan harga masuk yang lebih baik

ringkaskan

Ini adalah strategi trend-tracking yang direka dengan logik dan logik yang jelas. Ia menangkap pergerakan pasaran melalui ciri-ciri dinamik Bollinger Bands, dan mempunyai mekanisme kawalan risiko yang baik. Strategi ini sangat disesuaikan, dan boleh disesuaikan dengan keadaan pasaran yang berbeza melalui penyesuaian parameter.

Kod 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")