Sumber daya yang dimuat... Pemuatan...

Strategi Buaya Williams

Penulis:ChaoZhang, Tanggal: 2023-11-13 10:58:22
Tag:

img

Gambaran umum

Williams Alligator Strategy adalah strategi mengikuti tren yang menggunakan tiga garis rata-rata bergerak dari periode yang berbeda untuk membentuk rahang buaya untuk menentukan arah tren. Ketika garis cepat berada di atas garis tengah dan garis tengah berada di atas garis lambat, mulut buaya tren naik terbentuk untuk pergi panjang. Ketika garis cepat berada di bawah garis tengah dan garis tengah berada di bawah garis lambat, mulut buaya tren turun terbentuk untuk pergi pendek.

Cara Kerjanya

Strategi ini menggunakan tiga SMA dengan panjang periode yang berbeda - jalur cepat sma1, jalur tengah sma2, dan jalur lambat sma3, di mana sma1 memiliki periode terpendek dan sma3 memiliki yang terpanjang.

Ketika SMA1 melintasi SMA2 dan SMA2 melintasi SMA3, ini menunjukkan pasar berada dalam tren naik dan membentuk mulut buaya ke atas.

Sebaliknya, ketika sma1 melintasi bawah sma2, dan sma2 melintasi bawah sma3, ini menunjukkan pasar berada dalam tren menurun dan membentuk mulut buaya ke bawah.

Kondisi keluar adalah ketika tiga garis sejajar kembali, dengan garis cepat di bawah garis tengah atau garis tengah di bawah garis lambat.

Strategi ini juga menggambar warna latar belakang untuk mengidentifikasi arah tren - hijau untuk uptrend dan merah untuk downtrend.

Singkatnya, strategi ini memanfaatkan kekuatan rata-rata bergerak dan pola mulut buaya untuk menentukan arah tren dan perdagangan sesuai.

Analisis Keuntungan

  • Mulut buaya secara efektif mengidentifikasi arah tren.
  • Kombinasi garis periode yang berbeda meningkatkan akurasi pola.
  • Perdagangan dengan tren selaras dengan teori perdagangan tren.
  • Warna latar belakang membantu penilaian visual.
  • Logika yang sederhana dan jelas, mudah diterapkan.

Analisis Risiko

  • Banyak risiko di berbagai pasar.
  • Risiko tinggi ketika garis selaras kembali untuk menutup posisi.
  • Tidak dapat menentukan kekuatan tren, mungkin salah memasukkan tren.
  • Tidak ada stop loss, risiko penarikan tinggi.
  • Periode tetap tidak dapat beradaptasi dengan perubahan pasar.

Untuk mengatasi risiko, perbaikan berikut dapat dilakukan:

  1. Tambahkan filter tren untuk menghindari whipsaws di pasar berkisar.

  2. Mengoptimalkan kondisi keluar menggunakan indikator tren.

  3. Tambahkan strategi stop loss untuk mengendalikan kerugian perdagangan tunggal.

  4. Gunakan rata-rata bergerak adaptif sehingga periode menyesuaikan secara dinamis.

Arah Peningkatan

Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:

  1. Tambahkan filter kekuatan tren untuk menghindari masuk prematur ke tren lemah. Indikator seperti MACD, KDJ dapat membantu.

  2. Mengoptimalkan periode rata-rata bergerak untuk menemukan kombinasi terbaik melalui backtesting.

  3. Gunakan rata-rata bergerak adaptif sehingga periode beradaptasi berdasarkan momentum pasar.

  4. Tambahkan strategi stop loss seperti trailing stop loss, saldo akun stop loss untuk mengendalikan risiko.

  5. Meningkatkan kondisi masuk menggunakan volume, Bollinger Bands dll untuk meningkatkan akurasi.

  6. Meningkatkan kondisi keluar dengan menilai kemungkinan pembalikan tren dengan indikator ketika garis bersilang.

Kesimpulan

Williams Alligator Strategy adalah strategi trend following yang khas. Strategi ini menggunakan mulut alligator yang terbentuk dari tiga moving average untuk menentukan tren dan trading sesuai. Keuntungannya adalah logika yang sederhana dan jelas. Kelemahannya adalah akurasi tren yang lebih lemah dan kontrol risiko. Peningkatan masa depan dapat dilakukan dengan memasukkan indikator tambahan, mengoptimalkan parameter, menambahkan stop loss untuk membuatnya lebih kuat untuk kondisi pasar yang kompleks.


/*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()

Lebih banyak