Expert Advisor (EA) ต่างจากไฟล์ดาวน์โหลดอื่นๆ บนเว็บไซต์นี้ — อินดิเคเตอร์ทำได้แค่พล็อตเส้นหรือแจ้งเตือน แต่ EA จะส่งคำสั่งเทรดแทนคุณจริงๆ EA ฟรีตัวนี้เทรดด้วยกลยุทธ์แบบตามเทรนด์ (trend-following) ที่สร้างขึ้นจาก ADX และเส้นคู่หูของมันคือ +DI กับ -DI — มันจับตาดูการตัดกันของ +DI และ -DI แต่จะสั่งเทรดตามการตัดกันนั้นก็ต่อเมื่อ ADX เองยืนยันแล้วว่ามีเทรนด์ที่แข็งแรงจริงเกิดขึ้น จากนั้น Stop Loss, Take Profit และขนาดโพซิชันจะถูกจัดการให้อัตโนมัติทั้งหมด ด้วยเครื่องมือชุดเดียวกับที่สอนไว้ในบทเรียนอื่นบนเว็บไซต์นี้ ทั้งแบบอิงความผันผวนและอิงความเสี่ยง
กลยุทธ์ทำงานอย่างไร
สัญญาณเข้าเทรดดิบคือการตัดกันของ +DI และ -DI: +DI (Plus Directional Indicator) วัดแรงกดดันขาขึ้นของราคา ส่วน -DI (Minus Directional Indicator) วัดแรงกดดันขาลงของราคา และเส้นไหนอยู่เหนืออีกเส้นในขณะนั้น ในทางทฤษฎีก็คือฝ่ายที่กำลังควบคุมทิศทางราคาอยู่ เมื่อ +DI ตัดขึ้นเหนือ -DI หมายความว่าฝ่ายซื้อเพิ่งเข้ามาแทนที่ฝ่ายขาย ส่วนเมื่อ -DI ตัดขึ้นเหนือ +DI ก็คือกลับกัน แต่ลำพังเส้นทั้งสองนี้จะตัดกันบ่อยมากในตลาดที่นิ่งและไม่มีทิศทางชัดเจน — มันแกว่งใกล้กันและสลับตำแหน่งกันไปมาทุกๆ ไม่กี่แท่งเทียนโดยไม่มีเทรนด์จริงเกิดขึ้นเลย ทำให้การตัดกันแบบดิบๆ เป็นสัญญาณที่มี noise สูงและคุณภาพต่ำหากใช้ตัวเดียวโดดๆ
ตรงนี้เองที่ ADX เข้ามามีบทบาท ADX ไม่ได้บอกว่าราคากำลังเคลื่อนไปทิศทางไหน แต่บอกว่าเทรนด์ปัจจุบันแข็งแรงแค่ไหน บนสเกล 0-100 โดยไม่สนใจทิศทาง EA ตัวนี้จะสั่งเทรดตามการตัดกันของ +DI/-DI ก็ต่อเมื่อค่า ADX ปัจจุบันอยู่ที่หรือสูงกว่า TrendLevel (ค่าเริ่มต้น 25.0) ซึ่งเป็นเกณฑ์ที่ถูกยอมรับกันอย่างกว้างขวางว่าเป็นเส้นแบ่งระหว่างตลาดที่แกว่งตัวไซด์เวย์กับตลาดที่มีเทรนด์ชัดเจนแล้ว ในทางปฏิบัติหมายความว่า EA ตัวนี้ไม่ได้เป็นแค่ "ซื้อเมื่อ +DI ตัดขึ้นเหนือ -DI" เฉยๆ แต่เป็น "ซื้อเมื่อ +DI ตัดขึ้นเหนือ -DI และ ตลาดในภาพรวมได้พิสูจน์แล้วผ่านค่า ADX ว่าฝ่ายใดฝ่ายหนึ่งกำลังครองความได้เปรียบอยู่จริง" เงื่อนไขเสริมเพียงข้อเดียวนี้คือสิ่งที่แยก EA ตัวนี้ออกจาก version ที่มี noise มากกว่าของตัวมันเอง และเป็นแนวคิดหลักที่เนื้อหาส่วนที่เหลือของบทเรียนนี้ต่อยอดขึ้นไป
Stop Loss, Take Profit และขนาดโพซิชัน
ทั้ง Stop Loss และ Take Profit คำนวณจาก ATR แทนที่จะใช้ระยะ pip คงที่ ดังนั้น stop จึงสะท้อนว่าคู่เงินนั้นกำลังเคลื่อนไหวมากแค่ไหนจริงๆ ในขณะนั้น แทนที่จะเป็นตัวเลขที่กำหนดไว้ครั้งเดียวแล้วไม่เคยเปลี่ยน ระยะ Stop Loss คือ ATRMultiplier × ATR (ค่าเริ่มต้น multiplier คือ 2.0 คำนวณ ATR จาก ATRPeriod ค่าเริ่มต้น 14) และ Take Profit ถูกตั้งเป็น RiskRewardRatio × ระยะ Stop Loss (ค่าเริ่มต้น 2.0) — ดังนั้นออเดอร์ BUY ที่ตั้ง stop แบบอิง ATR ไว้ที่ 20 pip จะได้เป้าหมาย (target) ที่ 40 pip โดยอัตโนมัติ และทุกเทรดที่ EA ตัวนี้เปิด ไม่ว่าจะเป็นคู่เงินหรือ timeframe ไหนก็ตาม จะมีสัดส่วนผลตอบแทนต่อความเสี่ยงเท่ากันเสมอ
ขนาดโพซิชันใช้วิธีเดียวกับตัวอย่างการคำนวณใน พื้นฐานการบริหารความเสี่ยง คือนำ RiskPercent (ค่าเริ่มต้น 1.0%) ของยอดเงินในบัญชี หารด้วยระยะ Stop Loss เพื่อได้ขนาด lot ทำให้จำนวนเงินที่เสี่ยงต่อเทรดคงที่ในระดับหนึ่ง แม้ว่าระยะ stop แบบอิง ATR จะเปลี่ยนไปตามความผันผวนที่เปลี่ยนไปก็ตาม stop ที่กว้างในคู่เงินที่ผันผวนจะได้ lot ที่เล็กลง ส่วน stop ที่แคบในคู่เงินที่นิ่งจะได้ lot ที่ใหญ่ขึ้น lot ที่คำนวณได้จะถูกปรับให้เข้ากับขนาด lot ขั้นต่ำ ขั้นสูงสุด และช่วงขั้น (step) ของ broker ก่อนส่งคำสั่ง UseFixedLot มีไว้เป็นทางเลือกสำรองสำหรับเทรดเดอร์ที่อยากเทรดด้วยขนาด lot คงที่แทนการคำนวณตามความเสี่ยงของบัญชี — มีประโยชน์สำหรับการทดสอบ หรือสำหรับบัญชีขนาดเล็กที่การคำนวณตามเปอร์เซ็นต์จะปัดลงเหลือ lot ขั้นต่ำของ broker อยู่ดี
เงื่อนไขการเข้าเทรด
- BUY — +DI ตัดขึ้นเหนือ -DI บนแท่งเทียนที่เพิ่งปิด และ ค่า ADX ปัจจุบันอยู่ที่หรือสูงกว่า
TrendLevel(ค่าเริ่มต้น 25.0) - SELL — -DI ตัดขึ้นเหนือ +DI บนแท่งเทียนที่เพิ่งปิด และ ค่า ADX ปัจจุบันอยู่ที่หรือสูงกว่า
TrendLevel— เป็นรูปแบบที่ตรงข้ามกัน
หากเกิดการตัดกันของ DI ขึ้นในขณะที่ ADX ยังต่ำกว่าเกณฑ์ EA จะไม่ทำอะไรเลย — การตัดกันนั้นถูก "รับรู้" ไว้ในระบบแต่ไม่ถูกนำไปใช้สั่งเทรด เพราะตลาดยังไม่ได้พิสูจน์ว่ามีเทรนด์แข็งแรงพอที่จะเชื่อสัญญาณนั้นได้ นอกเหนือจากตัวกรอง ADX แล้ว มีกลไกความปลอดภัย 3 อย่างที่ควบคุมทุกเทรดที่ EA ตัวนี้จะเปิดได้ ได้แก่ มันประเมินเงื่อนไขการเข้าเทรดเพียงครั้งเดียวต่อแท่งเทียนใหม่เท่านั้น (ติดตามจากเวลาเปิดของแท่งเทียน) ดังนั้นการตัดกันครั้งเดียวจะไม่สามารถสั่งเทรดซ้ำหลายครั้งภายในแท่งเทียนเดียวกันได้ มันเปิดได้ครั้งละ 1 โพซิชันเท่านั้น โดยตรวจสอบจากการนับเทรดที่เปิดอยู่ซึ่งกรองเฉพาะคู่เงินและ magic number ของตัว EA เองก่อนพิจารณาเข้าเทรดใหม่ทุกครั้ง และมันตรวจสอบ spread ปัจจุบันเทียบกับ MaxSpreadPoints (ค่าเริ่มต้น 30) ก่อนส่งคำสั่ง โดยข้ามการเข้าเทรดไปเลยหาก spread กว้างเกินกว่าจะเทรดที่ราคาที่สมเหตุสมผลได้ ทุกออเดอร์ถูกแท็กด้วย MagicNumber (ค่าเริ่มต้น 20260728) ดังนั้นระบบนับโพซิชันของ EA — รวมถึงระบบจัดการใดๆ ในอนาคต — จะไม่มีวันไปยุ่งกับเทรดที่คุณเปิดเองด้วยมือ หรือเทรดที่เปิดโดย EA ตัวอื่นบนบัญชีเดียวกัน
Parameters
- ADXPeriod (ค่าเริ่มต้น 14) — ช่วงย้อนหลังที่ใช้คำนวณ ADX, +DI และ -DI period ที่สั้นกว่าจะตอบสนองไวกว่าแต่ตัดกันบ่อยกว่า ส่วน period ที่ยาวกว่าจะเรียบกว่าแต่ยืนยันเทรนด์ได้ช้ากว่า
- TrendLevel (ค่าเริ่มต้น 25.0) — ค่า ADX ขั้นต่ำที่ต้องมีก่อนที่การตัดกันของ +DI/-DI จะถูกนำไปใช้สั่งเทรด การปรับค่าให้สูงขึ้น (เช่น 30-35) จะเรียกร้องเทรนด์ที่แข็งแรงและชัดเจนกว่า และให้เทรดที่น้อยลงแต่มั่นใจมากขึ้น ส่วนการปรับให้ต่ำลง (เช่น 20) จะปล่อยให้การตัดกันผ่านเข้ามาได้มากขึ้น รวมถึงบางส่วนจากเทรนด์ที่ยังก่อตัวไม่เต็มที่
- ATRPeriod (ค่าเริ่มต้น 14) — ช่วงย้อนหลังที่ใช้คำนวณ ATR สำหรับกำหนดระยะ Stop Loss
- ATRMultiplier (ค่าเริ่มต้น 2.0) — ระยะ Stop Loss = ATR × ค่านี้
- RiskRewardRatio (ค่าเริ่มต้น 2.0) — ระยะ Take Profit = ระยะ Stop Loss × ค่านี้
- UseFixedLot — เปลี่ยนวิธีคำนวณขนาดโพซิชันจากแบบตามความเสี่ยงเป็นขนาด lot คงที่
- FixedLotSize (ค่าเริ่มต้น 0.01) — ขนาด lot ที่ใช้เมื่อเปิดใช้งาน
UseFixedLot - RiskPercent (ค่าเริ่มต้น 1.0) — เปอร์เซ็นต์ของยอดเงินในบัญชีที่ยอมเสี่ยงต่อการเทรด ใช้คำนวณขนาด lot เมื่อ
UseFixedLotปิดอยู่ - MaxSpreadPoints (ค่าเริ่มต้น 30) — ข้ามการเข้าเทรดใหม่หาก spread กว้างกว่าค่านี้ เพื่อหลีกเลี่ยงการเปิดเทรดที่ราคาไม่ดีช่วงสภาพคล่องต่ำ
- MagicNumber (ค่าเริ่มต้น 20260728) — แท็กทุกคำสั่งที่ EA นี้ส่งออกไป เพื่อให้ระบบจัดการโพซิชันไม่มีวันไปยุ่งกับเทรดที่เปิดด้วยมือหรือโดย EA ตัวอื่น
- EnableTrading — สวิตช์เปิด/ปิดหลัก ใช้พักการทำงานของ EA ได้โดยไม่ต้องถอดออกจากกราฟ
ทำไมต้องกรองการตัดกันของ DI ด้วย ADX
นี่คือแนวคิดหลักในการออกแบบที่ EA ตัวนี้ทั้งหมดถูกสร้างขึ้นมารอบๆ มัน จึงควรอธิบายให้ชัดว่าทำไมมันถึงมีอยู่ แทนที่จะมองข้ามเป็นแค่รายละเอียดเล็กๆ การตัดกันของ +DI/-DI เพียงอย่างเดียวบอกได้แค่ว่าแรงกดดันขาขึ้นเพิ่งแซงแรงกดดันขาลงไปหรือกลับกัน — มันไม่ได้บอกเลยว่าน่าเชื่อถือแค่ไหน ในตลาดที่แกว่งตัวแคบๆ ไซด์เวย์ ราคาจะสับไปมารอบค่าเฉลี่ยที่ค่อนข้างนิ่ง และ +DI กับ -DI จะสลับตำแหน่งกันตลอดเวลา เพราะฝ่ายซื้อและฝ่ายขายผลัดกันได้เปรียบเพียงไม่กี่แท่งเทียนก่อนจะเสียเปรียบอีกครั้ง กลยุทธ์ที่เทรดตามการตัดกันทุกครั้งจะเปิดและปิดโพซิชันซ้ำๆ ในตลาดที่ไม่ได้ไปไหนจริงๆ เสียค่า spread และ slippage ในทุกการเริ่มต้นที่ผิดพลาด โดยไม่มีเทรนด์จริงเกิดขึ้นมาชดเชยเลย
ADX แก้ปัญหานี้ได้เพราะมันวัดสิ่งที่การตัดกันของ DI เพียงอย่างเดียวทำไม่ได้ นั่นคือความต่อเนื่อง (persistence) ADX จะสูงขึ้นก็ต่อเมื่อฝ่ายใดฝ่ายหนึ่ง — ผู้ซื้อหรือผู้ขาย — ชนะต่อเนื่องแท่งเทียนแล้วแท่งเทียนเล่า ส่วนมันจะต่ำและแบนราบเมื่อทั้งสองฝ่ายสลับกันควบคุมไปมา ซึ่งเป็นสภาวะเดียวกับที่ทำให้เกิดการตัดกันของ DI บ่อยครั้งและคุณภาพต่ำ การกำหนดให้ ADX ต้องอยู่ที่หรือสูงกว่า 25 ก่อนที่จะสั่งเทรดตามการตัดกัน จึงเปรียบเสมือนการขอให้ตลาดพิสูจน์ตัวเองก่อน ผ่านความสม่ำเสมอของทิศทางที่มันแสดงออกมา ว่าการตัดกันครั้งนั้นควรค่าแก่การเชื่อถือ วิธีนี้จะกรองการตัดกันที่ผิดพลาดและสับไปมาส่วนใหญ่ที่เกิดขึ้นระหว่างช่วงตลาดสะสมกำลัง (consolidation) ออกไป และปล่อยให้ผ่านเฉพาะการตัดกันที่เกิดขึ้นพร้อมกับ (หรือหลังจากไม่นาน) ตลาดที่ได้พิสูจน์แล้วว่าสามารถรักษาการเคลื่อนไหวไปทิศทางเดียวได้ ข้อแลกเปลี่ยนคือ EA ตัวนี้บางครั้งจะเข้าเทรดช้ากว่ากลยุทธ์ที่เทรดตามการตัดกันของ DI แบบดิบๆ — เพราะเทรนด์จริงต้องสร้างหลักฐานของตัวเองขึ้นมาก่อน — และบางครั้งมันก็ยังอาจโดนเทรนด์ที่ ADX สูงหลอกได้อยู่ดี ในจังหวะที่กำลังจะหมดแรงพอดี เพราะ ADX วัดความแข็งแรงที่เกิดขึ้นไปแล้ว ไม่ใช่ความแข็งแรงที่กำลังจะเกิดขึ้น ไม่มีตัวกรองความแข็งแรงของเทรนด์ตัวไหน ไม่ว่าจะเป็น ADX หรืออย่างอื่น ที่รับประกันได้ว่าเทรนด์ที่ยืนยันแล้วจะดำเนินต่อไป มันทำได้แค่เพิ่มโอกาสว่าสัญญาณนั้นมีความหมายจริงมากกว่าจะเป็นแค่ noise ซึ่งนั่นคือขอบความได้เปรียบ (edge) แบบที่ EA เทรดตามเทรนด์ต้องการ และเป็นเหตุผลที่ควรใช้ร่วมกับการบริหารความเสี่ยงที่ดี และควรอ่านสภาวะ เทรนด์กับตลาดไซด์เวย์ ในภาพกว้างก่อนเทรดคู่เงินใดก็ตามด้วย
การติดตั้งและตั้งค่า
EA ติดตั้งในโฟลเดอร์ที่ต่างจากอินดิเคเตอร์ — เป็นขั้นตอนที่คนพลาดบ่อยที่สุด
- ดาวน์โหลดไฟล์ด้านล่างสำหรับ platform ของคุณ
- เปิด MetaTrader → คลิก
File→Open Data Folder - นำไฟล์ไปวางในโฟลเดอร์
MQL4/Experts(MetaTrader 4) หรือMQL5/Experts(MetaTrader 5) — ไม่ใช่ โฟลเดอร์ Indicators - รีสตาร์ท MetaTrader แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ
- เปิดใช้งาน AutoTrading (MT4) หรือ Algo Trading (MT5) บนแถบเครื่องมือ — EA จะไม่ส่งคำสั่งเทรดใดๆ เลยถ้าปิดสวิตช์นี้อยู่ แม้จะติดอยู่บนกราฟแล้วก็ตาม
- ตรวจสอบและปรับ parameter ในหน้าต่างตั้งค่าของ EA ก่อนยืนยัน
ข้อควรระวัง
ทดสอบบนบัญชีเดโมก่อนเสมอ ในสภาวะตลาดที่หลากหลายและหลายคู่เงิน ก่อนนำเงินจริงไปเสี่ยง — ผลการทดสอบย้อนหลัง (backtest) หรือผลงานที่ดีบนบัญชีเดโม ไม่เคยรับประกันผลลัพธ์ในอนาคต EA ตัวนี้สามารถขาดทุนในบางเทรดได้ ตัวกรอง ADX ช่วยลดจำนวนการตัดกันของ DI ที่ผิดพลาดที่มันนำไปใช้สั่งเทรด แต่ไม่สามารถกำจัดมันได้ทั้งหมด และมันไม่ได้ช่วยป้องกันเทรนด์ที่แข็งแรงจริงๆ จนถึงจุดที่กำลังจะกลับตัว — ค่า ADX ที่สูงเป็นการบอกสิ่งที่เกิดขึ้นไปแล้ว ไม่ใช่คำสัญญาว่าจะเกิดอะไรต่อไป ควรพิจารณาใช้ร่วมกับการอ่านคุณภาพเทรนด์ด้วยวิธีอื่น (โครงสร้างราคา ทิศทางใน timeframe ที่ใหญ่กว่า หรือการอ่านความชันของ ADX ที่พูดถึงในบทเรียน ADX) แทนที่จะเทรดตามสัญญาณนี้เพียงลำพัง ไฟล์ทั้ง MT4 และ MT5 ด้านล่างเป็น source code — เปิดและอ่านให้ครบถ้วน และเข้าใจว่า parameter แต่ละตัวทำอะไรอย่างละเอียด ก่อนนำ EA นี้ไปติดกับบัญชีจริง เนื้อหานี้เป็นการศึกษาทั่วไป ไม่ใช่คำแนะนำการลงทุนส่วนบุคคล
ดาวน์โหลด EA
วิธีติดตั้ง — MetaTrader 4
- ดาวน์โหลดไฟล์
adx-trend-strength-ea.mq4ด้านล่าง - เปิด MetaTrader 4 → คลิก
File→Open Data Folder - นำไฟล์ไปวางในโฟลเดอร์
MQL4/Experts - รีสตาร์ท MetaTrader 4 แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ
วิธีติดตั้ง — MetaTrader 5
- ดาวน์โหลดไฟล์
adx-trend-strength-ea.mq5ด้านล่าง - เปิด MetaTrader 5 → คลิก
File→Open Data Folder - นำไฟล์ไปวางในโฟลเดอร์
MQL5/Experts - รีสตาร์ท MetaTrader 5 แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ
ไฟล์ทั้งสองเป็น source code — โปรดเปิดและตรวจสอบโค้ดทั้งหมดก่อนใช้งาน เพื่อความปลอดภัยของคุณเอง