Chiến lược theo xu hướng chỉ dài hạn dựa trên ADX, MA và EMA


Ngày tạo: 2024-01-29 11:30:15 sửa đổi lần cuối: 2024-01-29 11:30:15
sao chép: 1 Số nhấp chuột: 374
1
tập trung vào
1166
Người theo dõi

Chiến lược theo xu hướng chỉ dài hạn dựa trên ADX, MA và EMA

Tổng quan

Chiến lược này chủ yếu là sử dụng các chỉ số ADX để xác định xu hướng và xây dựng đường trung bình di chuyển kết hợp với hai thiết lập tham số khác nhau của MA và EMA để xây dựng chiến lược theo dõi xu hướng chỉ làm nhiều hơn. Khi ADX tăng, nhắc nhở làm nhiều hướng, và khi giá phá vỡ MA và EMA lên, hãy mở nhiều vị trí; khi ADX giảm hoặc giá phá vỡ một trong hai MA hoặc EMA.

Nguyên tắc chiến lược

Chiến lược này chủ yếu sử dụng ADX để xác định xu hướng và cường độ của thị trường. ADX xác định sự tồn tại và cường độ của xu hướng bằng cách tính toán mức độ và hướng thay đổi của giá. Khi ADX tăng, nó cho thấy hiện tại nó đang trong một xu hướng tăng; khi ADX giảm, nó cho thấy xu hướng đang suy yếu.

Chiến lược này sử dụng MA và EMA trung bình di chuyển với hai thiết lập tham số khác nhau để đưa ra phán đoán hỗ trợ. Chúng có thể loại bỏ sự ngẫu nhiên của giá một cách hiệu quả, cho thấy xu hướng chính của giá.

Kết hợp các đặc điểm của ADX và đường trung bình di chuyển, chiến lược này xây dựng các tín hiệu giao dịch để xác định hướng xu hướng: ADX tăng và mở thêm khi giá vượt qua đường MA và EMA, ADX giảm hoặc giá giảm khi MA / EMA bằng, thực hiện một chiến lược theo dõi xu hướng.

Phân tích lợi thế chiến lược

Chiến lược này có một số ưu điểm:

  1. Sử dụng ADX để đánh giá cường độ của xu hướng, giảm các giao dịch không hiệu quả và theo dõi xu hướng;
  2. Bộ lọc trung bình di chuyển kết hợp hai thiết lập tham số khác nhau để xác định xu hướng hiệu quả;
  3. Chỉ cần làm nhiều hơn để tránh mất điểm trượt 29797 do hoạt động ngược thường xuyên;
  4. Điều kiện nhập cảnh nghiêm ngặt, có thể kiểm soát rủi ro;
  5. Một chiến lược theo dõi xu hướng đường dài.

Phân tích rủi ro chiến lược

Chiến lược này cũng có một số rủi ro:

  1. ADX bị tụt hậu, có thể bỏ lỡ thời điểm tốt nhất để tham gia;
  2. Những người làm việc nhiều hơn không thể tận dụng lợi nhuận của sự suy giảm;
  3. Có một số rủi ro mất mát khi xu hướng thay đổi;
  4. Thiết lập tham số không đúng cũng ảnh hưởng đến hiệu suất của chiến lược.

Giải pháp tương ứng:

  1. Điều chỉnh các tham số của ADX để giảm độ trễ;
  2. Có thể thiết lập chiến lược dừng lỗ để kiểm soát tổn thất đơn lẻ;
  3. Các tham số được thử nghiệm và tối ưu hóa, chọn tham số tốt nhất.

Hướng tối ưu hóa chiến lược

Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tăng các chiến lược ngăn chặn tổn thất và kiểm soát rủi ro tốt hơn;
  2. Tăng cường quản lý vị trí, điều chỉnh vị trí theo tình hình thị trường;
  3. Kiểm tra các tham số tối ưu hóa để tìm ra sự kết hợp tốt nhất;
  4. Thêm các thuật toán học máy, tham số tối ưu hóa động;
  5. Xây dựng Martingale làm nhiều chiến lược để giảm ảnh hưởng của tỷ lệ lợi nhuận.

Tóm tắt

Chiến lược tổng thể này là một chiến lược theo dõi xu hướng chỉ làm nhiều sử dụng ADX để đánh giá cường độ xu hướng và hỗ trợ xây dựng tín hiệu lọc bằng hai đường trung bình di chuyển. Nó kiểm soát hiệu quả sự xuất hiện của các giao dịch không hiệu quả, thực hiện hiệu quả của việc theo dõi xu hướng, là một chiến lược theo dõi xu hướng chỉ làm nhiều ổn định hơn.

Mã nguồn chiến lược
/*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")