Bollinger Bands Berbasis Tren Mengikuti Strategi

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

img

Gambaran umum

Strategi ini menggunakan Bollinger Bands untuk menentukan arah tren harga dikombinasikan dengan rata-rata bergerak cepat dan lambat untuk memasuki posisi. Sinyal beli dipicu ketika harga menembus Bollinger middle band dan rata-rata bergerak cepat melintasi rata-rata bergerak lambat. Sinyal jual dipicu ketika harga menembus di bawah Bollinger middle band dan rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat. Metode stop loss adalah ATR trailing stop loss.

Logika Strategi

Strategi ini terutama terdiri dari indikator Bollinger Bands dan Moving Averages.

PeraturanBollinger BandsBand atas dan band bawah adalah k deviasi standar di atas dan di bawah band tengah. Ketika harga dekat dengan band atas, itu menunjukkan kondisi overbought. Ketika harga dekat dengan band bawah, itu menunjukkan kondisi oversold. Band tengah mewakili arah tren harga.

PeraturanRata-rata Bergerakmenggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat. rata-rata bergerak cepat memiliki periode 40 dan rata-rata bergerak lambat memiliki periode 120. ketika MA cepat melintasi MA lambat, itu adalah sinyal beli. ketika MA cepat melintasi di bawah MA lambat, itu adalah sinyal jual.

Berdasarkan aturan indikator di atas, sinyal perdagangan khusus dari strategi ini adalah:

Sinyal Beli: Harga tutup menembus jalur tengah dan MA cepat melintasi MA lambat

Jual Sinyal: Penembusan harga dekat di bawah band tengah dan penyeberangan MA cepat di bawah MA lambat

Hentikan Kerugian: ATR trailing stop loss, harga stop loss adalah harga saat ini dikurangi 4 kali ATR

Analisis Keuntungan

Strategi ini menggabungkan Bollinger Bands dan Moving Averages, yang dapat secara efektif menentukan arah tren harga dan menghindari pembukaan posisi yang berlebihan selama periode rentang.

Band tengah Bollinger dapat dengan jelas mencerminkan tren harga. Ketika harga menembus band tengah, itu membentuk sinyal tren yang kuat. Band atas dan bawah dapat secara efektif menilai kondisi overbought dan oversold untuk menghindari mengejar tinggi baru dan membunuh terendah selama periode berkisar.

Salib emas dan salib mati MAs cepat dan lambat juga merupakan metode yang umum digunakan untuk menentukan tren.

ATR trailing stop loss menyesuaikan titik stop loss untuk beradaptasi dengan fluktuasi pasar, secara efektif mengendalikan kerugian posisi tunggal.

Analisis Risiko

Risiko terbesar dari strategi ini adalah bahwa harga dapat dengan cepat mundur setelah melanggar pita tengah, tidak dapat menghasilkan keuntungan secara efektif. Ini akan mengakibatkan kerugian. Solusinya adalah dengan menyesuaikan parameter MA dengan tepat untuk membuat indikator lebih sesuai dengan karakteristik pasar.

Risiko lain adalah bahwa selama periode rentang, Bollinger Bands dan Moving Averages dapat memberikan sinyal yang salah. Pada saat ini, kita harus mempertimbangkan untuk melewatkan sinyal perdagangan dan menunggu tren yang lebih jelas. atau mengurangi ukuran posisi dengan tepat.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Sesuaikan parameter Bollinger Bands untuk menyesuaikan dengan karakteristik pasar dari periode yang berbeda

  2. Sesuaikan parameter MA cepat dan lambat agar lebih sesuai dengan instrumen perdagangan tertentu

  3. Tambahkan indikator tambahan lainnya untuk kombinasi untuk meningkatkan stabilitas strategi

  4. Mengoptimalkan metode ukuran posisi, meningkatkan posisi selama periode tren dan mengurangi posisi selama periode rentang

  5. Uji metode stop loss yang berbeda untuk menemukan solusi yang lebih baik

Kesimpulan

Secara umum, ini adalah tren yang khas mengikuti strategi. Ini menggabungkan Bollinger Bands dan Moving Averages untuk menentukan tren harga dan peluang perdagangan. Sinyal strategi relatif jelas, cocok untuk perdagangan otomatis. Tapi juga memiliki beberapa risiko, parameter dan aturan yang perlu dioptimalkan untuk beradaptasi dengan lingkungan pasar yang lebih luas. Secara keseluruhan, kerangka strategi layak dan memiliki ruang yang luas untuk perbaikan.


/*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 banyak