top of page

EMA Cross ทำงานอย่างไรบน MT5: อ่านสัญญาณจากแท่งปิด

7 ต.ค.
ยาว 2 นาที

บทความนี้อธิบายแนวคิด EMA Cross บน MT5 ตั้งแต่ความหมายของ EMA การอ่านค่า iMA และ CopyBuffer ไปจนถึงเหตุผลที่ควรระบุแท่งปิดให้ชัดเจน เนื้อหาเป็นการศึกษาเชิงโครงสร้าง ไม่ใช่ผลการทดสอบหรือคำแนะนำให้ส่งคำสั่งซื้อขาย

EMA Cross คืออะไร

EMA Cross คือแนวคิดที่เปรียบเทียบเส้น Exponential Moving Average (EMA) สองเส้นที่ใช้คาบไม่เท่ากัน โดยทั่วไปเรียกเส้นที่ตอบสนองเร็วกว่าว่าเส้นเร็ว และอีกเส้นว่าเส้นช้า เมื่อเส้นเร็วตัดเส้นช้า ผู้พัฒนาอาจนำเหตุการณ์นี้ไปใช้เป็นเงื่อนไขของระบบ แต่การตัดกันหนึ่งครั้งไม่ได้ยืนยันว่าตลาดจะเดินหน้าต่อหรือให้ผลลัพธ์แบบใด

เอกสาร MetaTrader 5 อธิบายว่า Moving Average คือค่าเฉลี่ยของข้อมูลราคาในช่วงเวลาที่กำหนด และ EMA ให้น้ำหนักกับราคาล่าสุดมากกว่า SMA ดังนั้น EMA จึงตอบสนองต่อข้อมูลใหม่เร็วขึ้นตามโครงสร้างของสูตร แต่ความเร็วนี้ไม่ได้แปลว่าไม่มีความล่าช้า หรือจะหลีกเลี่ยงสัญญาณสลับไปมาในตลาดที่แกว่งได้

อ่าน EMA จาก iMA และ CopyBuffer อย่างไร

ใน MQL5 ฟังก์ชัน iMA() คืนค่าเป็น indicator handle ของ Moving Average และกำหนดได้ทั้ง symbol, timeframe, คาบเฉลี่ย, shift, วิธีทำให้เรียบ และ applied price เช่น PRICE_CLOSE ส่วน CopyBuffer() ใช้ดึงค่าจาก buffer ของ indicator handle ตามตำแหน่งที่ต้องการ

คำว่า start position = 0 ในเอกสาร CopyBuffer หมายถึงแท่งปัจจุบัน ซึ่งยังเปลี่ยนค่าได้ขณะมี tick ใหม่เข้ามา การอ่านแท่งที่ปิดแล้วจึงต้องเลื่อนไปยังตำแหน่งย้อนหลัง เช่น 1 สำหรับแท่งที่เพิ่งปิด และ 2 สำหรับแท่งปิดก่อนหน้านั้น ทั้งนี้ต้องตรวจให้ชัดว่าโค้ดจัดลำดับ array และจำนวนข้อมูลที่ copy อย่างไร ไม่ควรสรุปจากตัวเลขตำแหน่งเพียงอย่างเดียวโดยไม่อ่าน source ทั้งส่วน

ตัวอย่างตรรกะ EMA Cross จากแท่งปิด

ตัวอย่างต่อไปนี้เป็นตรรกะเชิงแนวคิด ไม่ใช่ผลการทดสอบหรือคำแนะนำให้ส่งคำสั่งซื้อขาย

