หมวดหมู่
เทคนิค
ระดับความยาก
ปานกลาง
ใช้ใน
การออกแบบกลยุทธ์การใช้งาน MT5

ดัชนีทิศทางเฉลี่ย (ADX)

อินดิเคเตอร์ ADX วัดความแข็งแรงของเทรนด์บนมาตรา 0 ถึง 100 โดยไม่บอกทิศทาง EA ใช้มันเป็นตัวกรองสภาวะตลาด กลยุทธ์ตามเทรนด์รอค่าที่สูง ส่วนกลยุทธ์คืนสู่ค่าเฉลี่ยรอค่าที่ต่ำ

หรือ: ADX, Average Directional Movement Index, DMI

อัปเดต

อธิบายแบบเข้าใจง่าย

ตัวเลขที่บอกว่าตลาดกำลังเคลื่อนไปในทิศทางหนึ่งแรงแค่ไหน โดยไม่บอกว่าเป็นทิศทางใด ค่าต่ำหมายความว่ามันไม่ได้ไปไหนเป็นพิเศษ ค่าสูงหมายความว่ามันกำลังไปที่ใดที่หนึ่ง และเครื่องหมายของทิศทางต้องมาจากที่อื่น

ทำไมจึงสำคัญ

EA ส่วนใหญ่ล้มเหลวไม่ใช่เพราะตรรกะการเข้าออร์เดอร์ผิด แต่เพราะมันถูกต้องในตลาดแบบหนึ่งและผิดในตลาดอีกแบบหนึ่ง ADX คือวิธีที่ถูกที่สุดในการให้กลยุทธ์มีความเห็นว่าตอนนี้อยู่ในตลาดแบบไหน และนั่นคือเหตุผลที่มันปรากฏเป็นตัวกรองใน EA มากกว่าปรากฏเป็นสัญญาณอย่างมาก

  • มันแยกสองตระกูลที่ทำลายกันเองออกจากกัน EA แบบกริดหรือคืนสู่ค่าเฉลี่ยจะขาดทุนอย่างสม่ำเสมอในเทรนด์ที่แข็งแรง ส่วน EA ตามเทรนด์จะเลือดไหลในตลาดออกข้าง เกณฑ์เดียวก็เพียงพอที่จะกันแต่ละฝ่ายออกจากสภาพอากาศของอีกฝ่าย
  • โดยโครงสร้างแล้วมันไม่มีทิศทาง สิ่งนี้ทำให้มันเป็นตัวกรองไม่ใช่สัญญาณ และเป็นเหตุผลที่มันถูกจับคู่กับสิ่งที่มีทิศทางเสมอ
  • มันช้า การถัวเฉลี่ยที่ทำให้มันนิ่งก็ทำให้มันยืนยันเทรนด์หลังจากที่เทรนด์เริ่มไปแล้วด้วย ดังนั้นมันเหมาะกับการคัดสภาวะที่แย่ออกมากกว่าการจับสภาวะที่ดีตั้งแต่เนิ่นๆ
  • ตัวกรองเป็นสิ่งที่ทดสอบได้ ลองรันกลยุทธ์เดียวกันทั้งแบบเปิดและปิดตัวกรอง แล้วอ่านส่วนต่างที่ระดับการถอยของทุน ไม่ใช่แค่ที่กำไร

ใน MetaTrader 5

อยู่ตรงไหนใน MT5

  • Insert → Indicators → Trend → Average Directional Movement Index
  • หน้าต่างอินดิเคเตอร์วาดสามเส้น ได้แก่ เส้น ADX เอง เส้น +DI และเส้น −DI
  • คู่ DI เป็นตัวถือทิศทางที่ ADX ไม่มี โดย +DI อยู่เหนือ −DI คือการเรียงตัวฝั่งขาขึ้น
  • Strategy Tester → Inputs — คาบและเกณฑ์เป็นพารามิเตอร์นำเข้า และเกณฑ์นี่เองที่ล่อให้เกิดการปรับจนเกินพอดี

