
Strategi penangkapan ikan Williams adalah strategi pelacakan tren yang menggunakan bentuk cangkang ikan yang dibentuk oleh rata-rata bergerak dari tiga periode yang berbeda untuk menentukan arah tren. Ketika garis cepat lebih tinggi dari garis tengah, garis tengah lebih tinggi dari garis lambat, membentuk cangkang ikan yang sedang naik, lakukan lebih banyak; Ketika garis cepat lebih rendah dari garis tengah, garis tengah lebih rendah dari garis lambat, membentuk cangkang ikan yang sedang turun, kosong.
Strategi ini menggunakan SMA dengan tiga panjang siklus yang berbeda, yaitu sma1, sma2, dan sma3. Di antaranya, sma1 adalah yang terpendek dan sma3 adalah yang terpanjang.
Ketika sma1 di atas sma2, dan sma2 di atas sma3, menunjukkan bahwa pasar berada dalam tren naik, membentuk celah ikan naik, dan menurut teori perdagangan tren, saat ini harus masuk lebih banyak.
Sebaliknya, ketika sma1 di bawah sma2 dan sma2 di bawah sma3, menunjukkan bahwa pasar berada dalam tren menurun, membentuk celah penurunan, yang harus masuk kosong.
Kondisi permainan over dan under diatur kembali menjadi tiga garis rata, dengan garis cepat di bawah garis tengah atau garis tengah di bawah garis lambat, dan posisi harus diimbangi.
Strategi ini juga memetakan warna latar belakang untuk mengidentifikasi arah tren, dengan warna hijau untuk tren naik, dan merah untuk tren turun.
Secara keseluruhan, strategi ini menggunakan keuntungan dari moving average untuk menentukan arah tren dengan bentuk cangkokan ikan hiu dan masuk dengan baik, merupakan strategi pelacakan tren yang lebih khas.
Untuk mengatasi risiko tersebut, langkah-langkah berikut dapat dilakukan untuk mengoptimalkannya:
Meningkatkan kondisi penyaringan tren untuk menghindari pasar yang bergejolak yang sering membuka posisi.
Mengoptimalkan kondisi keluar, dikombinasikan dengan indikator tren untuk menentukan kapan posisi kosong.
Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.
Menggunakan rata-rata bergerak adaptif untuk menyesuaikan energi secara dinamis.
Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:
Meningkatkan penilaian kekuatan dan kelemahan tren, menghindari masuk prematur dari tren rata atau goyangan. Pertimbangan tambahan seperti MACD, KDJ dapat diperkenalkan.
Mengoptimalkan parameter siklus moving average untuk mencari kombinasi optimal. Parameter optimal dapat ditemukan dengan mengevaluasi parameter multi-grup.
Menggunakan Adaptive Moving Average, memungkinkan siklus untuk beradaptasi dengan perubahan dinamika pasar.
Meningkatkan strategi stop loss, seperti tracking stop loss, stop loss saldo, dan lain-lain, untuk mengendalikan risiko.
Optimalkan persyaratan masuk, dapat mempertimbangkan jumlah transaksi, filter indikator seperti Brin Belt, dan meningkatkan akurasi masuk.
Mengoptimalkan kondisi keluar, digabungkan dengan indikator tren untuk menentukan probabilitas terbaliknya tren saat persimpangan tiga baris, mengurangi risiko keluar.
Strategi penangkapan ikan paus Williams adalah strategi pelacakan tren yang khas. Strategi ini membentuk arah penangkapan ikan paus dengan tiga rata-rata bergerak cepat dan lambat, dan masuk dengan lancar. Keuntungan dari strategi ini adalah logika perdagangan yang sederhana dan jelas, mudah dioperasikan; Kelemahannya adalah keakuratan penilaian tren dan kemampuan pengendalian 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()