Strategi Perdagangan Momentum Breakout Bollinger Band


Tanggal Pembuatan: 2024-02-05 10:53:46 Akhirnya memodifikasi: 2024-02-05 10:53:46
menyalin: 0 Jumlah klik: 699
1
fokus pada
1617
Pengikut

Strategi Perdagangan Momentum Breakout Bollinger Band

Ringkasan

Strategi ini menggabungkan indikator Bollinger Bands dan volume trading untuk mengidentifikasi peluang kuat untuk menembus Bollinger Bands dalam lingkungan volume trading yang tinggi, dan melakukan pembelian. Ini juga menggabungkan indikator Moving Average untuk menentukan arah tren dan mengurangi risiko posisi terkuak.

Prinsip Strategi

  1. Menggunakan indikator Brin-Band untuk menentukan apakah harga telah menembus Brin-Band.
  2. Menggunakan indikator volume transaksi untuk menilai apakah volume transaksi saat ini secara signifikan lebih tinggi dari volume transaksi rata-rata di masa lalu.
  3. Pada saat volume trading aktif, harga akan menembus Bollinger Bands dan melakukan buy/sell.
  4. Menggunakan indikator rata-rata bergerak untuk menilai tren jangka pendek dan menengah, dan menghentikan posisi pada saat tren tidak menguntungkan.

Strategi ini terutama mempertimbangkan tiga faktor: harga, momentum dan tren. Ketika harga menerobos Brin dan memasuki zona beli, arus besar dana menyebabkan lonjakan volume perdagangan, yang menunjukkan ada dukungan dan energi tren yang kuat, maka bukalah lebih banyak posisi.

Keunggulan Strategis

  1. Sinyal perdagangan akurat, menghindari false breakout. Dengan indikator volume perdagangan, hanya membeli dalam situasi yang benar-benar kuat, mengurangi risiko posisi.

  2. Dengan mengevaluasi arah tren dari moving averages, Anda dapat menghentikan kerugian tepat waktu dan mengurangi kerugian pada posisi kosong.

  3. Strategi kuantitatif untuk pengambilan keputusan yang mengintegrasikan berbagai indikator, parameter dapat disesuaikan secara fleksibel untuk varietas dan siklus yang berbeda.

  4. Struktur kode yang jelas, meningkatkan keterbacaan kebijakan. Membedakan modul untuk mengorganisir penghitungan indikator, sinyal perdagangan, logika pembukaan gudang, dan lain-lain, untuk memudahkan pemeliharaan di kemudian hari.

Risiko Strategis

  1. Brin band sebagai indikator rentang fluktuasi, mungkin tidak berlaku untuk situasi yang ekstrim. Jika terjadi fluktuasi yang tidak biasa, sinyal beli akan terlewatkan atau menghasilkan sinyal palsu.

  2. Strategi tidak dapat menghasilkan keuntungan jika volume perdagangan tidak cukup. Jika volume perdagangan pasar secara keseluruhan tidak cukup, bahkan menghasilkan sinyal beli tidak dapat menghasilkan keuntungan.

  3. Rata-rata bergerak juga dapat menjadi indikator yang tidak efektif untuk menentukan tren, dan tidak dapat sepenuhnya menjamin penghentian kerugian.

  4. Penetapan parameter yang tidak tepat juga dapat mempengaruhi keuntungan strategi. Misalnya, pengaturan jendela waktu perdagangan terlalu pendek, akan kehilangan pembalikan tren, dll.

Arah optimasi strategi

  1. Anda dapat mempertimbangkan untuk menambahkan lebih banyak indikator teknis untuk menilai tren, mendukung titik resistensi, dan meningkatkan efek stop loss, seperti bentuk K-line, indikator saluran, dan titik pendukung utama.

  2. Meningkatkan kemungkinan model pembelajaran mesin untuk menilai terobosan yang sebenarnya dan mengurangi tingkat sinyal palsu. Model pembelajaran mendalam seperti LSTM.

  3. Mengoptimalkan strategi pengelolaan dana, seperti menyesuaikan posisi secara dinamis, melacak garis stop loss, dan lain-lain. Mengurangi dampak kerugian tunggal.

  4. Uji lebih banyak varietas dan parameter siklus waktu. Sesuaikan parameter Brin Belt, parameter volume transaksi, dan lain-lain, untuk mengoptimalkan strategi adaptasi pasar.