หนึ่ง สร้าง handle ของ EMA เร็วและ EMA ช้าด้วย iMA() โดยใช้ symbol, timeframe, period, method และ applied price ที่ระบุไว้ สอง ดึงค่า EMA ของแท่งปิดล่าสุดและแท่งปิดก่อนหน้าด้วย CopyBuffer() โดยบันทึกว่าค่าใดอยู่ที่ตำแหน่งใดใน array สาม ตรวจเงื่อนไขว่าเส้นเร็วเปลี่ยนจากอยู่ต่ำกว่าหรือเท่ากับเส้นช้าในแท่งก่อนหน้า ไปอยู่สูงกว่าเส้นช้าในแท่งล่าสุด หรือเปลี่ยนในทิศตรงข้าม สี่ ป้องกันการประมวลผลซ้ำด้วยแนวคิดหนึ่งครั้งต่อแท่งใหม่ และห้า แยกเงื่อนไขสัญญาณออกจาก volume, spread, margin, stop/target และผลตอบกลับจาก trade server

ทำไมต้องอ่านแท่งปิด

ถ้าอ่านค่าแท่งปัจจุบัน ค่า EMA และสถานะการตัดกันอาจเปลี่ยนไปก่อนแท่งจบ เมื่อแท่งปิดแล้วข้อมูลของแท่งนั้นไม่ควรเปลี่ยนตาม tick ใหม่ของแท่งเดิมอีก การใช้แท่งปิดจึงช่วยให้กติกาที่บันทึกไว้ทบทวนซ้ำได้ชัดเจนกว่า แต่ไม่ได้ทำให้สัญญาณถูกต้องเสมอ และไม่ได้ลบความล่าช้าของ Moving Average

สิ่งที่ต้องระวังคือ Moving Average ใช้ข้อมูลย้อนหลังจึงตอบสนองหลังราคาบางส่วนเกิดขึ้นแล้ว ตลาดที่แกว่งใกล้เส้นค่าเฉลี่ยอาจทำให้เส้นเร็วตัดขึ้นและตัดลงหลายครั้ง และ period, timeframe, applied price, shift กับวิธี EMA ที่ต่างกันทำให้กฎที่อ่านได้เปลี่ยนไป

Checklist ก่อนนำแนวคิดไปทบทวนใน EA

ระบุ symbol และ timeframe ที่ source ใช้จริง ตรวจ period, method, applied price และ shift ของ EMA ทั้งสองเส้น ยืนยันว่าอ่านแท่งปัจจุบันหรือแท่งปิดและ array ถูกจัดลำดับอย่างไร ตรวจว่ามีการรอข้อมูลพร้อมหรือเช็กจำนวนค่าที่ CopyBuffer() คืนกลับมาหรือไม่ ตรวจเงื่อนไขหนึ่งครั้งต่อแท่งใหม่ และแยกสัญญาณออกจาก spread, commission, swap, margin และ trade-server retcode

หากจะประเมินผล ต้องออกแบบ Backtest, Demo และ Live แยกเป็นขั้นตอนและเก็บผลรันจริง ไม่ใช้คำอธิบายของ indicator แทนผลทดสอบ

ภาพโฆษณา TRADERMAN ที่ฝังข้อความ EMA + แท่งปิด และ อ่านกฎก่อนทดสอบ ในภาพจริง

สรุป

EMA Cross คือการเปรียบเทียบ EMA สองเส้น ไม่ใช่เครื่องยืนยันผลลัพธ์ของการเทรด การอ่านค่าจาก iMA() และ CopyBuffer() ต้องระบุให้ชัดว่าใช้แท่งใด และควรทบทวนจากแท่งปิดเมื่อเป้าหมายคือการลดการเปลี่ยนแปลงของเงื่อนไขระหว่างแท่ง หลังจากนั้นยังต้องตรวจต้นทุน การส่งคำสั่ง และผลรันจริงแยกต่างหาก

ข้อมูลนี้จัดทำเพื่อการศึกษาและการวิเคราะห์ ไม่ใช่คำแนะนำการลงทุนเฉพาะบุคคล และไม่รับประกันผลกำไร

อ่านต่อบน TRADERMAN

แหล่งอ้างอิงทางการ

ความคิดเห็น


bottom of page