Bollinger Bands Dynamic Take Profit dan Strategi Penambahan Kedudukan Dinamik


Tarikh penciptaan: 2024-03-22 15:49:28 Akhirnya diubah suai: 2024-03-22 15:49:28
Salin: 0 Bilangan klik: 361
1
fokus pada
1166
Pengikut

Bollinger Bands Dynamic Take Profit dan Strategi Penambahan Kedudukan Dinamik

Gambaran Keseluruhan Strategi

Strategi ini berdasarkan pada indikator Bollinger Band, membuka kedudukan apabila harga menyentuh Bollinger Band ke bawah dan menetapkan logik hentian dinamik dan logik kenaikan dinamik. Apabila harga bangkit dari bawah dan menembusi pertengahan Bollinger Band, strategi ini menganggap bahawa tren naik terbentuk, di mana strategi ini akan melakukan kenaikan apabila harga kembali ke arah pertengahan pada tahap tertentu. Apabila harga akhirnya menembusi pertengahan Bollinger Band, strategi ini mendapat keuntungan. Dalam trend turun, strategi ini mengambil logik operasi sebaliknya.

Prinsip Strategi

Prinsip-prinsip utama strategi ini ialah:

  1. Kaedah untuk mengira tali pinggang Brin di atas, di tengah dan di bawah landasan. Rumus untuk mengira landasan atas dan di bawah adalah N kali perbezaan piawaian penambahan dan pengurangan di tengah landasan, di mana N boleh disesuaikan.

  2. Apabila harga penutupan jatuh ke bawah Brin Belt dan tidak membuka kedudukan sebelumnya, strategi membuka lebih banyak kedudukan; apabila harga penutupan menembusi Brin Belt dan tidak membuka kedudukan sebelumnya, strategi membuka posisi kosong. Logik pembukaan kedudukan di sini serupa dengan sistem penembusan Brin Belt tradisional.

  3. Jika harga penutupan melepasi garis tengah Brin, ia dianggap sebagai trend ke atas dan dilabelkan sebagai basisCrossed sebagai true. Jika harga penutupan melepasi garis tengah Brin, ia juga dilabelkan sebagai true.

  4. Dalam keadaan bermulut, jika harga penutupan jatuh ke bawah dan basisCrossed adalah benar, dan harga semasa lebih dari 2 peratus dari harga asal untuk membuka kedudukan, maka strategi akan menambah kedudukan, dan basisCrossed akan diset semula menjadi palsu. Keadaan kosong adalah sebaliknya.

  5. Jika harga penutupan pecah Bollinger Band di atas landasan semasa memegang kedudukan berbilang, atau harga penutupan jatuh ke bawah Bollinger Band di bawah landasan semasa memegang kedudukan kosong, strategi itu meratakan semua kedudukan, menghasilkan keuntungan, dan menetapkan semula setiap pembolehubah tanda untuk bersedia untuk membuka kedudukan seterusnya.

Melalui logik bukaan, kenaikan dan hentian yang dinamik, strategi ini dapat beroperasi secara fleksibel dalam keadaan trend, dan memperoleh keuntungan yang lebih tinggi. Pada masa yang sama, strategi ini mempunyai kebolehpasangan dan kestabilan dengan menangkap trend melalui indikator teknikal klasik Brin.

Analisis kelebihan

  1. Hentian dinamik: Strategi ini secara dinamik menyesuaikan hentian dengan turun naik Brin, berbanding dengan hentian titik tetap, yang dapat menyesuaikan diri dengan lebih baik dengan turun naik pasaran dan melindungi keuntungan secara fleksibel.

  2. Peningkatan dinamik: Strategi akan meningkat secara beransur-ansur pada tahap penarikan balik selepas trend terbentuk, sehingga dapat memperoleh keuntungan yang lebih tinggi dalam keadaan trend. Peningkatan dinamik menjadikan strategi ini lebih unggul dalam perdagangan trend.

  3. Fleksibiliti parameter: Parameter Brinband seperti nilai N, P dan lain-lain boleh disesuaikan secara fleksibel untuk menyesuaikan diri dengan ciri-ciri pasaran dan gaya perdagangan yang berbeza.

  4. Adaptif: Bollinger Bands adalah penunjuk teknikal klasik yang mempunyai keupayaan untuk menangkap trend yang baik. Jika digabungkan dengan pengurusan kedudukan dinamik, ia boleh berfungsi secara stabil di pelbagai pasaran kewangan.

  5. Kejelasan logik: Syarat pembukaan kedudukan dan logik kenaikan dan penurunan kedudukan strategi ini sangat jelas dan mudah difahami dan dikuasai oleh para pedagang. Logik yang jelas juga bermaksud lebih mudah untuk pembangunan dan pengoptimuman strategi kedua.

