Strategi Perdagangan Pembalikan Purata Berdasarkan Bollinger Bands dan Rasio Emas

Penulis:ChaoZhang, Tarikh: 2023-11-16 16:52:55
Tag:

img

Ringkasan

Strategi ini menggunakan garisan nisbah emas Bollinger Bands digabungkan dengan pembentukan purata bergerak untuk menukar pembalikan purata.

Logika Strategi

  1. Mengira Bollinger Bands band tengah, band atas dan band bawah nisbah emas
  • Band tengah: vwma n tempoh
  • Garis atas: Garis tengah + penyimpangan standard k * n tempoh
  • Band bawah nisbah emas: Band tengah - 0.618 * penyimpangan standard tempoh n
  1. Pembentukan hakim
  • MA 50 hari di atas MA 200 hari, menunjukkan trend menaik
  • Harga menyentuh atau di bawah band bawah nisbah emas, sebagai isyarat beli
  1. Keluar
  • Apabila harga melanggar band atas BB, harga dianggap telah berpindah dari band bawah, kedudukan dekat
  1. Stop loss
  • Tetapkan peratusan stop loss tetap, contohnya 5%

Kelebihan

  1. Menggunakan vwma bukannya sma untuk garis tengah BB lebih mencerminkan pergerakan harga

  2. Nisbah emas adalah sokongan / rintangan penting, menyediakan asas untuk pembalikan

  3. MA dalam trend menaik memastikan trend keseluruhan naik

  4. Pengendalian Stop Loss tetap untuk setiap perdagangan

Risiko

  1. Garis nisbah emas tidak dijamin sokongan, harga boleh memecahkan melalui

  2. Stop loss tetap boleh menjadi sewenang-wenang, harus mempertimbangkan penyesuaian berdasarkan turun naik

  3. MA uptrend boleh menjadi pecah palsu, harus memeriksa lebih banyak penunjuk

  4. Tidak pasti panjang pembalikan, memerlukan keuntungan yang munasabah mengambil keluar

Peningkatan

  1. Uji kombinasi parameter yang berbeza seperti tempoh BB, pengganda SD, peratusan stop loss tetap dan lain-lain.

  2. Tambah lebih banyak penunjuk untuk menentukan trend pasaran dan kebarangkalian pembalikan, contohnya MACD, KD dll.

  3. Pertimbangkan berhenti dinamik, seperti ATR atau berhenti belakang

  4. Mengoptimumkan mengambil keuntungan seperti bergerak berhenti keuntungan, mengambil keuntungan separa dan sebagainya

Ringkasan

Perdagangan strategi ini bermaksud pembalikan menggunakan garis nisbah emas BB, dengan logik yang jelas, parameter mudah, dan penurunan yang boleh dikawal. tetapi juga mempunyai risiko, memerlukan pengujian dan pengoptimuman lanjut, menambah lebih banyak penunjuk teknikal untuk trend dan berhenti / keluar yang lebih baik sebelum penggunaan sebenar. Secara keseluruhan memberikan idea menggunakan nisbah emas dalam perdagangan kuant, bernilai diteroka lebih lanjut.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
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/
// © mohanee

//@version=4

strategy(title="Bollinger Band with Fib Golden Ratio (0.618)",  shorttitle="Bollinger Band with Fib Golden Ratio" , overlay=true, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  

length = input(50,title="BB Length" , minval=1)
src1 = input(hlc3, title="Source")
//mult1 = input(1.33, minval=0.001, maxval=50)
mult = input(1.5,title="multplier", minval=0.001, maxval=50)

stopLoss=input(5,title="Stop Loss",minval=1)

basis = vwma(src1, length)
dev = mult * stdev(src1, length)

//dev3 = mult3 * stdev(src, length)

upper_618= basis + (0.618*dev)
lower_618= basis - (0.618*dev)

//lower_618_dev3= basis - (0.618*dev3)



plot_upper618= plot(upper_618, color=color.purple, linewidth=2, title="0.618")
plot(basis, color=color.purple,style=plot.style_circles,  linewidth=2)

plot_lower618= plot(lower_618, color=color.purple, linewidth=2, title="0.618 entry")
//plot_lower618_dev3= plot(lower_618_dev3, color=color.red, linewidth=1, title="0.618 stop")

//plot_lower618= plot(lower_618, color=color.purple, linewidth=1, title="0.618 entry")

ema200=ema(close,200)
ema50=ema(close,50)

plot (ema200, title="ema200", color=color.orange, linewidth=2)
plot (ema50, title="ema50", color=color.blue , linewidth=2)


longCondition= ema50 > ema200

strategy.entry(id="BB_Fib618", long=true, when = longCondition and ( close < lower_618  or  low <= lower_618)  )

strategy.close(id="BB_Fib618",  comment="points="+tostring(close - strategy.position_avg_price,  "###.##") , when = strategy.position_size >= 1  and crossover(close,upper_618 )) 

//stoploss exit
stopLossVal = strategy.position_size>=1 ?  strategy.position_avg_price * ( 1 - (stopLoss/100) ) : 0.00
strategy.close(id="BB_Fib618", comment="SL="+tostring(close - strategy.position_avg_price,  "###.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //and close > strategy.position_avg_price )


Lebih lanjut