Williams
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.
Untuk mengatasi risiko, perbaikan berikut dapat dilakukan:
Tambahkan filter tren untuk menghindari whipsaws di pasar berkisar.
Mengoptimalkan kondisi keluar menggunakan indikator tren.
Tambahkan strategi stop loss untuk mengendalikan kerugian perdagangan tunggal.
Gunakan rata-rata bergerak adaptif sehingga periode menyesuaikan secara dinamis.
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Tambahkan filter kekuatan tren untuk menghindari masuk prematur ke tren lemah. Indikator seperti MACD, KDJ dapat membantu.
Mengoptimalkan periode rata-rata bergerak untuk menemukan kombinasi terbaik melalui backtesting.
Gunakan rata-rata bergerak adaptif sehingga periode beradaptasi berdasarkan momentum pasar.
Tambahkan strategi stop loss seperti trailing stop loss, saldo akun stop loss untuk mengendalikan risiko.
Meningkatkan kondisi masuk menggunakan volume, Bollinger Bands dll untuk meningkatkan akurasi.
Meningkatkan kondisi keluar dengan menilai kemungkinan pembalikan tren dengan indikator ketika garis bersilang.
Williams
/*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()