Expert Advisor (EA) ต่างจากไฟล์ดาวน์โหลดอื่นๆ บนเว็บไซต์นี้ — อินดิเคเตอร์ทำได้แค่พล็อตเส้นหรือแจ้งเตือน แต่ EA จะส่งคำสั่งเทรดแทนคุณจริงๆ EA ฟรีตัวนี้เทรดด้วยกลยุทธ์ breakout ที่สร้างขึ้นจากการที่ราคาทำจุดสูงสุดหรือต่ำสุดใหม่ในรอบ N แท่งเทียน แต่มันจะไม่สั่งเทรดตาม breakout นั้นเพียงลำพัง — มันจะเข้าเทรดก็ต่อเมื่อ On-Balance Volume ยืนยันจุดสูงสุดหรือต่ำสุดใหม่เดียวกันนั้นด้วยตัวมันเองก่อน จากนั้น Stop Loss, Take Profit และขนาดโพซิชันจะถูกจัดการให้อัตโนมัติทั้งหมด ด้วยเครื่องมือชุดเดียวกับที่สอนไว้ในบทเรียนอื่นบนเว็บไซต์นี้ ทั้งแบบอิงความผันผวนและอิงความเสี่ยง
กลยุทธ์ทำงานอย่างไร
สัญญาณเข้าเทรดดิบตรงนี้เป็น breakout แบบง่ายที่สุดเท่าที่จะมีได้ นั่นคือ ราคาปิดของแท่งเทียนที่เพิ่งปิดเป็นราคาปิดสูงสุดในรอบ ConfirmPeriod แท่งที่ผ่านมา (ค่าเริ่มต้น 20) หรือไม่? ถ้าใช่ แปลว่าราคาได้ทะลุขึ้นไปทำจุดสูงสุดใหม่ในระยะสั้น และในทางทฤษฎีนี่คือสัญญาณขาขึ้น — ฝ่ายซื้อได้ดันราคาไปไกลกว่า 20 แท่งเทียนที่ผ่านมา ซึ่งเทรดเดอร์สาย breakout ทั่วไปจะกระโดดเข้าเทรดทันที กรณีตรงข้าม — ราคาปิดของแท่งเทียนที่เพิ่งปิดเป็นราคาปิดต่ำสุดในรอบ ConfirmPeriod แท่งที่ผ่านมา — คือสัญญาณขาลงแบบเดียวกัน
ปัญหาของการเทรดตามสัญญาณนี้เพียงลำพังเป็นสิ่งที่คนเทรด breakout รู้ดี นั่นคือ จุดสูงสุดใหม่ในรอบ N แท่งจำนวนมากเกิดจากการซื้อขายไม่กี่ครั้งที่บางเบา ไม่ใช่แรงซื้อที่แท้จริง และ breakout แบบนั้นมักจะล้มเหลวแล้วย้อนกลับเข้าไปในกรอบราคาเดิมทันที คำตอบของ EA ตัวนี้คือการเรียกร้อง "พยาน" อิสระตัวที่สองก่อนที่จะเชื่อ breakout นั้น ในแท่งเทียนเดียวกันเป๊ะกับที่ราคากำลังทำจุดสูงสุดใหม่ในรอบ N แท่ง EA จะตรวจสอบด้วยว่า OBV — ผลรวมสะสมของ volume ที่บวกเพิ่มเมื่อราคาปิดสูงขึ้นและลบออกเมื่อราคาปิดต่ำลง — กำลังทำจุดสูงสุดใหม่ของตัวมันเองในรอบเวลาย้อนหลังเดียวกันหรือไม่ ราคาและ OBV เป็นการคำนวณคนละแบบที่สร้างจากแท่งเทียนดิบชุดเดียวกัน ดังนั้นเมื่อทั้งสองเห็นตรงกันโดยอิสระว่า "นี่คือจุดสูงสุดในรอบ 20 แท่ง" ความสอดคล้องนั้นมีความหมาย — แปลว่ามี volume จริงอยู่เบื้องหลังการเคลื่อนไหวที่ทำให้ราคาขึ้นไปสูงสุดใหม่ ไม่ใช่แค่การซื้อขายเบาบางที่บังเอิญขยับพ้นกรอบราคาล่าสุด ถ้าราคาทำจุดสูงสุดใหม่แต่ OBV ไม่ยืนยันตาม EA จะถือว่านั่นเป็นสัญญาณเตือนและไม่ทำอะไรเลย — นี่คือแนวคิดหลักที่เนื้อหาส่วนที่เหลือของบทเรียนนี้ต่อยอดขึ้นไป
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 — ราคาปิดของแท่งเทียนที่เพิ่งปิดเป็นราคาปิดสูงสุดในรอบ
ConfirmPeriodแท่งที่ผ่านมา และ ค่า OBV ที่แท่งเทียนเดียวกันนั้นก็เป็นค่า OBV สูงสุดในรอบเวลาย้อนหลังConfirmPeriodแท่งเดียวกันด้วย - SELL — ราคาปิดของแท่งเทียนที่เพิ่งปิดเป็นราคาปิดต่ำสุดในรอบ
ConfirmPeriodแท่งที่ผ่านมา และ ค่า OBV ที่แท่งเทียนเดียวกันนั้นก็เป็นค่า OBV ต่ำสุดในรอบเวลาย้อนหลังเดียวกัน — เป็นรูปแบบที่ตรงข้ามกัน
หากราคาทำจุดสูงสุดหรือต่ำสุดใหม่ในรอบ N แท่ง แต่ OBV ไม่ยืนยันตามที่แท่งเทียนเดียวกันนั้น EA จะไม่ทำอะไรเลย — breakout ของราคาถูก "รับรู้" ไว้ในระบบแต่ไม่ถูกนำไปใช้สั่งเทรด เพราะ volume ยังไม่ได้ยืนยัน นอกเหนือจากเงื่อนไขการยืนยันสองชั้นแล้ว มีกลไกความปลอดภัย 3 อย่างที่ควบคุมทุกเทรดที่ EA ตัวนี้จะเปิดได้ ได้แก่ มันประเมินเงื่อนไขการเข้าเทรดเพียงครั้งเดียวต่อแท่งเทียนใหม่เท่านั้น (ติดตามจากเวลาเปิดของแท่งเทียน) ดังนั้นแท่งเทียนที่ผ่านเงื่อนไขเพียงแท่งเดียวจะไม่สามารถสั่งเทรดซ้ำหลายครั้งภายในแท่งเทียนเดียวกันได้ มันเปิดได้ครั้งละ 1 โพซิชันเท่านั้น โดยตรวจสอบจากการนับเทรดที่เปิดอยู่ซึ่งกรองเฉพาะคู่เงินและ magic number ของตัว EA เองก่อนพิจารณาเข้าเทรดใหม่ทุกครั้ง และมันตรวจสอบ spread ปัจจุบันเทียบกับ MaxSpreadPoints (ค่าเริ่มต้น 30) ก่อนส่งคำสั่ง โดยข้ามการเข้าเทรดไปเลยหาก spread กว้างเกินกว่าจะเทรดที่ราคาที่สมเหตุสมผลได้ ทุกออเดอร์ถูกแท็กด้วย MagicNumber (ค่าเริ่มต้น 20260732) ดังนั้นระบบนับโพซิชันของ EA — รวมถึงระบบจัดการใดๆ ในอนาคต — จะไม่มีวันไปยุ่งกับเทรดที่คุณเปิดเองด้วยมือ หรือเทรดที่เปิดโดย EA ตัวอื่นบนบัญชีเดียวกัน
Parameters
- ConfirmPeriod (ค่าเริ่มต้น 20) — รอบเวลาย้อนหลัง หน่วยเป็นแท่งเทียน ที่ใช้ทั้งสำหรับตรวจสอบจุดสูงสุด/ต่ำสุดของราคาและของ OBV รอบที่สั้นกว่า (เช่น 10) จะตอบสนองต่อ breakout ที่เล็กกว่าและถี่กว่า ส่วนรอบที่ยาวกว่า (เช่น 40-50) จะรอการเคลื่อนไหวของราคาที่มีนัยสำคัญมากกว่าก่อนพิจารณาเข้าเทรด แลกกับสัญญาณที่น้อยลง
- AppliedPrice / AppliedVolume — ฐานราคา/volume ที่ใช้คำนวณ OBV (MT4 มี
AppliedPriceส่วน MT5 มีAppliedVolumeซึ่งค่าเริ่มต้นคือ tick volume — ข้อมูล volume ชนิดเดียวที่ broker forex มีให้จริงๆ) - 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 (ค่าเริ่มต้น 20260732) — แท็กทุกคำสั่งที่ EA นี้ส่งออกไป เพื่อให้ระบบจัดการโพซิชันไม่มีวันไปยุ่งกับเทรดที่เปิดด้วยมือหรือโดย EA ตัวอื่น
- EnableTrading — สวิตช์เปิด/ปิดหลัก ใช้พักการทำงานของ EA ได้โดยไม่ต้องถอดออกจากกราฟ
ทำไมต้องให้ Volume ยืนยัน Breakout
นี่คือแนวคิดหลักในการออกแบบที่ EA ตัวนี้ทั้งหมดถูกสร้างขึ้นมารอบๆ มัน จึงควรอธิบายให้ชัดว่าทำไมมันถึงมีอยู่ แทนที่จะมองข้ามเป็นแค่รายละเอียดเล็กๆ breakout ของราคา — การทำจุดสูงสุดหรือต่ำสุดใหม่ในรอบ N แท่ง — บอกได้แค่ว่าราคาปิดล่าสุดสุดโต่งกว่าทุกอย่างในรอบเวลาย้อนหลังนั้น มันไม่ได้บอกเลยว่าราคานั้นไปถึงจุดนั้นได้ อย่างไร ตลาดที่ซื้อขายบางเบาสามารถทำจุดสูงสุดใหม่ได้จากคำสั่งซื้อขนาดใหญ่เพียงคำสั่งเดียว การไล่ล่า stop หรือการเคลื่อนไหวของราคาแบบสภาพคล่องต่ำในช่วงสั้นๆ แล้วก็ย้อนกลับเข้าไปในกรอบราคาเดิมทันทีในอีกหนึ่งหรือสองแท่งเทียนถัดมา เมื่อความไม่สมดุลนั้นคลี่คลายลง รูปแบบนี้ — มักเรียกกันว่า false breakout — เป็นหนึ่งในวิธีที่พบบ่อยที่สุดที่กลยุทธ์ breakout แบบไร้เดียงสาจะขาดทุน มันซื้อที่จุดสูงสุดของการพุ่งขึ้นที่ไม่มีแรงซื้อจริงอยู่เบื้องหลัง และการย้อนกลับที่ตามมาก็ชน stop เกือบจะทันที
OBV แก้ปัญหานี้ได้เพราะมันวัดสิ่งที่ breakout ของราคาเพียงอย่างเดียวทำไม่ได้ นั่นคือ volume ที่อยู่เบื้องหลังการเคลื่อนไหวนั้นสอดคล้องกับมันจริงหรือไม่ เพราะ OBV จะขึ้นก็ต่อเมื่อราคาปิดสูงขึ้นมีน้ำหนักมากกว่าราคาปิดต่ำลงในแต่ละแท่งต่อเนื่องกัน การที่ OBV ทำจุดสูงสุดใหม่ได้จริงจึงต้องอาศัยแรงซื้อที่ต่อเนื่องสะสมมาตลอดทั้งรอบเวลาย้อนหลัง ไม่ใช่แค่การซื้อขายก้อนใหญ่หนึ่งครั้งในแท่งเทียนที่เกิด breakout เท่านั้น การกำหนดให้ OBV ต้องทำจุดสูงสุดใหม่ของตัวมันเองในแท่งเทียนเดียวกันเป๊ะกับจุดสูงสุดของราคา จึงเปรียบเสมือนการขอให้การคำนวณสองอย่างที่ไม่เกี่ยวข้องกัน แต่สร้างจากข้อมูลดิบชุดเดียวกันด้วยวิธีต่างกัน มาเห็นตรงกันก่อนที่ EA จะเชื่อการเคลื่อนไหวนั้น วิธีนี้จะกรอง breakout ที่บางเบาและไม่น่าเชื่อถือส่วนใหญ่ ซึ่งเป็นต้นเหตุของ false breakout ส่วนใหญ่ออกไป และปล่อยให้ผ่านเฉพาะ breakout ที่มาพร้อมกับแรงซื้อขายที่แท้จริงและต่อเนื่อง ข้อแลกเปลี่ยนคือ EA ตัวนี้บางครั้งจะพลาด breakout ที่เกิดเร็วและ volume บางเบา ซึ่งกลับกลายเป็นของจริงในภายหลัง — การยืนยันด้วย OBV โดยธรรมชาติของมันจะรับรู้ได้แค่แรงซื้อขายที่สะสมไปแล้วเท่านั้น ไม่ใช่การเคลื่อนไหวที่กำลังจะเกิดขึ้น และควรย้ำข้อควรระวังที่สำคัญเฉพาะกับตลาด forex ด้วยว่า "volume" ที่ OBV ใช้บน feed ของ broker forex ส่วนใหญ่คือ tick volume (จำนวนครั้งที่ราคาเปลี่ยนแปลงต่อแท่งเทียน) ไม่ใช่ volume การซื้อขายจริงแบบที่ได้จากตราสารที่จดทะเบียนในตลาดหลักทรัพย์ ดังนั้น OBV ในที่นี้จึงเป็นตัวแทนของแรงซื้อขาย ไม่ใช่การวัดที่แม่นยำ ไม่มีตัวกรองการยืนยันตัวไหน ไม่ว่าจะอิง volume หรืออย่างอื่น ที่รับประกันได้ว่า breakout ที่ยืนยันแล้วจะดำเนินต่อไป มันทำได้แค่เพิ่มโอกาสว่าสัญญาณนั้นสะท้อนแรงซื้อขายจริงมากกว่าจะเป็นแค่ noise ซึ่งเป็นแนวคิดเดียวกับการให้ ADX ยืนยันการตัดกันของทิศทางก่อนสั่งเทรด เพียงแต่นำมาใช้กับ breakout แทนที่จะเป็นการตัดกันของเส้น
การติดตั้งและตั้งค่า
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 ตัวนี้สามารถขาดทุนในบางเทรดได้ ตัวกรองการยืนยันด้วย OBV ช่วยลดจำนวน false breakout ที่มันนำไปใช้สั่งเทรด แต่ไม่สามารถกำจัดมันได้ทั้งหมด และมันไม่ได้ช่วยป้องกัน breakout ที่มี volume สนับสนุนจริงๆ จนถึงจุดที่กลับตัวย้อนกลับในภายหลังอยู่ดี อย่าลืมด้วยว่า OBV บน feed ของ forex สร้างจาก tick volume ไม่ใช่ volume การซื้อขายจริง ดังนั้น "การยืนยัน" ในที่นี้หมายถึงตัวแทนของแรงซื้อขายที่สอดคล้องกับราคา ไม่ใช่การรับประกันจาก order flow ที่ตรวจสอบได้จริงจากตลาดหลักทรัพย์ ควรพิจารณาใช้ร่วมกับการอ่านคุณภาพเทรนด์ด้วยวิธีอื่น (โครงสร้างราคา การตรวจทิศทางใน timeframe ที่ใหญ่กว่า หรือ เทรนด์กับตลาดไซด์เวย์) แทนที่จะเทรดตามสัญญาณนี้เพียงลำพัง ไฟล์ทั้ง MT4 และ MT5 ด้านล่างเป็น source code — เปิดและอ่านให้ครบถ้วน และเข้าใจว่า parameter แต่ละตัวทำอะไรอย่างละเอียด ก่อนนำ EA นี้ไปติดกับบัญชีจริง เนื้อหานี้เป็นการศึกษาทั่วไป ไม่ใช่คำแนะนำการลงทุนส่วนบุคคล
ดาวน์โหลด EA
วิธีติดตั้ง — MetaTrader 4
- ดาวน์โหลดไฟล์
obv-trend-confirmation-ea.mq4ด้านล่าง - เปิด MetaTrader 4 → คลิก
File→Open Data Folder - นำไฟล์ไปวางในโฟลเดอร์
MQL4/Experts - รีสตาร์ท MetaTrader 4 แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ
วิธีติดตั้ง — MetaTrader 5
- ดาวน์โหลดไฟล์
obv-trend-confirmation-ea.mq5ด้านล่าง - เปิด MetaTrader 5 → คลิก
File→Open Data Folder - นำไฟล์ไปวางในโฟลเดอร์
MQL5/Experts - รีสตาร์ท MetaTrader 5 แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ
ไฟล์ทั้งสองเป็น source code — โปรดเปิดและตรวจสอบโค้ดทั้งหมดก่อนใช้งาน เพื่อความปลอดภัยของคุณเอง