Strategi penangkapan tren William Herschel adalah strategi pelacakan tren yang menggabungkan William Herschel dan moving average. Strategi ini menggunakan posisi relatif dari tiga garis William Herschel (gigi, gigi, dan bibir) untuk menilai arah tren, sambil menggunakan moving average sebagai konfirmasi kedua dari tren. Strategi ini membuka posisi lebih banyak ketika harga menembus moving average dan tiga garis William Herschel menunjukkan urutan kepala kosong; Strategi ini membuka posisi kosong ketika harga jatuh dari moving average dan tiga garis William Herschel menunjukkan urutan kepala kosong.
Inti dari strategi penangkapan tren William Herschel adalah menggunakan indikator William Herschel dan rata-rata bergerak untuk mengidentifikasi dan mengkonfirmasi tren. Indikator William Herschel terdiri dari tiga garis: garis rahang, garis gigi, dan garis bibir, yang masing-masing adalah rata-rata bergerak yang bergeser dengan siklus yang berbeda.
Strategi menangkap tren William Herschel linear dengan menggabungkan indikator William Herschel dan moving averages, membentuk strategi pelacakan tren yang sederhana dan efektif. Strategi ini cocok untuk pasar yang cenderung kuat, meningkatkan akurasi identifikasi tren melalui mekanisme double confirmation. Namun, strategi ini mungkin berkinerja buruk di pasar yang bergoyang, dan kurangnya langkah-langkah manajemen 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)