Strategi Pecah Julat Dinamik


Tarikh penciptaan: 2023-11-21 15:03:19 Akhirnya diubah suai: 2023-12-01 15:00:31
Salin: 0 Bilangan klik: 691
1
fokus pada
1617
Pengikut

Strategi Pecah Julat Dinamik

Gambaran keseluruhan

Strategi ini direka untuk strategi perdagangan terobosan yang dinamik berdasarkan indikator Brin Belt. Strategi ini menggabungkan penapisan entiti K-line dan penapisan warna untuk mencari peluang masuk terobosan berhampiran jalur bawah Brin Belt. Strategi ini berdasarkan penapisan entiti.

Prinsip Strategi

Pengiraan penunjuk

Pertama, garis asas dan sub-rail di Brin berdasarkan titik rendah:

src = low 
basis = sma(src, length)
dev = mult * stdev(src, length) 
lower = basis - dev

Di mana src adalah titik rendah, panjang adalah kitaran pengiraan, asas adalah garisan purata, dev adalah penyelewengan standard, dan lebih rendah adalah tren bawah.

Umumnya mult ditetapkan sebagai 2, yang bermaksud subtrack adalah satu perbezaan piawai.

Syarat penapisan

Strategi ini mengandungi dua syarat penapisan:

Penapis entiti K Dengan menggunakan saiz entiti nbody dan nilai abody rata-rata, isyarat perdagangan dihasilkan hanya apabila nbody lebih besar daripada separuh abody.

Penapis warna K line close > open) tidak melakukan lebih banyak. Ini adalah untuk mengelakkan hbox head palsu.

Isyarat dagangan

Isyarat multisignal dihasilkan apabila syarat berikut dipenuhi:

low < lower  // 价格突破下轨
close < open or usecol == false // 色彩过滤
nbody > abody / 2 or usebod == false // 实体过滤

Apabila saiz entiti sekali lagi lebih besar daripada separuh daripada nilai purata, kedudukan rata berlaku:

close > open and nbody > abody / 2

Pengurusan kedudukan

Strategi untuk mengira jumlah dagangan secara automatik dan mencapai pertumbuhan indeks:

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]  

Kawalan Risiko

Syarat tahun, bulan, dan hari untuk menyertai dan hanya boleh berdagang pada tarikh tertentu:

when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

Kelebihan Strategik

Kawasan dagangan dinamik

Brin downtrack adalah zon sokongan yang dinamik yang dapat menangkap peluang untuk bangkit selepas trend pasaran.

Mekanisme penapisan berganda

Gabungan dengan entiti K-line dan penilaian warna, penapisan palsu yang berkesan.

Pengurusan kedudukan automatik

Posisi meningkat kepada 100% mengikut indeks, dan risiko dikendalikan secara automatik.

Tentukan jangka masa dagangan

Menetapkan julat tarikh untuk mengurangkan risiko turun naik pasaran pada waktu tertentu.

Risiko Strategik

Tempoh kosong terlalu lama

Apabila pasaran berada dalam pasaran lembu jangka panjang, Brin bergerak dengan cepat ke atas dan ke bawah, yang menyebabkan masa kosong terlalu lama.

Penyelesaian

Anda boleh menggunakan indikator trend untuk menilai, tetapi anda boleh menangguhkan strategi anda apabila garis tengah dan panjang dianggap sebagai pasaran lembu, untuk mengelakkan kedudukan kosong yang terlalu lama.

Kegagalan Berjaya

Selepas terjatuh di bawah landasan, mungkin terdapat penyesuaian dan ujian semula di bawah landasan.

Penyelesaian

Tambah garis hentian, hentian peratusan di bawah sokongan. Atau tambah logik keputusan kegagalan untuk mencuba semula, hentian cepat.

Pengoptimuman Strategi

Tambah logik stop loss

Berdasarkan data pengesanan semula, menetapkan kedudukan hentian di bawah sokongan yang munasabah.

Optimumkan parameter syarat penapisan

Sesuaikan kitaran abody penapis entiti, penggunaan penapis COLOR dan sebagainya. Cari kombinasi parameter yang optimum.

Pengkajian trend

Meningkatkan penghakiman trend garis tengah dan panjang, berhenti menjalankan strategi apabila penghakiman adalah pasaran lembu. Mengurangkan masa kosong.

ringkaskan

Strategi ini digabungkan dengan sokongan Brin, merancang logik strategi penapisan entiti, penapisan warna dan perdagangan terobosan untuk mencari peluang rebound yang berkemungkinan tinggi. Dalam aplikasi praktikal, parameter boleh terus dioptimumkan berdasarkan hasil tinjauan balik, dan menambah modul penghakiman stop loss dan trend untuk mengawal risiko, sehingga mendapat prestasi yang lebih baik.

Kod sumber strategi
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Wizard Strategy v1.0", shorttitle = "Wizard str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(25, defval = 25, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, 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")

//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false

//Signals
up1 = low < lower and (close < open or usecol == false) and body
exit = close > open and nbody > abody / 2

//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()