Meringkaskan

Strategi ini mengintegrasikan indikator Bollinger Bands dan volume perdagangan untuk mengidentifikasi kapan tepat untuk membeli dalam situasi yang kuat. Selain itu, menggunakan indikator moving average untuk menilai tren dan menghentikan kerugian tepat waktu. Dengan akurasi dan kemampuan menghentikan kerugian yang lebih tinggi dibandingkan dengan indikator teknis tunggal. Dengan desain modular, penilaian tren dan strategi stop loss, ini membentuk strategi perdagangan terobosan yang mudah dioptimalkan.

Kode Sumber Strategi
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KAIST291

//@version=4
initial_capital=1000
strategy("prototype", overlay=true)
length1=input(1)
length3=input(3)
length7=input(7)
length9=input(9)
length14=input(14)
length20=input(20)
length60=input(60)
length120=input(120)
ma1= sma(close,length1)
ma3= sma(close,length3)
ma7= sma(close,length7)
ma9= sma(close,length9)
ma14=sma(close,length14)
ma20=sma(close,length20)
ma60=sma(close,length60)
ma120=sma(close,length120)
rsi=rsi(close,14)
// BUYING VOLUME AND SELLING VOLUME //
BV = iff( (high==low), 0, volume*(close-low)/(high-low))
SV = iff( (high==low), 0, volume*(high-close)/(high-low))
vol = iff(volume > 0, volume, 1)
dailyLength = input(title = "Daily MA length", type = input.integer, defval = 50, minval = 1, maxval = 100)
weeklyLength = input(title = "Weekly MA length", type = input.integer, defval = 10, minval = 1, maxval = 100)
//-----------------------------------------------------------
Davgvol = sma(volume, dailyLength)
Wavgvol = sma(volume, weeklyLength)
//-----------------------------------------------------------
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
mult2= input(1.5, minval=0.001, maxval=50, title="exp")
mult3= input(1.0, minval=0.001, maxval=50, title="exp1")
mult4= input(2.5, minval=0.001, maxval=50, title="exp2")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
dev2= mult2 * stdev(src, length)
Supper= basis + dev2
Slower= basis - dev2
dev3= mult3 * stdev(src, length)
upper1= basis + dev3
lower1= basis - dev3
dev4= mult4 * stdev(src, length)
upper2=basis + dev4
lower2=basis - dev4
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
//----------------------------------------------------
exit=(close-strategy.position_avg_price / strategy.position_avg_price*100)
bull=( BV>SV and BV>Davgvol)
bull2=(BV>SV and BV>Davgvol)
bux =(close>Supper and close>Slower and volume<Davgvol)
bear=(SV>BV and SV>Davgvol)
con=(BV>Wavgvol and rsi>80)
imInATrade = strategy.position_size != 0
highestPriceAfterEntry = valuewhen(imInATrade, high, 0)
// STRATEGY LONG //
if (bull and close>upper1 and close>Supper and high>upper and rsi<80)
    strategy.entry("Long",strategy.long)

if (strategy.position_avg_price*1.02<close)
    strategy.close("Long")
else if (low<ma9 and strategy.position_avg_price<close)
    strategy.close("Long")
else if (ma20>close and strategy.position_avg_price<close )
    strategy.close("Long")
else if (rsi>80 and strategy.position_avg_price<close)
    strategy.close("Long")
else if (strategy.openprofit < strategy.position_avg_price*0.9-close)
    strategy.close("Long")
else if (high<upper and strategy.position_avg_price<close)
    strategy.close("Long")
//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////
strategy.entry("Short",strategy.short,when=low<ma20 and low<lower1 and close<Slower and crossunder(ma60,ma120))

if (close<strategy.position_avg_price*0.98)
    strategy.close("Short")

else if (rsi<20)
    strategy.close("Short")