Bollinger Band Dinamik Ambil Keuntungan dan Strategi Penambahan Posisi Dinamik

Penulis:ChaoZhang, Tarikh: 2024-03-22 15:49:28
Tag:

img

Ringkasan Strategi

Strategi ini adalah berdasarkan pada penunjuk Bollinger Band. Ia membuka kedudukan apabila harga mencapai band atas atau bawah, dan menetapkan mengambil keuntungan dinamik dan menambah logik kedudukan dinamik. Apabila harga melonjak dari band bawah dan memecahkan jalur tengah, strategi menganggap aliran naik telah terbentuk. Pada masa ini, strategi akan menambah kedudukan apabila harga menarik kembali ke peratusan tertentu dari jalur tengah. Apabila harga akhirnya menembusi jalur atas, strategi menutup kedudukan untuk mengambil keuntungan. Dalam aliran menurun, strategi mengamalkan logik operasi yang bertentangan. Melalui mengambil keuntungan dinamik dan menambah kedudukan dinamik berdasarkan Bollinger Band, strategi ini dapat memperoleh lebih banyak keuntungan di pasaran yang sedang trend.

Prinsip Strategi

Prinsip-prinsip utama strategi ini adalah seperti berikut:

  1. Mengira band atas, tengah dan bawah Bollinger Bands. Band atas dan bawah dikira dengan menambah dan mengurangkan N kali penyimpangan standard dari band tengah, di mana N boleh disesuaikan.

  2. Apabila harga penutupan memecahkan jalur bawah dan tidak ada kedudukan yang telah dibuka sebelum ini, strategi membuka kedudukan panjang; apabila harga penutupan memecahkan jalur atas dan tidak ada kedudukan yang telah dibuka sebelum ini, strategi membuka kedudukan pendek.

  3. Selepas membuka kedudukan panjang, jika harga penutupan pecah ke atas melalui jalur tengah, ia dianggap bahawa trend menaik telah terbentuk, dan pembolehubah basisCrossed ditandakan sebagai benar.

  4. Dalam kes kedudukan panjang, jika harga penutupan memecahkan band bawah dan asasCrossed adalah benar, dan harga semasa telah jatuh lebih daripada 2% dari harga pembukaan asal, strategi menambah kedudukan pada masa ini, dan menetapkan semula basisCrossed kepada palsu pada masa yang sama. Kes kedudukan pendek adalah sebaliknya.

  5. Jika harga penutupan memecahkan jalur atas apabila memegang kedudukan panjang, atau harga penutupan memecahkan jalur bawah apabila memegang kedudukan pendek, strategi menutup semua kedudukan, mengambil keuntungan, dan menetapkan semula pelbagai pembolehubah penanda untuk menyediakan pembukaan seterusnya.

Melalui pembukaan dinamik di atas, menambah kedudukan dan mengambil keuntungan logik, strategi ini boleh beroperasi dengan fleksibel dalam pasaran trend untuk mendapatkan keuntungan yang lebih tinggi. pada masa yang sama, menggunakan penunjuk teknikal klasik Bollinger Bands untuk menangkap trend juga memberikan strategi kebolehan menyesuaikan diri dan kestabilan tertentu.

Analisis Kelebihan

  1. Amalan mengambil keuntungan dinamik: Strategi ini secara dinamik menyesuaikan tahap mengambil keuntungan melalui jalur atas dan bawah Bollinger Bands. Berbanding dengan titik tetap mengambil keuntungan, ia dapat menyesuaikan diri dengan lebih baik dengan turun naik pasaran dan melindungi keuntungan dengan fleksibel.

  2. Penambahan kedudukan dinamik: Pada peringkat mundur selepas trend terbentuk, strategi secara beransur-ansur akan menambah kedudukan, yang boleh memperoleh keuntungan yang lebih tinggi di pasaran trend. Penambahan kedudukan dinamik menjadikan strategi ini lebih menguntungkan dalam perdagangan trend.

  3. Parameter fleksibel: Parameter Bollinger Bands, seperti nilai N dan P, boleh disesuaikan dengan fleksibel untuk menyesuaikan diri dengan ciri pasaran dan gaya perdagangan yang berbeza.

  4. Kebolehsesuaian yang kuat: Bollinger Band adalah penunjuk teknikal klasik dengan keupayaan yang baik untuk menangkap trend.

  5. Logik yang jelas: Syarat pembukaan dan penutupan dan logik penambahan dan pengurangan kedudukan strategi ini sangat jelas dan mudah difahami, yang mudah bagi peniaga untuk memahami dan mengawal. Logik yang jelas juga bermaksud lebih mudah untuk melakukan pembangunan sekunder dan pengoptimuman strategi.

Analisis Risiko

  1. Pasaran berayun: Strategi Bollinger Band sering berprestasi buruk di pasaran berayun. Pada masa ini, pembukaan dan penutupan kedudukan yang kerap akan membawa kepada lebih banyak kos transaksi, yang akan mempengaruhi pulangan keseluruhan.

  2. Pembalikan trend: Pada saat utama pembalikan trend, strategi ini mungkin mengalami penilaian yang tertunda, yang membawa kepada penambahan kedudukan ke arah yang salah, yang mengakibatkan penarikan yang lebih besar.

  3. Situasi melampau: Dalam situasi melampau (seperti kenaikan dan kejatuhan yang tajam), trend Bollinger Bands mungkin tidak normal, menyebabkan strategi gagal.

  4. Tetapan parameter: Tetapan parameter yang tidak sesuai akan menjejaskan prestasi strategi ini. Sebagai contoh, menetapkan nilai N terlalu kecil akan membawa kepada transaksi yang kerap, dan menetapkan nilai N terlalu besar akan membawa kepada kelewatan isyarat.

  5. Peristiwa angsa hitam: Jika terdapat peristiwa politik dan ekonomi yang besar, strategi ini mungkin menghadapi pendedahan risiko yang lebih besar.

