Chiến lược nắm bắt xu hướng đường William Herschel là một chiến lược theo dõi xu hướng kết hợp chỉ số William Herschel và đường trung bình di chuyển. Chiến lược này sử dụng vị trí tương đối của ba đường của chỉ số William Herschel (đường răng, răng và môi) để đánh giá xu hướng, đồng thời sử dụng đường trung bình di chuyển làm xác nhận xu hướng thứ hai.
Nền tảng của chiến lược bắt xu hướng theo đường cong William Herschel là sử dụng chỉ số William Herschel và đường trung bình di chuyển để xác nhận và xác nhận xu hướng. Chỉ số William Herschel bao gồm ba đường: Jaw, Teeth và Lips, tương ứng là đường trung bình di chuyển trơn ở các chu kỳ khác nhau.
Chiến lược nắm bắt xu hướng đường thẳng William Herschel, kết hợp với chỉ số William Herschel và đường trung bình di chuyển, tạo thành một chiến lược theo dõi xu hướng đơn giản và hiệu quả. Chiến lược này phù hợp với thị trường có xu hướng mạnh, tăng độ chính xác của nhận dạng xu hướng thông qua cơ chế xác nhận kép. Tuy nhiên, chiến lược có thể hoạt động kém trong thị trường bất ổn và thiếu các biện pháp quản lý rủi ro rõ ràng.
/*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)