Analisis risiko

  1. Pasaran bergolak: Strategi Bollinger Bands sering tidak berfungsi dengan baik dalam pasaran bergolak, di mana pembukaan kedudukan yang kerap menyebabkan kos dagangan yang lebih tinggi, yang menjejaskan hasil keseluruhan.

  2. Peralihan trend: Pada masa-masa kritikal untuk pembalikan trend, strategi ini mungkin berlaku di belakang penghakiman, yang menyebabkan kenaikan dalam arah yang salah, yang menghasilkan pengunduran yang lebih besar.

  3. Keadaan yang melampau: Dalam keadaan yang melampau (seperti kejatuhan ribut), pergerakan Burin boleh berlaku secara tidak normal, menyebabkan strategi ini tidak berkesan.

  4. Tetapan parameter: Tetapan parameter yang tidak tepat boleh menjejaskan prestasi strategi ini, seperti nilai N yang terlalu kecil akan menyebabkan perdagangan yang kerap, dan nilai N yang terlalu besar akan menyebabkan lag isyarat.

  5. Black Swan: Strategi ini mungkin menghadapi risiko yang lebih besar sekiranya berlaku peristiwa ekonomi politik yang besar.

Untuk menghadapi risiko di atas, anda boleh mula mengawal dari dua aspek: 1) parameter yang ditetapkan dengan munasabah, parameter yang dioptimumkan untuk keadaan pasaran dan parameter yang berbeza; 2) menambah lebih banyak syarat penapisan dalam strategi, seperti penilaian trend, penapisan kadar turun naik, dan lain-lain, untuk meningkatkan kualiti isyarat. Selain itu, dalam penggunaan sebenar, anda juga perlu melakukan kawalan kedudukan dan pengurusan risiko yang baik, dan mengawal pintu masuk risiko perdagangan tunggal dengan ketat.

Arah pengoptimuman

  1. Penapisan trend: Logik penilaian trend yang ditambahkan semasa membuka kedudukan, seperti MA bermulut sebagai syarat penapisan untuk melakukan lebih banyak, dan MA kosong sebagai syarat penapisan untuk melakukan lebih sedikit, yang dapat meningkatkan kadar kejayaan untuk menangkap trend.

  2. Penapisan kadar turun naik: Brinband sebenarnya juga merupakan penunjuk kadar turun naik, yang dapat mengenal pasti keadaan turun naik pasaran dengan memperkenalkan ATR, kadar turun naik sejarah, dan sebagainya, yang dapat menurunkan kedudukan dengan sewajarnya pada keadaan gelombang tinggi, dan meningkatkan kedudukan pada keadaan gelombang rendah, untuk mengawal risiko dengan lebih baik.

  3. Pengoptimuman parameter dinamik: Parameter Brinbelt boleh disesuaikan secara dinamik mengikut keadaan pasaran. Sebagai contoh, nilai N boleh ditingkatkan dalam keadaan trend, dan nilai N dikurangkan dalam pasaran yang bergolak. Ini memerlukan bantuan teknologi seperti pembelajaran mesin untuk mencari parameter yang paling optimum melalui latihan data sejarah.

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

  5. Menambah logik stop-loss: Strategi ini tidak mempunyai logik stop-loss yang jelas pada masa ini, dan mekanisme seperti stop-loss bergerak atau stop-loss peratusan tetap boleh dipertimbangkan untuk mengawal kerugian maksimum dalam satu perdagangan.

  6. Pengurusan kedudukan yang dioptimumkan: Dalam proses kenaikan dan penurunan kedudukan, anda boleh mengambil pendekatan pengurusan kedudukan klasik seperti formula Kelly, nilai F optimum, dan sebagainya untuk memaksimumkan keuntungan dengan risiko yang boleh dikawal.

Dengan pengoptimuman di atas, nisbah risiko-keuntungan strategi ini dapat ditingkatkan lagi, menjadikannya lebih sesuai dengan keadaan pasaran yang berubah-ubah, membawa pulangan yang stabil kepada peniaga.

ringkaskan

Strategi Brin Bergerak Berhenti Berhenti dan Bergerak Bergerak adalah strategi pengesanan trend klasik yang berdasarkan pada Brin Bergerak untuk mendapatkan keuntungan trend yang lebih tinggi dengan menyesuaikan kedudukan secara dinamik. Strategi ini logiknya jelas, parameternya fleksibel, beradaptasi kuat, dan merupakan strategi perdagangan kuantitatif yang patut dikaji dan diterapkan secara mendalam.

Kod sumber strategi
/*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