
Strategi menangkap trend William Herschel adalah strategi untuk mengesan trend yang menggabungkan William Herschel dan purata bergerak. Strategi ini menggunakan kedudukan relatif tiga garis William Herschel (gigi, gigi, dan bibir) untuk menentukan arah trend, sambil menggunakan purata bergerak sebagai pengesahan kedua trend. Strategi ini membuka lebih banyak kedudukan apabila harga menembusi purata bergerak dan tiga garis William Herschel menunjukkan urutan kosong.
Inti strategi menangkap trend William Herschel adalah menggunakan indikator William Herschel dan purata bergerak untuk mengenal pasti dan mengesahkan trend. Indeks William Herschel terdiri daripada tiga garis: garis rahang (Jaw), garis gigi (Teeth) dan garis bibir (Lips), yang masing-masing adalah purata bergerak yang licin pada kitaran yang berbeza (SMMA). Apabila pasaran berada dalam trend menaik, garis bibir berada di atas garis gigi, garis gigi di atas garis rahang; apabila pasaran berada dalam trend menurun, garis bibir berada di bawah garis gigi, garis gigi di bawah garis rahang.
Strategi menangkap trend William Herschel yang selaras membentuk strategi pengesanan trend yang mudah dan berkesan dengan menggabungkan indikator William Herschel dan purata bergerak. Strategi ini sesuai untuk pasaran yang mempunyai trend yang kuat, meningkatkan ketepatan pengenalan trend melalui mekanisme pengesahan ganda. Walau bagaimanapun, strategi ini mungkin tidak berfungsi dengan baik di pasaran yang bergolak, dan kekurangan langkah-langkah pengurusan risiko yang jelas.
/*backtest
start: 2024-05-09 00:00:00
end: 2024-05-16 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots
//@version=5
strategy("Alligator + MA Trend Catcher [TradeDots]", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 80, commission_type = strategy.commission.percent, commission_value = 0.01)
// william alligator
smma(src, length) =>
smma = 0.0
smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
smma
jawLength = input.int(8, minval=1, title="Jaw Length", group = "william alligator settings")
teethLength = input.int(5, minval=1, title="Teeth Length", group = "william alligator settings")
lipsLength = input.int(3, minval=1, title="Lips Length", group = "william alligator settings")
jawOffset = input(8, title="Jaw Offset", group = "william alligator settings")
teethOffset = input(5, title="Teeth Offset", group = "william alligator settings")
lipsOffset = input(3, title="Lips Offset", group = "william alligator settings")
jaw = smma(hl2, jawLength)
teeth = smma(hl2, teethLength)
lips = smma(hl2, lipsLength)
// ma
input_trendline_length = input.int(200, "Trendline Length", group = "moving average settings")
trendline = ta.ema(close, input_trendline_length)
// strategy settings
input_long_orders = input.bool(true, "Long", group = "Strategy Settings")
input_short_orders = input.bool(true, "Short", group = "Strategy Settings")
//long
if close > trendline and lips > teeth and teeth > jaw and input_long_orders and strategy.opentrades == 0
strategy.entry("Long", strategy.long)
label.new(bar_index, low, text = "🟢 Long", style = label.style_label_up, color = #9cff87)
if close < trendline and lips < teeth and teeth < jaw
strategy.close("Long")
//short
if close < trendline and lips < teeth and teeth < jaw and input_short_orders and strategy.opentrades == 0
strategy.entry("Short", strategy.short)
label.new(bar_index, high, text = "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)
if close > trendline and lips > teeth and teeth > jaw
strategy.close("Short")
//ploting
plot(trendline, "Trendline", color = #9cff87, linewidth = 3)
plot(jaw, "Jaw", offset = jawOffset, color=#b3e9c7)
plot(teeth, "Teeth", offset = teethOffset, color=#c2f8cb)
plot(lips, "Lips", offset = lipsOffset, color=#f0fff1)