Chiến lược theo xu hướng chỉ dài là một chiến lược theo dõi xu hướng giá bằng cách sử dụng trung bình động. Nó xác định xu hướng hiện tại bằng cách tính toán trung bình động của giá cao nhất và thấp nhất trong một khoảng thời gian và kết hợp nó với ATR để dừng lỗ và lấy lợi nhuận năng động. Chiến lược này hoạt động tốt trong thị trường xu hướng bằng cách bắt kịp thời sự đảo ngược xu hướng cho việc nắm giữ dài hạn.
Chiến lược này đầu tiên tính toán các đường trung bình động của giá cao nhất và thấp nhất trong một khoảng thời gian (bất định 200 ngày) và lấy điểm trung bình của chúng làm đường cơ sở. Sau đó nó đo độ lệch của giá so với đường cơ sở. Nếu giá trên đường cơ sở 1 ATR (0,5 lần 10 ngày ATR theo mặc định), nó được coi là xu hướng tăng. Nếu giá dưới đường cơ sở 1 ATR, nó được coi là xu hướng giảm. Các vị trí dài hoặc ngắn được nhập dựa trên trạng thái xu hướng.
Ngoài ra, ATR năng động cho phép dừng lỗ và lấy lợi nhuận để theo dõi xu hướng chính, tránh giao dịch quá mức trên các biến động nhỏ.
Các rủi ro có thể được giảm bằng cách điều chỉnh các tham số ATR, thêm các bộ lọc cho các thiết lập có khả năng cao và đánh giá điều kiện thị trường và ham muốn rủi ro.
Trend Following Long Only Strategy là một hệ thống giao dịch xu hướng tổng thể dễ sử dụng. Nó xác định hướng xu hướng bằng cách sử dụng trung bình năng động và thiết lập kiểm soát rủi ro bằng các điểm dừng dựa trên ATR. Nó có thể nắm bắt hiệu quả những biến động có lợi trong các thị trường xu hướng.
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length") smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length") atr_length = input(10, type=input.integer, minval=1, title="ATR Length") atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier") vola = atr(atr_length) * atr_multiplier price = sma(close, 3) l = ema(lowest(low, lookback_length), smoother_length) h = ema(highest(high, lookback_length), smoother_length) center = (h + l) * 0.5 upper = center + vola lower = center - vola trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3) c = trend < 0 ? upper : lower pcenter = plot(center, transp=100) pclose = plot(close, transp=100) pc = plot(c, transp=100) buy_signal = crossover(trend, 0.0) sell_signal = crossunder(trend, 0.0) strategy.entry("Buy", strategy.long, when=buy_signal) strategy.close("Buy", when=sell_signal) bgcolor(trend >= 0 ? color.green : color.red, transp=95) fill(pc, pclose, color=trend >= 0 ? color.green : color.red)