EA ใช้อย่างไร

  • สร้าง handle ใน OnInit — iADX(_Symbol, PERIOD_CURRENT, 14) — แล้วอ่าน buffer 0 สำหรับ ADX, buffer 1 สำหรับ +DI และ buffer 2 สำหรับ −DI
  • ใช้เป็นประตูหน้ากฎการเข้าออร์เดอร์ EA ตามเทรนด์จะคืนค่าออกทันทีตราบใดที่ ADX ยังไม่เหนือเกณฑ์ ส่วน EA แบบออกข้างจะคืนค่าออกตราบใดที่ยังไม่ต่ำกว่าเกณฑ์
  • ใช้เป็นการตรวจทิศทางเมื่อใช้เส้น DI คือ +DI เหนือ −DI สำหรับฝั่งซื้อ และกลับกันสำหรับฝั่งขาย โดยมี ADX ยืนยันว่ามีเทรนด์ให้ตามจริงๆ
  • อ่านจากแท่งที่ปิดสมบูรณ์แล้ว ไม่ใช่แท่งที่กำลังก่อตัว ค่า ADX ที่กะพริบข้ามเกณฑ์ภายในแท่งจะสร้างจุดเข้าที่ทำซ้ำไม่ได้ในการทดสอบ
  • EA บางตัวยังกำหนดให้ ADX ต้องกำลังเพิ่มขึ้นไม่ใช่แค่สูง ซึ่งช่วยคัดค่าที่แรงแต่กำลังจางลงช่วงท้ายของการเคลื่อนไหวออกไป

ค่าตั้งทั่วไป

ค่าตั้ง ค่าที่ใช้ทั่วไป หมายเหตุ
คาบ 14 ค่าตั้งต้นตามธรรมเนียม คาบที่สั้นกว่าตอบสนองเร็วกว่าและตัดผ่านเกณฑ์บ่อยกว่า ทั้งสองทิศทาง
เกณฑ์เทรนด์ 20–25 เหนือระดับนี้ตรรกะตามเทรนด์จะถูกเปิดใช้งาน ค่าที่แน่นอนสำคัญน้อยกว่าความนิ่งของมันเมื่อเทียบกับค่าข้างเคียง
เกณฑ์ออกข้าง ต่ำกว่า 20 EA แบบกริดและคืนสู่ค่าเฉลี่ยมักกำหนดเงื่อนไขนี้ก่อนจะเปิดสถานะใดๆ
เทรนด์แข็งแรง สูงกว่า 40 ตรงนี้การเข้าสวนเทรนด์และการคืนสู่ค่าเฉลี่ยมักถูกปิดกั้นทั้งหมด
ไทม์เฟรมที่อ่าน ไทม์เฟรมที่เข้าออร์เดอร์หรือสูงกว่าหนึ่งขั้น การอ่านไทม์เฟรมที่สูงกว่าให้สัญญาณสภาวะที่ช้าและนิ่งกว่า แลกกับการตอบสนองที่ช้าลง

ปัญหาการใช้งานที่พบบ่อย

  • สร้าง handle ไว้ใน OnTick แทนที่จะเป็น OnInit ซึ่งทำให้รั่วและสุดท้ายคืนค่า INVALID_HANDLE
  • CopyBuffer ล้มเหลวตอนเริ่มต้นก่อนที่แท่งเทียนจะโหลดพอ ทำให้อ่านได้เป็น ADX เท่ากับศูนย์ และปิดตัวกรองอย่างเงียบๆ หรือกลับกันคือเปิดมันขึ้นมา
  • วางเกณฑ์ไว้ตรงที่อินดิเคเตอร์ใช้เวลาอยู่มากที่สุดพอดี ตัวกรองจึงเปิดปิดสลับไปมาไม่หยุด และพฤติกรรมของ EA ก็ถูกตัดสินโดยสัญญาณรบกวน
  • ปรับเกณฑ์ให้เข้ากับค่าที่ดีที่สุดของแบ็กเทสต์ ซึ่งได้ตัวเลขที่ทำงานได้เฉพาะบนช่วงข้อมูลที่ทดสอบเท่านั้น
  • อ่าน ADX ราวกับว่ามันบอกทิศทาง แล้วเข้าซื้อเมื่อค่าสูงในตลาดที่กำลังร่วง

ฟังก์ชัน MT5 ที่เกี่ยวข้อง

iADX(symbol, timeframe, adx_period)
สร้าง handle เรียกครั้งเดียวใน OnInit และเก็บไว้ตลอดอายุการทำงานของ EA
CopyBuffer(handle, 0, …)
เส้น ADX เอง คือความแข็งแรงของเทรนด์ ไม่มีทิศทาง
CopyBuffer(handle, 1, …) / CopyBuffer(handle, 2, …)
+DI และ −DI คู่ที่มีทิศทางซึ่งเส้น ADX ถูกอนุมานออกมาจากมัน
iTime(symbol, timeframe, 1)
ป้ายเวลาของแท่งที่ปิดแล้ว ซึ่ง EA ใช้เพื่อให้แน่ใจว่าค่าที่อ่านได้นั้นนิ่ง

ตัวอย่าง

กฎการเข้าออร์เดอร์หนึ่งข้อ ตัวกรองสภาวะสองตัว เงื่อนไขตรงข้ามกัน กฎไม่เปลี่ยน สิ่งที่เปลี่ยนคือช่วงเวลาที่กฎนั้นได้รับอนุญาตให้ทำงาน

