Danh mục
Kỹ thuật
Độ khó
Trung cấp
Dùng trong
Thiết kế chiến lượcVận hành MT5

Chỉ số định hướng trung bình (ADX)

Chỉ báo ADX đo sức mạnh của xu hướng trên thang từ 0 đến 100 mà không cho biết hướng đi. Các EA dùng nó làm bộ lọc chế độ thị trường: chiến lược theo xu hướng chờ giá trị cao, còn chiến lược hồi quy trung bình chờ giá trị thấp.

còn gọi: ADX, Average Directional Movement Index, DMI

Đã cập nhật

Nói đơn giản

Một con số cho biết thị trường đang di chuyển mạnh đến đâu theo một hướng, nhưng không nói hướng nào. Thấp nghĩa là nó không đi tới đâu cụ thể; cao nghĩa là nó đang đi tới đâu đó, và dấu của hướng phải lấy từ nơi khác.

Vì sao quan trọng

Phần lớn EA thất bại không phải vì logic vào lệnh sai, mà vì logic đó đúng trong một kiểu thị trường và sai trong kiểu còn lại. ADX là cách rẻ nhất để cho một chiến lược có ý kiến về việc nó đang ở kiểu thị trường nào, và đó là lý do nó xuất hiện như một bộ lọc trong nhiều EA hơn hẳn so với vai trò tín hiệu.

  • Nó tách hai họ chiến lược vốn hủy diệt lẫn nhau. EA lưới hoặc hồi quy trung bình thua đều đặn trong xu hướng mạnh, còn EA theo xu hướng mất máu trong vùng đi ngang; chỉ một ngưỡng duy nhất giữ mỗi bên tránh khỏi thời tiết của bên kia.
  • Về mặt cấu tạo nó không có hướng, điều này khiến nó là bộ lọc chứ không phải tín hiệu — và là lý do nó luôn được ghép với thứ gì đó có hướng.
  • Nó chậm. Chính sự làm mượt khiến nó ổn định cũng khiến nó xác nhận xu hướng sau khi xu hướng đã bắt đầu, nên nó hợp để loại bỏ điều kiện xấu hơn là bắt sớm điều kiện tốt.
  • Một bộ lọc là thứ kiểm chứng được: chạy cùng một chiến lược có và không có nó, rồi đọc chênh lệch ở mức sụt giảm vốn chứ không chỉ ở lợi nhuận.

Trong MetaTrader 5

Xuất hiện ở đâu trong MT5

  • Insert → Indicators → Trend → Average Directional Movement Index
  • Cửa sổ chỉ báo vẽ ba đường: chính đường ADX, +DI và −DI
  • Cặp DI mang hướng mà ADX không có — +DI nằm trên −DI là thế tăng giá
  • Strategy Tester → Inputs — chu kỳ và ngưỡng đều là tham số đầu vào, và riêng ngưỡng thì rất dễ dẫn tới tối ưu hóa quá mức

EA dùng nó thế nào

  • Tạo handle trong OnInit — iADX(_Symbol, PERIOD_CURRENT, 14) — rồi đọc buffer 0 cho ADX, buffer 1 cho +DI và buffer 2 cho −DI.
  • Như một cổng chặn đặt trước quy tắc vào lệnh: EA theo xu hướng thoát ra ngay chừng nào ADX chưa vượt ngưỡng; EA đi ngang thoát ra chừng nào ADX chưa xuống dưới ngưỡng.
  • Như một phép kiểm tra hướng khi dùng các đường DI: +DI trên −DI để mua, ngược lại để bán, còn ADX xác nhận rằng thực sự có một xu hướng để đi theo.
  • Đọc trên nến đã đóng chứ không phải nến đang hình thành — một giá trị ADX nhấp nháy qua lại quanh ngưỡng ngay trong nến sẽ tạo ra những lệnh vào không thể tái lập khi kiểm thử.
  • Một số EA còn yêu cầu ADX phải đang tăng chứ không chỉ ở mức cao, nhờ đó loại bớt những giá trị mạnh nhưng đã suy yếu ở cuối một nhịp chạy.

Thiết lập thường gặp

