Chiến lược này sử dụng mục tiêu lợi nhuận năng động và dừng lỗ điều chỉnh dựa trên giá và biến động hiện tại.
Lý do là:
Tính toán phạm vi trung bình thực tế (ATR) trong một khoảng thời gian (ví dụ: 20 ngày)
Trong xu hướng tăng, mục tiêu lợi nhuận / dừng là giá cao nhất trừ ATR nhân
Trong xu hướng giảm, mục tiêu lợi nhuận / dừng là giá thấp nhất cộng với số lần ATR
Giao dịch ngược khi giá vượt quá mục tiêu lợi nhuận / dừng
Xu hướng thay đổi khi giá vượt quá mục tiêu lợi nhuận / dừng
Điều chỉnh mục tiêu lợi nhuận / dừng dựa trên tình trạng xu hướng mới
Chiến lược này tận dụng ATR để tự động thiết lập mục tiêu lợi nhuận và dừng lại động. Điều này cho phép khóa lợi nhuận kịp thời và ngăn ngừa tổn thất quá mức.
ATR tự động tính mức lợi nhuận/đừng hoạt động
Đường dẫn điều chỉnh động giá trong thời gian thực
Kiểm soát rủi ro thu lợi nhuận kịp thời và ngừng hoạt động
Các thông số ATR cần tối ưu hóa
Dừng quá gần có nguy cơ bị dừng lại
Cần theo dõi thời gian thực thay đổi ATR
Chiến lược này sử dụng ATR để thiết lập động mức lợi nhuận / dừng cho việc theo dõi tự động.
/*backtest start: 2023-01-01 00:00:00 end: 2023-09-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Dhananjay Volatility stop strategy v1.0", overlay=true) length = input(20) mult = input(1) atr_ = atr(length) max1 = max(nz(max_[1]), close) min1 = min(nz(min_[1]), close) is_uptrend_prev = nz(is_uptrend[1], true) stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_ vstop_prev = nz(vstop[1]) vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop) is_uptrend = close - vstop1 >= 0 is_trend_changed = is_uptrend != is_uptrend_prev max_ = is_trend_changed ? close : max1 min_ = is_trend_changed ? close : min1 vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1 plot(vstop, color = is_uptrend ? green : red, style=line, linewidth=2) bearish = close < vstop bullish = close > vstop if (bullish) strategy.entry("Buy", strategy.long, 1) if (bearish) strategy.entry("Sell", strategy.short, 1)