ADX ต่ำกว่า 20
สภาวะออกข้าง
เปิดใช้ตรรกะคืนสู่ค่าเฉลี่ยและกริด ปิดกั้นการเข้าตามเทรนด์
ADX 20–40
เทรนด์ปานกลาง
เปิดใช้การเข้าตามเทรนด์ ส่วนการเข้าสวนเทรนด์โดยทั่วไปไม่เปิด
ADX สูงกว่า 40
เทรนด์แข็งแรง
ปิดกั้นการคืนสู่ค่าเฉลี่ยทั้งหมด นี่คือสภาวะที่ทำลายมัน
+DI เทียบกับ −DI
ทิศทาง
ADX บอกว่าแรงแค่ไหน คู่นี้บอกว่าไปทางไหน

ผลที่วัดได้ของตัวกรองสภาวะมักเป็นการถอยของทุนที่น้อยลง ไม่ใช่กำไรที่มากขึ้น เพราะมันตัดการขาดทุนออกไป ไม่ใช่เพิ่มการชนะเข้ามา

การคำนวณ if (adx[1] < TrendThreshold) return; // EA ตามเทรนด์ไม่ทำอะไรเลยในตลาดออกข้าง

ผลลัพธ์ กลยุทธ์ที่งดเว้นในสภาวะที่มันไม่เคยทำได้ดีเลย

ใช้อย่างไร

จงตัดสินตัวกรองจากสิ่งที่มันตัดออก การเปรียบเทียบที่ถูกต้องคือกลยุทธ์เดียวกันทั้งแบบมีและไม่มีตัวกรอง บนช่วงข้อมูลเดียวกัน อ่านทั้งที่การถอยของทุนและที่ผลลัพธ์สุทธิ

ช่วงค่า ความหมาย
ADX ต่ำกว่า 20 ไม่มีเทรนด์ที่มีผลจริง การเข้าแบบตามเทรนด์มีค่าคาดหวังแย่ที่สุดตรงนี้ และสัญญาณเบรกเอาต์ส่วนใหญ่ล้มเหลว
ADX 20–40 มีเทรนด์จริงกำลังดำเนินอยู่ เป็นช่วงทำงานปกติของตรรกะตามเทรนด์
ADX สูงกว่า 40 เทรนด์แข็งแรง และบ่อยครั้งอยู่ในช่วงปลายแล้ว การเข้าตามเทรนด์ยังใช้ได้ แต่กลยุทธ์สวนเทรนด์และกริดอันตรายที่สุดในจังหวะนี้
เกณฑ์ที่จูนตามค่าที่ดีที่สุดของแบ็กเทสต์ พารามิเตอร์ที่ถูกดัดให้เข้ากับข้อมูล ตรวจก่อนว่าเกณฑ์ข้างเคียงให้ผลใกล้เคียงกันหรือไม่ ก่อนจะเชื่อมัน
  • ทดสอบตัวกรองในฐานะการเปลี่ยนแปลงเดี่ยว ไม่ใช่ส่วนหนึ่งของแพ็กเกจ ลองรันกลยุทธ์โดยปิดตัวกรองบนข้อมูลชุดเดิม แล้วเทียบการถอยของทุน จำนวนออร์เดอร์ และค่าตัวประกอบกำไร
  • คาดหวังว่าจำนวนออร์เดอร์จะลดลง ตัวกรองที่ไม่ทำให้จำนวนออร์เดอร์ลดลงก็แปลว่ามันไม่ได้กรองอะไรเลย
  • อ่าน ADX บนแท่งที่ปิดแล้ว และพิจารณาใช้ไทม์เฟรมที่สูงกว่าสำหรับการตัดสินสภาวะ เพื่อไม่ให้กลยุทธ์เปลี่ยนบุคลิกหลายครั้งในหนึ่งเซสชัน
  • อย่าใช้มันลำพังเพื่อกำหนดทิศทาง เครื่องหมายต้องมาจากคู่ +DI/−DI หรือจากเส้นค่าเฉลี่ยเคลื่อนที่

หน้า `/indicators` ของ ADX ครอบคลุมวิธีคำนวณและการอ่านกราฟ ส่วนบทความนี้ว่าด้วยการใช้มันเป็นตัวกรองสภาวะสำหรับ EA

ความเข้าใจผิดที่พบบ่อย

อ่าน ADX ว่าเป็นสัญญาณขาขึ้นหรือขาลง

มันเป็นการวัดความแข็งแรงที่ไม่มีเครื่องหมาย ค่าที่สูงระหว่างตลาดพังทลายก็สูงเท่ากันพอดีกับค่าที่สูงระหว่างตลาดพุ่งขึ้น และนั่นคือเหตุผลที่มันถูกจับคู่กับสิ่งที่มีทิศทางเสมอ

