Bollinger Bands Berasaskan Trend Mengikuti Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-18 16:37:56
Tag:

img

Ringkasan

Strategi ini menggunakan Bollinger Bands untuk menentukan arah trend harga digabungkan dengan purata bergerak pantas dan perlahan untuk memasuki kedudukan. Isyarat beli diaktifkan apabila harga memecahkan Bollinger tengah band dan purata bergerak pantas melintasi purata bergerak perlahan. Isyarat jual diaktifkan apabila harga memecahkan di bawah Bollinger tengah band dan purata bergerak pantas melintasi di bawah purata bergerak perlahan.

Logika Strategi

Strategi ini terutamanya terdiri daripada penunjuk Bollinger Bands dan Purata Bergerak.

PeraturanBollinger BandsBand tengah adalah purata bergerak mudah n hari. Band atas dan band bawah adalah k penyimpangan standard di atas dan di bawah band tengah. Apabila harga berhampiran dengan band atas, ia menunjukkan keadaan overbought. Apabila harga berhampiran dengan band bawah, ia menunjukkan keadaan oversold. Band tengah mewakili arah trend harga.

PeraturanPurata Bergerakmenggunakan purata bergerak pantas dan purata bergerak perlahan. purata bergerak pantas mempunyai tempoh 40 dan purata bergerak perlahan mempunyai tempoh 120. Apabila MA pantas melintasi MA perlahan, ia adalah isyarat beli. Apabila MA pantas melintasi di bawah MA perlahan, ia adalah isyarat jual.

Berdasarkan peraturan penunjuk di atas, isyarat perdagangan khusus strategi ini adalah:

Beli Isyarat: Harga tutup menembusi jalur tengah dan MA cepat melintasi MA perlahan

Jual Isyarat: Penembusan harga dekat di bawah jalur tengah dan penyeberangan MA pantas di bawah MA perlahan

Hentikan Kerugian: ATR yang menjurus stop loss, harga stop loss adalah harga semasa tolak 4 kali ATR

Analisis Kelebihan

Strategi ini menggabungkan Bollinger Bands dan Moving Averages, yang dapat menentukan arah trend harga dengan berkesan dan mengelakkan pembukaan kedudukan yang berlebihan semasa tempoh julat.

Band tengah Bollinger dapat mencerminkan trend harga dengan jelas. Apabila harga memecahkan jalur tengah, ia membentuk isyarat trend yang kuat. Band atas dan bawah dapat menilai keadaan overbought dan oversold dengan berkesan untuk mengelakkan mengejar paras tertinggi baru dan membunuh paras rendah semasa tempoh julat.

Salib emas dan salib mati MAs cepat dan perlahan juga merupakan kaedah yang biasa digunakan untuk menentukan trend.

ATR trailing stop loss menyesuaikan titik stop loss untuk menyesuaikan diri dengan turun naik pasaran, dengan berkesan mengawal kerugian kedudukan tunggal.

Analisis Risiko

Risiko terbesar strategi ini adalah bahawa harga boleh cepat menarik balik selepas melanggar jalur tengah, tidak dapat membuat keuntungan dengan berkesan. Ini akan mengakibatkan kerugian. Penyelesaian adalah untuk menyesuaikan parameter MA dengan sewajarnya untuk membuat penunjuk lebih sesuai dengan ciri pasaran.

Risiko lain adalah bahawa semasa tempoh julat, Bollinger Bands dan Moving Averages mungkin memberikan isyarat yang salah. Pada masa ini, kita harus mempertimbangkan melangkau isyarat perdagangan dan menunggu trend yang lebih jelas. atau mengurangkan saiz kedudukan dengan sewajarnya.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Penyesuaian parameter Bollinger Bands untuk menyesuaikan dengan ciri pasaran dalam tempoh yang berbeza

  2. Sesuaikan parameter MA yang cepat dan perlahan untuk lebih sesuai dengan instrumen dagangan tertentu

  3. Tambah penunjuk tambahan lain untuk gabungan untuk meningkatkan kestabilan strategi

  4. Mengoptimumkan kaedah saiz kedudukan, meningkatkan kedudukan semasa tempoh trend dan mengurangkan kedudukan semasa tempoh julat

  5. Uji kaedah stop loss yang berbeza untuk mencari penyelesaian yang lebih baik

Kesimpulan

Secara amnya, ini adalah trend yang biasa mengikuti strategi. Ia menggabungkan Bollinger Bands dan Moving Averages untuk menentukan trend harga dan peluang perdagangan. Isyarat strategi agak jelas, sesuai untuk perdagangan automatik. Tetapi ia juga mempunyai beberapa risiko, parameter dan peraturan yang perlu dioptimumkan untuk menyesuaikan diri dengan persekitaran pasaran yang lebih luas. Secara keseluruhan, kerangka strategi adalah layak dan mempunyai ruang yang besar untuk peningkatan.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
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/
// © Robrecht99

//@version=5
strategy("Trend Following with Bollinger Bands", overlay=true, margin_long=100, margin_short=100, pyramiding=4)

// Bollinger Bands //

length = input.int(20, minval=1, group="Bollinger Bands Inputs")
src = input(close, title="Source", group="Bollinger Bands Inputs")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500, group="Bollinger Bands Inputs")
plot(basis, "Basis", color=color.orange, offset = offset)
p1 = plot(upper, "Upper", color=color.orange, offset = offset)
p2 = plot(lower, "Lower", color=color.orange, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(255, 0, 255, 95))

// Moving Averages //

len1 = input.int(40, minval=1, title="Length Fast MA", group="Moving Average Inputs")
len2 = input.int(120, minval=1, title="Length Slow MA", group="Moving Average Inputs")
src1 = input(close, title="Source Fast MA")
src2 = input(close, title="Source Slow MA")
maColorFast = input.color(color.new(color.red, 0), title = "Color Fast MA", group = "Moving Average Inputs", inline = "maFast")
maColorSlow = input.color(color.new(color.purple, 0), title = "Color Slow MA", group = "Moving Average Inputs", inline = "maSlow")
fast = ta.ema(src1, len1) 
slow = ta.ema(src2, len2)
plot(fast, color=maColorFast, title="Fast EMA")
plot(slow, color=maColorSlow, title="Slow EMA")

// ATR Inputs //
strategy.initial_capital = 50000

lengthATR = input.int(title="ATR Period", defval=14, minval=1, group="ATR Input")
risk = input(title="Risk Per Trade", defval=0.01, group="ATR Input")
multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs")
atr = ta.atr(length)
amount = (risk * strategy.initial_capital / (2 * atr))

// Buy and Sell Conditions //

entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast

// Buy and Sell Signals //

if (close > basis and entrycondition2)
    strategy.entry("long", strategy.long, qty=amount)
    stoploss = close - atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (sellcondition1 and sellcondition2)
    strategy.close(id="long")

if (close < basis and sellcondition2)
    strategy.entry("short", strategy.short, qty=amount)
    stoploss = close + atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (entrycondition1 and entrycondition2)
    strategy.close(id="short")

Lebih lanjut