Chiến lược này chủ yếu sử dụng chỉ số ADX để đánh giá xu hướng và kết hợp các đường trung bình động MA và EMA với các thiết lập tham số khác nhau để xây dựng một chiến lược theo dõi xu hướng chỉ dài. Khi ADX tăng, nó chỉ ra một hướng dài. Khi giá vượt qua đường MA và EMA tăng, mở các vị trí dài. Khi ADX giảm hoặc giá giảm dưới MA hoặc EMA, đóng các vị trí.
Chiến lược này chủ yếu sử dụng ADX để đánh giá xu hướng và sức mạnh của thị trường. ADX tính toán mức độ và hướng thay đổi giá để xác định sự tồn tại và sức mạnh của xu hướng. Khi ADX tăng, điều đó có nghĩa là hiện đang có xu hướng tăng. Khi ADX giảm, điều đó có nghĩa là xu hướng đang suy yếu.
Chiến lược này cũng sử dụng hai đường trung bình động, MA và EMA, với các thiết lập tham số khác nhau làm phán đoán phụ trợ. Chúng có thể lọc hiệu quả sự ngẫu nhiên của giá và hiển thị hướng xu hướng chính của giá. Khi giá tăng và phá vỡ MA và EMA, đó là tín hiệu dài. Khi giá giảm và phá vỡ, đó là tín hiệu đóng cửa.
Kết hợp các đặc điểm của ADX và đường trung bình động, chiến lược xây dựng các tín hiệu giao dịch để đánh giá hướng xu hướng: đi dài khi ADX tăng và giá vượt qua MA và EMA tăng, và đóng các vị trí khi ADX giảm hoặc giá vượt qua MA / EMA. Nó thực hiện một chiến lược theo dõi xu hướng chỉ dài.
Những lợi thế chính của chiến lược này là:
Ngoài ra còn có một số rủi ro:
Giải pháp:
Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:
Nói chung, đây là một chiến lược theo dõi xu hướng chỉ dài sử dụng ADX để đánh giá sức mạnh xu hướng và hai đường trung bình động như bộ lọc phụ trợ. Nó kiểm soát hiệu quả sự xuất hiện của các giao dịch không hợp lệ và đạt được hiệu quả theo dõi xu hướng. Đây là một chiến lược chỉ dài tương đối ổn định. Với một số tối ưu hóa, sự ổn định và lợi nhuận của chiến lược có thể được tăng thêm.
/*backtest start: 2023-01-22 00:00:00 end: 2024-01-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") maPeriod = input(50, title="MA Period") emaPeriod = input(50, title="EMA Period") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) maValue = sma(close, maPeriod) emaValue = ema(close, emaPeriod) longCondition = sig > sig[1] and close > maValue and close > emaValue if (longCondition) strategy.entry("Long", strategy.long) exitCondition = sig < sig[1] or close < maValue or close < emaValue if (exitCondition) strategy.close("Long") plot(maValue, color=color.blue, title="MA") plot(emaValue, color=color.orange, title="EMA") plot(sig, color=color.red, title="ADX")