
Strategi Williams Whale adalah strategi pengesanan trend yang menggunakan bentuk cangkang ikan yang dibentuk oleh purata bergerak dari tiga kitaran yang berbeza untuk menentukan arah trend. Apabila garis cepat lebih tinggi daripada garis tengah, garis tengah lebih tinggi daripada garis perlahan, membentuk cangkang yang sedang naik, lakukan lebih banyak; apabila garis cepat lebih rendah daripada garis tengah, garis tengah lebih rendah daripada garis perlahan, membentuk cangkang yang sedang turun, kosong.
Strategi ini menggunakan purata bergerak SMA dengan 3 panjang kitaran yang berbeza, iaitu garis cepat sma1, garis tengah sma2 dan garis lambat sma3. Di antaranya, sma1 adalah yang paling pendek dan sma3 adalah yang paling lama.
Apabila sma1 di atas sma2, dan sma2 di atas sma3, menunjukkan bahawa pasaran berada dalam trend menaik, membentuk mulut ikan yang menaik, dan menurut teori perdagangan trend, ketika ini masuk harus dilakukan lebih banyak.
Sebaliknya, apabila sma1 menembusi sma2, dan sma2 menembusi sma3, ia menunjukkan bahawa pasaran berada dalam trend menurun, membentuk mulut ikan yang menurun, dan ketika itu masuk harus dibuat kosong.
Keadaan keluar untuk melakukan over dan short disusun semula menjadi tiga garis rata, garis cepat di bawah garis tengah atau garis tengah di bawah garis lambat, dan pada masa ini kedudukan harus diimbangi.
Strategi ini juga memetakan warna latar belakang untuk menandakan arah trend, dengan warna hijau mewakili trend menaik dan merah mewakili trend menurun.
Secara keseluruhannya, strategi ini menggunakan kelebihan purata bergerak untuk menentukan arah trend dengan bentuk cangkokan ikan paus, dan masuk dengan baik, merupakan strategi pengesanan trend yang lebih tipikal.
Langkah-langkah berikut boleh diambil untuk mengoptimumkan risiko di atas:
Menambah syarat penapisan trend untuk mengelakkan pasaran yang bergolak daripada sering membuka posisi.
Mengoptimumkan keadaan keluar, menggabungkan indikator trend untuk menentukan masa untuk meletakkan kedudukan.
Tambah strategi hentikan kerugian dan kawal kerugian tunggal.
Menggunakan purata bergerak yang beradaptasi untuk membolehkan perubahan dinamik kitaran.
Strategi ini boleh dioptimumkan dengan cara berikut:
Menambah penilaian kecenderungan kuat dan lemah, mengelakkan kecenderungan rata atau goyah masuk terlalu awal. Keputusan tambahan seperti MACD, KDJ dan lain-lain boleh diperkenalkan.
Mengoptimumkan parameter kitaran purata bergerak, mencari kombinasi terbaik. Parameter optimum boleh didapati dengan mengkaji semula parameter pelbagai kumpulan.
Menggunakan purata bergerak yang beradaptasi, membolehkan kitaran beradaptasi dengan perubahan dinamik pasaran.
Tambah strategi hentikan kerugian, seperti hentikan pengesanan, hentikan baki, dan lain-lain, untuk mengawal risiko.
Untuk mengoptimumkan syarat kemasukan, penapisan boleh diambil kira untuk penunjuk seperti jumlah pesanan, tali pinggang Brin, dan lain-lain untuk meningkatkan ketepatan kemasukan.
Mengoptimumkan keadaan keluar, digabungkan dengan indikator trend untuk menentukan kebarangkalian pembalikan trend semasa persimpangan tiga baris, mengurangkan risiko keluar.
Strategi Williams Whale adalah strategi pengesanan trend yang tipikal. Ia membentuk arah trend dengan tiga rata-rata bergerak yang cepat dan perlahan. Keuntungan strategi ini adalah logik perdagangan yang mudah dan jelas, mudah dikendalikan; Kelemahannya adalah kecacatan penilaian trend dan kawalan risiko yang lemah.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=3
strategy(title = "Noro's Alligator Strategy by Bill Williams", shorttitle = "Alligator", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len1 = input(50, defval = 50, minval = 1, title = "MA 1 Length")
len2 = input(100, defval = 100, minval = 1, title = "MA 2 Length")
len3 = input(200, defval = 200, minval = 1, title = "MA 3 Length")
src = input(close, title = "Source")
showbg = input(false, title = "Show Background")
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")
//MAs
sma1 = sma(src, len1)
sma2 = sma(src, len2)
sma3 = sma(src, len3)
plot(sma1, color = lime, linewidth = 2)
plot(sma2, color = blue, linewidth = 2)
plot(sma3, color = red, linewidth = 2)
//Signals
up = sma1 > sma2 and sma2 > sma3
dn = sma1 < sma2 and sma2 < sma3
//Background
trend = 0
trend := up ? 1 : dn ? -1 : trend[1]
col = showbg == false ? na : trend == 1 ? lime : red
bgcolor(col)
//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up
strategy.entry("Long", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
strategy.entry("Short", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()