Thiết lập Giá trị thường dùng Ghi chú
Chu kỳ 14 Giá trị mặc định thông dụng. Chu kỳ ngắn hơn phản ứng nhanh hơn và cắt qua ngưỡng thường xuyên hơn, theo cả hai chiều.
Ngưỡng xu hướng 20–25 Trên mức này, logic theo xu hướng được bật. Giá trị chính xác ít quan trọng hơn tính ổn định của nó so với các giá trị lân cận.
Ngưỡng đi ngang dưới 20 EA lưới và hồi quy trung bình thường đòi hỏi điều kiện này trước khi mở bất kỳ vị thế nào.
Xu hướng mạnh trên 40 Ở đây các lệnh ngược xu hướng và hồi quy trung bình thường bị chặn hoàn toàn.
Khung thời gian đọc khung vào lệnh hoặc khung cao hơn một bậc Đọc khung cao hơn cho tín hiệu chế độ chậm và ổn định hơn, đổi lại là phản ứng muộn hơn.

Sự cố vận hành thường gặp

  • Handle được tạo trong OnTick thay vì OnInit, gây rò rỉ và cuối cùng trả về INVALID_HANDLE.
  • CopyBuffer lỗi lúc khởi động khi chưa nạp đủ nến, kết quả đọc ra là ADX bằng không và âm thầm tắt — hoặc bật — bộ lọc.
  • Ngưỡng được đặt đúng ngay chỗ chỉ báo dành phần lớn thời gian, khiến bộ lọc bật tắt liên tục và hành vi của EA bị nhiễu quyết định.
  • Tối ưu ngưỡng theo giá trị backtest tốt nhất, tạo ra một con số chỉ hoạt động trên đúng cửa sổ đã thử.
  • Đọc ADX như thể nó có hướng rồi mua lên khi giá trị cao trong một thị trường đang giảm.

Hàm MT5 liên quan

iADX(symbol, timeframe, adx_period)
Tạo handle; gọi một lần trong OnInit và giữ suốt vòng đời của EA.
CopyBuffer(handle, 0, …)
Chính đường ADX — sức mạnh xu hướng, không có hướng.
CopyBuffer(handle, 1, …) / CopyBuffer(handle, 2, …)
+DI và −DI, cặp có hướng mà đường ADX được suy ra từ đó.
iTime(symbol, timeframe, 1)
Dấu thời gian của nến đã đóng, được EA dùng để bảo đảm giá trị đọc là ổn định.

Ví dụ

Một quy tắc vào lệnh, hai bộ lọc chế độ, hai điều kiện trái ngược. Quy tắc không đổi; thứ thay đổi là thời điểm nó được phép kích hoạt.

ADX dưới 20
chế độ đi ngang
Bật logic hồi quy trung bình và lưới; chặn các lệnh theo xu hướng.
ADX 20–40
xu hướng vừa phải
Bật lệnh theo xu hướng; lệnh ngược xu hướng thường thì không.
ADX trên 40
xu hướng mạnh
Hồi quy trung bình bị chặn hoàn toàn — đây chính là chế độ hủy diệt nó.
+DI so với −DI
hướng đi
ADX cho biết mạnh đến đâu; cặp này cho biết về phía nào.

Tác động đo được của một bộ lọc chế độ thường là mức sụt giảm vốn nhỏ hơn chứ không phải lợi nhuận lớn hơn — nó gỡ bỏ các khoản lỗ thay vì thêm các khoản thắng.

Phép tính if (adx[1] < TrendThreshold) return; // EA theo xu hướng không làm gì trong vùng đi ngang

Kết quả Một chiến lược biết đứng ngoài đúng những điều kiện mà nó chưa bao giờ làm tốt

Cách sử dụng

Hãy đánh giá một bộ lọc qua thứ nó gỡ bỏ. Phép so sánh đúng là cùng một chiến lược có và không có nó, trên cùng một cửa sổ dữ liệu, đọc cả ở mức sụt giảm vốn lẫn ở kết quả ròng.

