Strategi Buaya Williams

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

img

Ringkasan

Williams Alligator Strategy adalah strategi yang menggunakan tiga garis purata bergerak dari tempoh yang berbeza untuk membentuk rahang buaya untuk menentukan arah trend. Apabila garis pantas berada di atas garis tengah dan garis tengah berada di atas garis perlahan, mulut buaya trend menaik terbentuk untuk pergi panjang. Apabila garis pantas berada di bawah garis tengah dan garis tengah berada di bawah garis perlahan, mulut buaya trend menurun terbentuk untuk pergi pendek. Ia dicipta oleh Bill Williams dan menggabungkan keupayaan menilai trend purata bergerak untuk menangkap trend pasaran dengan berkesan.

Cara Ia Bekerja

Strategi ini menggunakan tiga SMA dengan panjang tempoh yang berbeza - garis cepat sma1, garis tengah sma2, dan garis perlahan sma3, di mana sma1 mempunyai tempoh yang paling pendek dan sma3 mempunyai yang paling lama.

Apabila sma1 melintasi di atas sma2, dan sma2 melintasi di atas sma3, ia menunjukkan pasaran berada dalam trend menaik dan membentuk mulut buaya menaik.

Sebaliknya, apabila sma1 melintasi di bawah sma2, dan sma2 melintasi di bawah sma3, ia menunjukkan pasaran berada dalam trend ke bawah dan membentuk mulut buaya ke bawah.

Keadaan keluar adalah apabila ketiga-tiga garis sejajar semula, dengan garis cepat di bawah garis tengah atau garis tengah di bawah garis perlahan.

Strategi ini juga menggambar warna latar belakang untuk mengenal pasti arah trend - hijau untuk uptrend dan merah untuk downtrend.

Ringkasnya, strategi ini menggunakan kekuatan purata bergerak dan corak mulut buaya untuk menentukan arah trend dan berdagang dengan sewajarnya.

Analisis Kelebihan

  • Mulut buaya secara berkesan mengenal pasti arah trend.
  • Gabungan garis tempoh yang berbeza meningkatkan ketepatan corak.
  • Perdagangan dengan trend sejajar dengan teori perdagangan trend.
  • Warna latar belakang membantu penilaian visual.
  • Logik yang mudah dan jelas, mudah dilaksanakan.

Analisis Risiko

  • Pelbagai risiko di pelbagai pasaran.
  • Risiko tinggi apabila garis sejajar semula untuk menutup kedudukan.
  • Tidak dapat menentukan kekuatan trend, mungkin memasukkan trend dengan tidak betul.
  • Tiada stop loss, risiko pengeluaran yang tinggi.
  • Tempoh tetap tidak dapat disesuaikan dengan perubahan pasaran.

Untuk menangani risiko, penambahbaikan berikut boleh dibuat:

  1. Tambah penapis trend untuk mengelakkan whipsaws di pasaran yang berbeza.

  2. Mengoptimumkan keadaan keluar menggunakan penunjuk trend.

  3. Tambah strategi stop loss untuk mengawal kerugian perdagangan tunggal.

  4. Gunakan purata bergerak adaptif supaya tempoh menyesuaikan secara dinamik.

Arahan Penambahbaikan

Strategi ini boleh dioptimumkan lagi dalam aspek berikut:

  1. Tambah penapis kekuatan trend untuk mengelakkan kemasukan awal dalam trend lemah. Penunjuk seperti MACD, KDJ boleh membantu.

  2. Mengoptimumkan tempoh purata bergerak untuk mencari kombinasi terbaik melalui backtesting.

  3. Gunakan purata bergerak adaptif supaya tempoh menyesuaikan diri berdasarkan momentum pasaran.

  4. Tambah strategi stop loss seperti trailing stop loss, baki akaun stop loss untuk mengawal risiko.

  5. Meningkatkan keadaan kemasukan menggunakan jumlah, Bollinger Bands dan lain-lain untuk meningkatkan ketepatan.

  6. Meningkatkan keadaan keluar dengan menilai kebarangkalian pembalikan trend dengan penunjuk apabila garis bersilang.

Kesimpulan

Williams Alligator Strategy adalah strategi trend berikut yang tipikal. Ia menggunakan mulut alligator yang dibentuk oleh tiga purata bergerak untuk menentukan trend dan perdagangan dengan sewajarnya. Kelebihannya adalah logiknya yang mudah dan jelas. Kelemahannya adalah ketepatan trend yang lebih lemah dan kawalan risiko. Penambahbaikan masa depan boleh dibuat dengan menggabungkan penunjuk tambahan, mengoptimumkan parameter, menambah stop loss untuk menjadikannya lebih mantap untuk keadaan pasaran 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 lanjut