Tóm tắt: ATR theo dõi chiến lược dừng lỗ là một chiến lược giao dịch dựa trên chỉ số sóng thực trung bình để thiết lập điểm dừng lỗ động. Chiến lược này được áp dụng cho các loại giao dịch ngoại hối có biến động giá, bằng cách theo dõi động biến động thị trường để thiết lập dừng lỗ, nắm bắt lợi nhuận trong xu hướng lớn và đồng thời kiểm soát rủi ro.
Chiến lược này tạo ra một kênh giao dịch bằng cách tính toán chỉ số AVERAGE (đường trung bình của giá) và DIFF đường lên và DIFFLOW đường xuống dựa trên ATR. Khi giá lên đường DIFF, hãy làm nhiều đầu, khi giá xuống đường DIFFLOW, hãy làm đầu trống, sử dụng ATR để thiết lập điểm dừng lỗ động, đạt được vị trí bằng phẳng khi dừng lỗ.
Cụ thể, chiến lược này tính toán AVERAGE di chuyển đơn giản của giá và chỉ số ATR, và tính toán DIFF lên đường và DIFFLOW xuống đường dựa trên giá trị ATR nhân với một hệ số nhân. Điều này tạo ra một kênh giao dịch, giới hạn trên và dưới của kênh được xác định bởi DIFF và DIFFLOW.
Bằng cách này, chiến lược có thể liên tục thực hiện nhiều shorting trong xu hướng lớn để nắm bắt lợi nhuận, đồng thời kiểm soát rủi ro thông qua ATR theo dõi động dừng lỗ, phù hợp với các giống có biến động lớn.
Chiến lược này có những ưu điểm sau:
Sử dụng chỉ số ATR để dừng lại động, bạn có thể đặt mức dừng lại linh hoạt theo mức độ biến động của thị trường, tránh dừng lại quá gần hoặc quá xa.
Thiết lập một kênh giao dịch để nắm bắt cơ hội quay trở lại giá trị trung bình trong xu hướng lớn. Chiến lược này có thể đạt được tỷ lệ sử dụng vốn tốt hơn khi giá bị đình trệ.
Tiếp tục tham gia vào xu hướng giảm giá nhiều hơn, không cần dự đoán giá sẽ tăng hoặc giảm, theo dõi xu hướng để có lợi nhuận tốt hơn.
Đặt tham số đơn giản và các quy tắc giao dịch, dễ hiểu và thực hiện, phù hợp với giao dịch tự động.
Tỷ lệ sử dụng vốn cao, không cần phải dự đoán hướng đột phá, giao dịch liên tục có thể mang lại nhiều cơ hội lợi nhuận hơn.
Chiến lược này cũng có một số rủi ro cần lưu ý:
Thiết lập tham số ATR quá lớn có thể dẫn đến việc dừng lỗ quá xa và không thể kiểm soát rủi ro hiệu quả. Ưu tiên ATR được thiết lập ở mức 1 đến 3 lần ATR hàng ngày.
Trong thị trường tổng hợp, giao dịch tích cực, biến động giá lớn, sẽ thường xuyên kích hoạt dừng lỗ. Bạn có thể điều chỉnh hệ số ATR để giảm tần suất kích hoạt dừng lỗ.
Một số thời gian giá có thể phá vỡ kênh và quay trở lại, tại thời điểm này chiến lược sẽ gây ra tổn thất. Có thể kết hợp với bộ lọc xu hướng, chỉ tham gia khi xu hướng phá vỡ kênh.
Khi có sự thay đổi lớn, dừng lỗ có thể không có tác dụng bảo vệ tốt. Bạn có thể xem xét thêm thiết lập dừng lỗ tối đa để tránh dừng lỗ quá lớn.
Chiến lược này có thể được tối ưu hóa như sau:
Tối ưu hóa tham số ATR để tìm ra hệ số ATR phù hợp, có thể theo dõi lỗ dừng và không quá nhạy cảm.
Tham gia chỉ số đánh giá xu hướng, chỉ làm nhiều khi xu hướng tăng, làm trống khi xu hướng giảm, tránh giao dịch không theo xu hướng.
Kiểm tra các tham số riêng biệt cho các giống khác nhau để tìm ra sự kết hợp các tham số phù hợp cho mỗi giống.
Tối ưu hóa cơ hội nhập học, có thể xem xét nhập học khi phá vỡ đường trung tâm.
Các nhà đầu tư cũng cần phải kiểm soát mức lỗ hổng của họ.
ATR theo dõi chiến lược dừng lỗ bằng cách thiết lập một kênh giao dịch, tiếp tục giao dịch trong xu hướng lớn để nắm bắt lợi nhuận, đồng thời sử dụng ATR để thiết lập lỗ hổng động, kiểm soát rủi ro. Chiến lược này phù hợp với các giống biến động lớn, có thể nhận được tỷ lệ sử dụng vốn tốt hơn. Trong thực tế, cần tối ưu hóa các tham số và có thể xem xét thêm xu hướng phán đoán để hoàn thiện hơn nữa.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Investoz
//@version=4
strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input(26, type=input.integer, minval=1, title="Length")
mul = input(1, type=input.float, minval=0, title="Length")
mullow = input(2, type=input.float, minval=0, title="Length")
price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow
bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)
FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2019)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
startTimeOk() => true
if (startTimeOk())
strategy.entry("KOP", strategy.long, when=bull_cross)
strategy.close("KOP", when=bear_cross)
strategy.entry("SALJ", strategy.short, when=bear_cross)
strategy.close("SALJ", when=bull_cross)
plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)