Khoảng Ý nghĩa
ADX dưới 20 Không có xu hướng thực sự. Lệnh theo xu hướng có kỳ vọng tệ nhất ở đây, và tín hiệu phá vỡ phần lớn thất bại.
ADX 20–40 Một xu hướng thực đang diễn ra. Vùng vận hành thông thường cho logic theo xu hướng.
ADX trên 40 Xu hướng mạnh, và thường đã ở giai đoạn muộn. Lệnh theo xu hướng vẫn hiệu quả; chiến lược ngược xu hướng và lưới đang ở lúc nguy hiểm nhất.
Ngưỡng chỉnh theo giá trị backtest tốt nhất Một tham số bị ép khớp. Hãy kiểm tra xem các ngưỡng lân cận có cho kết quả tương tự không trước khi tin vào nó.
  • Hãy kiểm thử bộ lọc như một thay đổi độc lập chứ không phải một phần của gói: chạy chiến lược với bộ lọc tắt trên cùng dữ liệu rồi so sánh mức sụt giảm vốn, số lệnh và hệ số lợi nhuận.
  • Hãy kỳ vọng số lệnh giảm đi. Một bộ lọc không làm giảm số lệnh thì chẳng lọc được gì cả.
  • Đọc ADX trên nến đã đóng và cân nhắc dùng khung thời gian cao hơn cho quyết định chế độ, để chiến lược không đổi tính cách vài lần trong một phiên.
  • Đừng dùng nó một mình để xác định hướng. Cặp +DI/−DI hoặc một đường trung bình động phải cung cấp dấu.

Trang `/indicators` về ADX trình bày cách tính và cách đọc trên biểu đồ; mục từ này nói về việc dùng nó làm bộ lọc chế độ cho EA.

Sai lầm thường gặp

Đọc ADX như tín hiệu tăng hay giảm

Nó là thước đo sức mạnh không có dấu. Một giá trị cao trong lúc sụp đổ cũng cao đúng như giá trị cao trong lúc tăng vọt, và đó là lý do nó luôn đi kèm với thứ gì đó có hướng.

Đặt ngưỡng ngay chỗ chỉ báo hay lui tới

Nếu ADX dành phần lớn thời gian quanh ngưỡng, bộ lọc sẽ đảo trạng thái liên tục và hành vi của chiến lược do nhiễu quyết định. Một ngưỡng chỉ hữu ích khi nó bị cắt qua hiếm hoi và dứt khoát.

Coi bộ lọc là miễn phí

Mọi bộ lọc đều gỡ bỏ giao dịch, kể cả những giao dịch có lãi. Phép thử là nó gỡ bỏ phần lỗ nhiều hơn phần lãi hay không — và đó là một phép đo, không phải một giả định.

Dùng chu kỳ ADX nhanh để phản ứng sớm hơn

ADX được làm mượt hai lần theo thiết kế. Rút ngắn chu kỳ khiến nó cắt qua ngưỡng thường xuyên hơn theo cả hai chiều, thường là thêm nhiễu cưa chứ không phải vào lệnh sớm hơn.

Câu hỏi thường gặp

Mức ADX bao nhiêu thì coi là có xu hướng?
Giá trị trên khoảng 20 đến 25 là ngưỡng thông dụng để coi thị trường đang có xu hướng, và trên 40 là xu hướng mạnh. Con số chính xác ít quan trọng hơn tính ổn định của nó: một ngưỡng chỉ hiệu quả tại đúng một giá trị trên đúng một cửa sổ kiểm thử là tham số bị ép khớp chứ không phải quy tắc chế độ.
ADX có cho biết xu hướng tăng hay giảm không?
Không. Đường ADX chỉ đo sức mạnh. Hướng đến từ hai đường +DI và −DI mà nó được dựng lên — +DI trên −DI là thế tăng giá — hoặc từ một chỉ báo có hướng riêng như đường trung bình động.
Các EA dùng ADX làm bộ lọc như thế nào?
Như một cổng chặn đặt trước quy tắc vào lệnh. EA theo xu hướng không làm gì chừng nào ADX chưa vượt ngưỡng; EA lưới hoặc hồi quy trung bình không làm gì chừng nào ADX chưa xuống dưới ngưỡng. Tác động thường hiện ra dưới dạng mức sụt giảm vốn nhỏ hơn chứ không phải lợi nhuận lớn hơn, bởi bộ lọc gỡ bỏ những lệnh vào trong điều kiện mà chiến lược xử lý kém nhất.
Vì sao bộ lọc ADX của tôi lại làm kết quả tệ đi?
Có hai nguyên nhân thường gặp. Ngưỡng có thể nằm đúng chỗ chỉ báo dành phần lớn thời gian, nên nó đảo trạng thái theo nhiễu; hoặc bộ lọc đã được tối ưu trên cùng cửa sổ dữ liệu với quy tắc vào lệnh, khi đó nó khớp với các chế độ của cửa sổ ấy chứ không khớp với khái niệm chế độ. Kiểm thử chiến lược có và không có bộ lọc trên dữ liệu ngoài mẫu sẽ tách bạch hai trường hợp này.

Bài viết liên quan