Strategi pelacakan cerdas Double B


Tanggal Pembuatan: 2024-01-18 15:41:20 Akhirnya memodifikasi: 2024-01-18 15:41:20
menyalin: 2 Jumlah klik: 539
1
fokus pada
1617
Pengikut

Strategi pelacakan cerdas Double B

Ini adalah strategi perdagangan yang menggunakan indikator Bollinger Bands. Strategi ini bertujuan untuk menggunakan indikator Bollinger Bands untuk mengidentifikasi saat harga berfluktuasi tajam dan membuat keputusan membeli atau menjual sesuai dengan itu.

Prinsip Strategi

Strategi ini menilai apakah harga saat ini berada dalam zona fluktuasi dengan menghitung garis lintasan atas, tengah, dan bawah Brin Belt, untuk menentukan kapan waktunya untuk melakukan posisi terendah atau terendah. Ketika harga mendekati lintasan atas, dianggap sebagai zona batas multihead, strategi memilih untuk menjual posisi terendah; Ketika harga mendekati lintasan bawah, dianggap sebagai zona batas kosong, strategi memilih untuk membeli posisi terendah.

Selain itu, strategi ini juga memperkenalkan faktor pembalikan tren, yang jika ada sinyal pembalikan, juga akan memicu keputusan membeli atau menjual yang sesuai. Secara khusus, logika strategi adalah sebagai berikut:

  1. Perhitungan lintasan atas, tengah, dan bawah
  2. Menentukan apakah harga telah menembus orbit dengan sinyal reversal
    1. Penembusan rel tengah sebagai sinyal tren
    2. Sebagai sinyal pembalikan di dekat rel atas atau bawah
  3. Menerbitkan perintah beli, jual, atau posisi kosong

Ini adalah logika perdagangan dasar dari strategi ini. Dengan memanfaatkan karakteristik Brin Belt, kombinasi tren dan faktor reversal, strategi ini mencoba untuk menangkap titik reversal dan berdagang ketika volatilitas meningkat.

Keunggulan Strategis

Strategi ini memiliki beberapa keuntungan dibandingkan dengan strategi rata-rata bergerak biasa:

  1. Lebih sensitif dan dapat menangkap saat harga turun dan turun
  2. Menggabungkan tren dan faktor pembalikan untuk menghindari kerugian yang disebabkan oleh pembalikan prematur
  3. Efek FILTER, menghindari transaksi di area yang tidak berfluktuasi
  4. Mengurangi jumlah transaksi dengan menilai arah tren utama
  5. Menambahkan kondisi pemfilteran terbalik untuk mengurangi kemungkinan kesalahan

Secara keseluruhan, strategi ini menggabungkan lebih baik antara Bollinger Bands dan penilaian entitas harga, melakukan perdagangan di titik balik yang masuk akal, memastikan tingkat keuntungan tertentu dan mengendalikan risiko.

Risiko dan optimasi

Namun, strategi ini juga memiliki beberapa risiko, terutama di:

  1. Parameter Brin-band tidak disetel dengan benar, sehingga tidak dapat menangkap fluktuasi harga secara memadai
  2. Pembalasan sinyal reversal tidak akurat, kehilangan reversal, atau salah
  3. Ketika tren tidak jelas, sinyal rel tengah tidak bekerja dengan baik

Dengan demikian, optimasi di masa depan dapat dilakukan dalam beberapa aspek berikut:

  1. Beradaptasi dengan parameter varietas yang berbeda untuk mengoptimalkan parameter Brinet
  2. Peningkatan probabilitas terbaliknya penilaian model pembelajaran mesin
  3. Jika tidak jelas, beralih ke indikator lain.
  4. Menyaring sinyal perdagangan dengan lebih banyak bentuk harga

Meringkaskan

Secara keseluruhan, strategi ini adalah model strategi perdagangan Brin Belt yang khas. Strategi ini menghindari kelemahan dari banyak transaksi yang tidak efektif yang mudah dihasilkan hanya dengan menggunakan Brin Belt. Dengan memperkenalkan penilaian pembalikan tren, sinyal penyaringan yang efektif, secara teoritis dapat memperoleh kinerja strategi yang lebih baik. Namun, pengaturan parameter dan penyaringan sinyal masih perlu dioptimalkan dan ditingkatkan lebih lanjut untuk membuat parameter strategi menjadi lebih baik dan mengurangi kemungkinan kesalahan penilaian.

Kode Sumber Strategi
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()