Strategi Bollinger Bands Crossover rata-rata bergerak tunggal

Penulis:ChaoZhang, Tanggal: 2023-12-22 14:10:14
Tag:

img

Gambaran umum

Strategi ini didasarkan pada rata-rata bergerak tunggal dan indikator Bollinger Bands. Ini menghasilkan sinyal beli dan jual ketika harga menembus pita atas atau bawah Bollinger Bands. Juga menggabungkan arah rata-rata bergerak untuk menentukan tren, hanya membutuhkan waktu lama ketika MA naik dan pendek ketika MA turun.

Logika Strategi

Strategi ini terutama menggunakan indikator berikut untuk penilaian:

  1. Moving Average (SMA): Rata-rata bergerak sederhana dari harga CLOSE, yang mewakili tren harga.
  2. Upper Bollinger Band: Melambangkan tingkat resistensi, breakout menunjukkan momentum yang kuat.
  3. Bollinger Band bawah: Mewakili tingkat dukungan, perpecahan menunjukkan kemungkinan pembalikan tren.

Sinyal perdagangan khusus adalah:

  1. Buy Signal: Ketika harga close menembus band atas dan MA naik.
  2. Sinyal Jual: Ketika harga penutupan menembus band bawah dan MA menurun.

Dengan menggabungkan tren dan breakout, sinyal perdagangan menjadi lebih dapat diandalkan dan menghindari false breakout.

Keuntungan

  1. Aturan sederhana dan jelas, mudah dimengerti dan diterapkan.
  2. MA menilai kecenderungan umum untuk menghindari bull short dan bear long market.
  3. Bollinger Bands band atas & bawah menemukan titik pecah lokal dengan akurat.
  4. Pengeluaran yang relatif kecil, sesuai dengan preferensi risiko kebanyakan orang.

Risiko

  1. Indikator tunggal cenderung menghasilkan sinyal palsu, dapat ditingkatkan dengan pengaturan parameter.
  2. Tidak dapat mengatasi fluktuasi pasar yang besar, dapat menyesuaikan stop loss sesuai.
  3. Tidak dapat mendapatkan keuntungan lebih dari tren mega, dapat mempertimbangkan ukuran posisi yang lebih besar.

Peningkatan

  1. Mengoptimalkan periode MA agar sesuai dengan lebih banyak produk.
  2. Tambahkan filter lain seperti MACD untuk mengurangi sinyal palsu.
  3. Sesuaikan stop loss secara dinamis untuk membatasi drawdown maksimum.
  4. Memperkenalkan manajemen uang untuk menstabilkan kinerja PnL.

Kesimpulan

Secara umum ini adalah strategi sederhana namun praktis yang cocok untuk kebanyakan orang. Dengan beberapa penyesuaian dan optimasi, ini bisa lebih kuat dan beradaptasi dengan lebih banyak situasi pasar. Ini adalah strategi yang layak direkomendasikan.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="single sma cross", shorttitle="single sma cross",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,overlay=true,currency="USD")
s=input(title="s",defval=90)
p=input(title="p",type=float,defval=.9,step=.1)

sa=sma(close,s)
plot(sa,color=red,linewidth=3)
band=stdev(close,s)*p
plot(band+sa,color=lime,title="")
plot(-band+sa,color=lime,title="")

// ===Strategy Orders============================================= ========
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

longCondition = crossover(close,sa+band) and rising(sa,5)
shortCondition = crossunder(close,sa-band) and falling(sa,5)
crossmid = cross(close,sa)


strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = shortCondition)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = longCondition)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)

Lebih banyak