Sumber dimuat naik... memuat...

Trend Mengikut Strategi Berdasarkan Bollinger Band Oscillator

Penulis:ChaoZhang, Tarikh: 2023-10-10 10:54:05
Tag:

Ringkasan

Idea utama strategi ini adalah untuk mengenal pasti trend menggunakan Bollinger Band Oscillator dan memasuki kedudukan apabila trend berubah. Ia pergi lama apabila harga memecahkan di atas band atas dan pergi pendek apabila harga memecahkan di bawah band bawah, dengan trend berikut pendekatan keuntungan.

Logika Strategi

Strategi ini terutamanya menggunakan Bollinger Band Oscillator untuk menentukan arah trend. Rumus untuk BBO adalah:

BBO = (Close - N-day Moving Average) / (2 * N-day Standard Deviation) * 100

Di mana Close adalah harga penutupan, N-hari Moving Average adalah N-hari sederhana bergerak purata penutupan, dan N-hari Standard Deviation adalah N-hari standard deviasi penutupan.

Strategi ini mula-mula mengira BBO 65 hari, kemudian purata bergerak 30 hari BBO. Apabila BBO melintasi di atas MA, ia menandakan trend menaik, pergi panjang. Apabila BBO melintasi di bawah MA, ia menandakan trend menurun, pergi pendek.

Selepas memasuki kedudukan, strategi menggunakan stop loss bergerak, fixed take profit dan trailing stop loss untuk mengawal risiko dan mengunci keuntungan. Parameter boleh dioptimumkan berdasarkan hasil backtest.

Kelebihan

  1. BBO sensitif terhadap perubahan trend.

  2. Memindahkan stop loss mengawal kerugian individu apabila trend berbalik.

  3. Fixed mengambil keuntungan kunci dalam keuntungan apabila trend adalah betul.

  4. Penghentian kerugian menyedarkan keuntungan untuk satu perdagangan.

  5. Strategi ini mudah dan intuitif.

Risiko

  1. BBO boleh memberi isyarat palsu.

  2. Stop loss / mengambil keuntungan yang tidak betul mungkin keluar terlalu awal.

  3. Keuntungan tetap boleh keluar terlalu awal, kehilangan keuntungan lanjut.

  4. Parameter perlu dioptimumkan untuk mengelakkan overfit.

  5. Potensi pengeluaran yang besar, modal yang mencukupi diperlukan.

Pengoptimuman

  1. Mengoptimumkan BBO dan MA parameter.

  2. Uji kaedah stop loss yang berbeza seperti ATR, peratus.

  3. Mengoptimumkan keuntungan tetap dan kehilangan berhenti.

  4. Tambah penapis untuk mengelakkan isyarat palsu.

  5. Mengoptimumkan saiz kedudukan untuk pasaran yang berbeza.

  6. Uji keberkesanan strategi merentasi instrumen dan jangka masa.

Kesimpulan

Strategi ini mengenal pasti perubahan trend menggunakan BBO dan memasuki kedudukan dengan sewajarnya. Ia mengawal risiko dan mengunci keuntungan dengan pelbagai jenis keluar. Strategi ini mudah dan intuitif tetapi memerlukan pengoptimuman parameter. Ia boleh berfungsi dengan baik di pasaran trend jika dioptimumkan dengan betul, tetapi isyarat palsu dan keluar yang tidak betul perlu diperhatikan.


/*backtest
start: 2022-10-03 00:00:00
end: 2023-10-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Strategy CCT Bollinger Band Oscillator", shorttitle="Hornkild", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)

length=input(65)
lengthMA=input(30)
src=close
cctbbo=100 * ( src + 2*stdev( src, length) - sma( src, length ) ) / ( 4 * stdev( src, length ) )

//ul=hline(100, color=gray, editable=true)
//ll=hline(0, color=gray)
//hline(50, color=gray)
//fill(ul,ll, color=blue)
//plot(cctbbo, color=blue, linewidth=2)
//plot(ema(cctbbo, lengthMA), color=red)

TP = input(0) * 10
SL = input(0) * 10
TS = input(1) * 10
TO = input(10) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na

longCondition = crossover(cctbbo, ema(cctbbo, lengthMA))
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(cctbbo, ema(cctbbo, lengthMA))
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)

Lebih lanjut