วางเกณฑ์ไว้ตรงที่อินดิเคเตอร์อาศัยอยู่

ถ้า ADX ใช้เวลาส่วนใหญ่อยู่ใกล้เกณฑ์ ตัวกรองจะสลับสถานะตลอดเวลาและพฤติกรรมของกลยุทธ์จะถูกตัดสินโดยสัญญาณรบกวน เกณฑ์จะมีประโยชน์เมื่อมันถูกตัดผ่านไม่บ่อยและอย่างเด็ดขาด

คิดว่าตัวกรองไม่มีต้นทุน

ตัวกรองทุกตัวตัดออร์เดอร์ออกไป รวมถึงออร์เดอร์ที่กำไรด้วย บททดสอบคือมันตัดส่วนขาดทุนออกมากกว่าส่วนกำไรหรือไม่ และนั่นคือการวัด ไม่ใช่การสันนิษฐาน

ใช้คาบ ADX ที่สั้นเพื่อให้ตอบสนองเร็วขึ้น

ADX ถูกถัวเฉลี่ยสองชั้นโดยการออกแบบ การย่นคาบทำให้มันตัดผ่านเกณฑ์บ่อยขึ้นทั้งสองทิศทาง ซึ่งโดยทั่วไปเพิ่มการเหวี่ยงกลับไปมามากกว่าจะทำให้เข้าออร์เดอร์ได้เร็วขึ้น

คำถามที่พบบ่อย

ค่า ADX เท่าไรจึงถือว่ามีเทรนด์
ค่าที่สูงกว่าประมาณ 20 ถึง 25 คือเกณฑ์ตามธรรมเนียมสำหรับการถือว่าตลาดกำลังมีเทรนด์ และสูงกว่า 40 ถือเป็นเทรนด์ที่แข็งแรง ตัวเลขที่แน่นอนสำคัญน้อยกว่าความนิ่งของมัน เกณฑ์ที่ทำงานได้เฉพาะที่ค่าหนึ่งค่าใดบนช่วงทดสอบหนึ่งช่วงเท่านั้นคือพารามิเตอร์ที่ถูกดัดให้เข้ากับข้อมูล ไม่ใช่กฎของสภาวะตลาด
ADX บอกไหมว่าเทรนด์เป็นขาขึ้นหรือขาลง
ไม่บอก เส้น ADX วัดเฉพาะความแข็งแรงเท่านั้น ทิศทางมาจากเส้น +DI และ −DI ที่มันถูกสร้างขึ้นมาจาก โดย +DI อยู่เหนือ −DI คือการเรียงตัวฝั่งขาขึ้น หรือมาจากอินดิเคเตอร์บอกทิศทางแยกต่างหาก เช่น เส้นค่าเฉลี่ยเคลื่อนที่
EA ใช้ ADX เป็นตัวกรองอย่างไร
ใช้เป็นประตูวางไว้หน้ากฎการเข้าออร์เดอร์ EA ตามเทรนด์จะไม่ทำอะไรเลยตราบใดที่ ADX ยังไม่เหนือเกณฑ์ ส่วน EA แบบกริดหรือคืนสู่ค่าเฉลี่ยจะไม่ทำอะไรเลยตราบใดที่ ADX ยังไม่ต่ำกว่าเกณฑ์ ผลที่ได้มักปรากฏเป็นการถอยของทุนที่น้อยลงมากกว่าจะเป็นกำไรที่มากขึ้น เพราะตัวกรองตัดออร์เดอร์ที่เข้าในสภาวะที่กลยุทธ์รับมือได้แย่ที่สุดออกไป
ทำไมตัวกรอง ADX ของผมกลับทำให้ผลแย่ลง
มีสาเหตุที่พบบ่อยสองอย่าง เกณฑ์อาจตั้งอยู่ตรงที่อินดิเคเตอร์ใช้เวลาอยู่มากที่สุดพอดี มันจึงสลับสถานะไปตามสัญญาณรบกวน หรือไม่ตัวกรองก็อาจถูกปรับให้เหมาะบนช่วงข้อมูลเดียวกับกฎการเข้าออร์เดอร์ ซึ่งเท่ากับมันเข้ากับสภาวะของช่วงนั้นไม่ใช่เข้ากับแนวคิดเรื่องสภาวะตลาด การทดสอบกลยุทธ์ทั้งแบบมีและไม่มีตัวกรองบนข้อมูลนอกกลุ่มตัวอย่างจะแยกสองกรณีนี้ออกจากกันได้

บทความที่เกี่ยวข้อง