- Persegi
- Strategi Bollinger Bands mengambil keuntungan dinamik
Strategi Bollinger Bands mengambil keuntungan dinamik
Penulis:
ChaoZhang, Tarikh: 2024-05-24 17:54:47
Tag:
SMA
Ringkasan
Strategi ini menggunakan penunjuk Bollinger Bands untuk pergi pendek apabila harga menyentuh band atas dan pergi panjang apabila ia menyentuh band bawah. Ia menetapkan tahap mengambil keuntungan dinamik dan menutup kedudukan apabila ia mencapai keuntungan 1%. Idea terasnya adalah bahawa harga sentiasa turun naik dalam Bollinger Bands dan mempunyai ciri membalikkan purata, jadi kita boleh mengambil kedudukan terbalik apabila harga menyimpang terlalu jauh dari purata bergerak untuk menangkap perbezaan harga.
Prinsip Strategi
- Mengira purata bergerak dan penyimpangan piawai: Gunakan Purata Pindah Sederhana (SMA) untuk mengira purata bergerak harga penutupan (basis), dan kemudian mengira penyimpangan piawai (dev) harga penutupan berbanding dengan purata bergerak.
- Hitung band atas dan bawah: Band atas adalah asas + dev * pengganda, dan band bawah adalah asas - dev * pengganda, di mana pengganda adalah kelipatan amplitud turun naik.
- Menghasilkan isyarat dagangan: Apabila harga penutupan melintasi band bawah dan penutupan semasa kurang daripada pembukaan, isyarat panjang dihasilkan; apabila harga penutupan melintasi band atas dan penutupan semasa lebih besar daripada pembukaan, isyarat pendek dihasilkan.
- Pendapatan mengambil dinamik: Selepas membuka kedudukan, mengira harga mengambil keuntungan berdasarkan harga kemasukan dan peratusan mengambil keuntungan. Tutup kedudukan apabila harga mencapai tahap mengambil keuntungan.
- Visualisasi: Menggambar Bollinger Bands, purata bergerak, dan isyarat perdagangan pada carta.
Kelebihan Strategi
- Sederhana dan berkesan: Logik strategi jelas dan hanya menggunakan satu penunjuk teknikal, menjadikannya mudah difahami dan dilaksanakan.
- Penggunaan yang luas: Bollinger Bands mempunyai kegunaan sejagat dan boleh digunakan untuk pelbagai instrumen perdagangan dan pasaran.
- Keuntungan dinamik: Berbanding dengan keuntungan tetap, keuntungan dinamik dapat memaksimumkan keuntungan dari perdagangan yang menang sambil mengawal risiko.
- Menangkap trend dengan berkesan: Dalam pasaran trend, selepas harga menyentuh jalur atas atau bawah, ia biasanya terus bergerak ke arah asal untuk beberapa waktu.
Risiko Strategi
- Prestasi yang lemah di pasaran yang berbeza: Apabila pasaran berada dalam turun naik yang luas dan harga berulang kali menembusi Bollinger Bands, strategi boleh menghasilkan isyarat perdagangan yang kerap, yang mengakibatkan perdagangan yang berlebihan dan peningkatan kos transaksi.
- Peningkatan mendalam dalam pasaran trend: Jika trend berlangsung untuk masa yang lama dan harga menyimpang dari purata bergerak untuk jangka masa yang panjang, strategi bertentangan dengan trend, berpotensi membawa kepada penurunan mendalam.
- Kesukaran dalam pemilihan parameter: Parameter Bollinger Bands (seperti panjang dan pengganda) mempunyai kesan yang ketara terhadap prestasi strategi, tetapi tidak ada parameter yang optimum secara universal.
Arahan Pengoptimuman Strategi
- Menggabungkan analisis trend: Tambah indikator pengenalan trend (seperti purata bergerak) ke dalam strategi.
- Mengoptimumkan mengambil keuntungan dan menghentikan kerugian: Sesuaikan secara dinamik mengambil keuntungan dan menghentikan kerugian berdasarkan penunjuk turun naik seperti ATR untuk mencapai nisbah risiko-balasan yang lebih baik.
- Gabungan pelbagai faktor: Pertimbangkan untuk menggabungkan Bollinger Bands dengan penunjuk teknikal lain (seperti RSI, MACD, dll.) untuk meningkatkan ketepatan isyarat dan mengurangkan isyarat palsu.
- Penapisan asas: Selepas menjana isyarat perdagangan, gunakan data asas (seperti laporan kewangan, data industri, dan lain-lain) untuk pengesahan sekunder untuk meningkatkan ketahanan strategi.
Ringkasan
Strategi ini membina sistem perdagangan yang mudah dan berkesan menggunakan Bollinger Bands, mengambil harga yang menyentuh band atas dan bawah sebagai isyarat, dan mengamalkan mengambil keuntungan dinamik untuk mengawal risiko. Strategi ini berfungsi dengan baik di pasaran trend tetapi mungkin menghadapi masalah perdagangan yang kerap di pasaran berkisar. Penambahbaikan lanjut boleh dibuat dari segi analisis trend, mengambil keuntungan dan pengoptimuman kehilangan berhenti, kombinasi faktor, dan penapisan asas untuk mencapai pulangan yang lebih kukuh.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Future Price Prediction", overlay=true)
// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0
// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev
// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")
// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]
// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na
if longCondition
longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
shortTakeProfit := close * (1 - takeProfitPercentage / 100)
// Strateji Giriş ve Çıkış
if longCondition
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)
if shortCondition
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)
// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
table.cell(data, 0, 0, "Current Price", text_color=color.white)
table.cell(data, 1, 0, str.tostring(close))
table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
table.cell(data, 1, 1, str.tostring(basis))
Berkaitan
Lebih lanjut