Untuk mengawal risiko di atas, kita boleh bermula dari dua aspek: 1) Tetapkan parameter dengan munasabah dan mengoptimumkan parameter untuk sasaran dan keadaan pasaran yang berbeza; 2) Tambah lebih banyak syarat penapisan kepada strategi, seperti penilaian trend, penapisan turun naik, dll., Untuk meningkatkan kualiti isyarat. Di samping itu, dalam penggunaan sebenar, juga perlu melakukan kerja yang baik dalam kawalan kedudukan dan pengurusan risiko, dan mengawal secara ketat pendedahan risiko satu transaksi.

Arah pengoptimuman

  1. Penapisan trend: Tambah logik penghakiman trend semasa membuka kedudukan, seperti menggunakan susunan kenaikan MA sebagai syarat penapisan untuk pergi panjang, dan susunan penurunan MA sebagai syarat penapisan untuk pergi pendek, yang boleh meningkatkan kadar kejayaan menangkap trend.

  2. Penapisan turun naik: Bollinger Band sebenarnya merupakan satu jenis penunjuk turun naik. Penunjuk turun naik seperti ATR dan turun naik sejarah boleh diperkenalkan untuk mengenal pasti keadaan turun naik pasaran. Posisi boleh dikurangkan dengan sewajarnya dalam keadaan turun naik tinggi dan meningkat dalam keadaan turun naik rendah, untuk mengawal risiko dengan lebih baik.

  3. Pengoptimuman parameter dinamik: Parameter Bollinger Bands boleh diselaraskan secara dinamik mengikut keadaan pasaran. Sebagai contoh, nilai N boleh ditingkatkan di pasaran trend dan dikurangkan di pasaran berayun. Ini memerlukan penggunaan pembelajaran mesin dan teknologi lain untuk mencari parameter optimum melalui latihan pada data sejarah.

  4. Strategi gabungan: Strategi ini boleh digabungkan dengan strategi klasik lain seperti MACD dan RSI untuk membentuk strategi gabungan, meningkatkan ketahanan dan keuntungan sistem.

  5. Tambah logik stop-loss: Pada masa ini, strategi ini tidak mempunyai logik stop-loss yang jelas.

  6. Pengoptimuman pengurusan kedudukan: Dalam proses penambahan dan pengurangan kedudukan, kaedah pengurusan kedudukan klasik seperti formula Kelly dan nilai F optimum boleh digunakan untuk memaksimumkan keuntungan di bawah risiko yang boleh dikawal.

Melalui pengoptimuman di atas, nisbah risiko-balasan strategi ini dapat ditingkatkan lagi, membolehkannya menyesuaikan diri dengan lebih baik dengan perubahan persekitaran pasaran dan membawa pulangan yang stabil kepada peniaga.

Ringkasan

Strategi Bollinger Band adalah strategi pengesanan trend yang lebih tinggi dengan menyesuaikan kedudukan secara dinamik. Strategi ini mempunyai logik yang jelas, parameter yang fleksibel, dan kemampuan beradaptasi yang kuat. Ia adalah strategi perdagangan kuantitatif yang layak untuk penyelidikan dan penerapan yang mendalam. Tetapi pada masa yang sama, kita juga mesti melihat bahawa strategi ini berprestasi buruk dalam pasaran yang berayun dan tidak mempunyai keupayaan untuk menangani situasi yang melampau dan peristiwa angsa hitam. Ini memerlukan kita untuk memberi tumpuan kepada pengoptimuman parameter, kawalan risiko dan strategi kombinasi dalam aplikasi sebenar, dan secara teratur menguji keberkesanan strategi dalam keadaan pasaran yang berbeza. Dengan memahami secara mendalam logik dalaman strategi ini dan terus mengoptimumkannya dan memperbaikinya, saya percaya strategi ini boleh menjadi alat penting bagi pedagang kuantitatif dan pelabur jangka panjang untuk membawa pulangan yang stabil dan stabil.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//  Bollinger Bands 1Bb 상하한 크로스 롱숏 실행

strategy(shorttitle="BB", title="Bollinger Bands", overlay=true )
 // bb
length = input.int(12, minval=1)
src = input(close, title="Source")
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)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
add = input.float(0.98, step = 0.001)
// plot(upper - lower, "Basis", color=color.red, offset = offset)
var bool entryMade = false
var bool basisCrossed = false
var bool upperCrossed = false
var bool lowerCrossed = false
strategy.initial_capital = 50000
if close < lower and not entryMade
    strategy.entry("롱", strategy.long, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossover(close, basis) and entryMade and not upperCrossed
    basisCrossed := true
if close > upper
    upperCrossed := true
if close < lower and entryMade and basisCrossed and not upperCrossed and close < strategy.position_avg_price*add
    strategy.entry("추가롱", strategy.long, strategy.initial_capital/10000)
    basisCrossed := false
if close > upper
    strategy.close("롱")
    strategy.close("추가롱")
    entryMade := false
    basisCrossed := false
    upperCrossed := false
///////////반대 포지션
if close > upper and not entryMade
    strategy.entry("s", strategy.short, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossunder(close, basis) and entryMade and not lowerCrossed
    basisCrossed := true
if close < lower
    lowerCrossed := true
if close > upper and entryMade and basisCrossed and not lowerCrossed and close > strategy.position_avg_price*add
    strategy.entry("추가s", strategy.short, strategy.initial_capital/10000)
    basisCrossed := false
if close < lower
    strategy.close("s")
    strategy.close("추가s")
    entryMade := false
    basisCrossed := false
    upperCrossed := false


Lebih lanjut