
Chiến lược này là một chiến lược giao dịch dựa trên xu hướng theo dõi trung bình di chuyển. Nó sử dụng trung bình di chuyển của giá cao nhất và giá thấp nhất được đặt theo các tham số khác nhau để đánh giá xu hướng thị trường và tạo ra tín hiệu giao dịch tương ứng tại điểm biến xu hướng.
Chiến lược này sử dụng trung bình di chuyển đơn giản của giá cao nhất và giá thấp nhất với các tham số khác nhau để đánh giá xu hướng thị trường. Cụ thể, nó tạo ra hai nhóm trung bình di chuyển theo dõi:
Hệ thống trung bình di chuyển theo dõi lên bao gồm h1 và l1. h1 là trung bình di chuyển đơn giản với giá cao nhất, thể hiện xu hướng thị trường trên đường; l1 là đường đi của h1 trừ đi giá trị ATR.
Hệ thống trung bình di chuyển theo dõi xuống bao gồm h2 và l2. h2 là trung bình di chuyển đơn giản với giá thấp nhất, thể hiện xu hướng thị trường dưới đường; l2 là đường trên được tạo thành từ h2 cộng với giá trị ATR. Khi giá vượt qua h2, nó tạo ra tín hiệu lỗ trống; khi giá vượt qua l2, nó tạo ra tín hiệu lỗ trống.
Sử dụng hệ thống hai đường dẫn có thể xác định chính xác hơn các điểm thay đổi xu hướng, lọc một số giao dịch ồn. Đồng thời, giá trị ATR được sử dụng để thiết lập mức dừng lỗ và dừng, kiểm soát tỷ lệ lợi nhuận rủi ro cho mỗi đơn.
Chiến lược này có một số ưu điểm:
Chiến lược này cũng có một số rủi ro:
Phản ứng:
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này nói chung là một chiến lược theo dõi xu hướng đơn giản và thực tế, ý tưởng cốt lõi là nhận diện xu hướng đảo ngược và hạn chế tổn thất đơn lẻ thông qua lọc hai đường ray và ATR động. Có một giá trị thực tế nhất định, đồng thời có không gian tối ưu hóa lớn. Có thể đạt được hiệu quả tốt hơn thông qua điều chỉnh tham số, kết hợp với các chỉ số khác.
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")
lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")
atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier
h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a
h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a
buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)
buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)
y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)
fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)