
Chiến lược này sử dụng chỉ số ATR để tính toán đường dừng động, nhằm mục đích kiểm soát rủi ro.
Chiến lược này sử dụng chỉ số ATR để tính toán đường dừng động, khi giá tăng, đường dừng sẽ tăng lên khi giá tăng lên, để thực hiện khóa lợi nhuận. Khi giá giảm, đường dừng không thay đổi, để tránh dừng thoát. Chỉ số ATR có thể đo lường sự biến động và rủi ro của thị trường, nhân các hệ số để tạo ra đường dừng, do đó kiểm soát từng lỗ hổng rủi ro.
Chiến lược này sử dụng chỉ số ATR và hàm Highest để tính toán đường dừng động. Công thức tính toán cụ thể như sau:
TS=highest(high-Mult*atr(Atr),Hhv)
Trong đó, Atr đại diện cho tham số chu kỳ ATR, Hhv đại diện cho hàm Higherest tìm tham số chu kỳ và Mult đại diện cho hệ số ATR.
Công thức này được tính toán bằng cách tính giá trị của chỉ số ATR, nhân với hệ số Mult để có được phạm vi của vùng lưu trữ dừng. Sau đó tìm giá trị cao nhất trong chu kỳ Hhv trước đó bằng hàm Highest, và trừ đi phạm vi của vùng lưu trữ dừng để có được đường dừng động TS.
Khi giá tăng, giá cao nhất sẽ liên tục sáng tạo cao, do đó dẫn đến việc dừng chân di chuyển lên, thực hiện khóa lợi nhuận. Khi giá giảm, đường dừng chân sẽ giữ nguyên mức cao trước đó, tránh dừng chân thoát ra.
Đường dừng lỗ trong chiến lược này được điều chỉnh động, có thể theo dõi điểm cao nhất sau khi giá tăng, thực hiện khóa lợi nhuận kịp thời. Ưu điểm hơn so với dừng cố định.
Khi giá có sự điều chỉnh bình thường hoặc dừng quá chặt chẽ, đường dừng cố định có thể dễ dàng bị kích hoạt để ngừng giao dịch. Chiến lược này có thể giữ đường dừng không thay đổi khi giá giảm và tránh thoát khỏi lỗ hổng không cần thiết.
Bằng cách điều chỉnh tham số chu kỳ ATR và tham số hệ số, bạn có thể kiểm soát độ nhạy của điều chỉnh đường dừng để đạt được mức độ dừng khác nhau.
Phạm vi của đường dừng lỗ được tính toán động bởi ATR, có thể thiết lập mức dừng lỗ hợp lý dựa trên biến động của thị trường, do đó kiểm soát lỗ hổng rủi ro cho mỗi đơn.
Khi thị trường biến động mạnh, ATR sẽ tăng nhanh và đường dừng sẽ di chuyển nhanh, tăng xác suất dừng không cần thiết. Tại thời điểm này, cần điều chỉnh đúng tham số chu kỳ ATR, giảm độ nhạy của điều chỉnh đường dừng.
Chiến lược này rất khó để đối phó với sự đảo ngược lớn của thị trường, khi đó đường dừng lỗ có thể bị chậm trễ, nên giảm vị trí tránh rủi ro kịp thời.
Chu kỳ ATR, chu kỳ cao nhất và tham số hệ số cần tối ưu hóa tổng hợp, tối ưu hóa khó hơn.
Việc tăng tham số chu kỳ ATR một cách thích hợp có thể làm giảm việc điều chỉnh dây dừng quá thường xuyên, nhưng sẽ làm tăng tổn thất đơn lẻ.
Tăng tham số Highest có thể làm cho đường dừng ổn định hơn, nhưng cần cân bằng tốc độ theo dõi.
Lựa chọn hệ số ATR phù hợp với các đặc điểm của các giống khác nhau, tăng hệ số sẽ ngăn chặn thiệt hại, giảm hệ số sẽ giảm tổn thất đơn lẻ.
Kết hợp với các chỉ số xu hướng hỗ trợ quyết định, có thể làm giảm khả năng đường dừng bị xoá ngược.
Chiến lược này nói chung có lợi thế về dừng động, rủi ro có thể kiểm soát được, áp dụng cho các tình huống xu hướng. Tuy nhiên, cần lưu ý để ngăn ngừa rủi ro do biến động mạnh của tình huống, đồng thời các tham số tối ưu hóa khó khăn hơn. Bằng cách đặt và tối ưu hóa các tham số hợp lý, và phân tích kỹ thuật hỗ trợ, chiến lược này có thể được áp dụng cho giao dịch thực.
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 30m
basePeriod: 15m
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/
// © ceyhun
//@version=4
strategy("ATR Trailing Stoploss Strategy ",overlay=true)
Atr=input(defval=5,title="Atr Period",minval=1,maxval=500)
Hhv=input(defval=10,title="HHV Period",minval=1,maxval=500)
Mult=input(defval=2.5,title="Multiplier",minval=0.1)
Barcolor=input(true,title="Barcolor")
TS=highest(high-Mult*atr(Atr),Hhv),barssince(close>highest(high-Mult*atr(Atr),Hhv) and close>close)
Color=iff(close>TS,color.green,iff(close<TS,color.red,color.black))
barcolor(Barcolor? Color:na)
plot(TS,color=Color,linewidth=3,title="ATR Trailing Stoploss")
Buy = crossover(close,TS)
Sell = crossunder(close,TS)
if Buy
strategy.entry("Buy", strategy.long, comment="Buy")
if Sell
strategy.entry("Sell", strategy.short, comment="Sell")