Moving Average คืออะไร? ใช้ MA Filter กับ EA อย่างไร
อธิบาย SMA/EMA, trend filter, crossover และข้อจำกัดเรื่อง lag เมื่อนำ Moving Average ไปใช้ในระบบอัตโนมัติ

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

จากภาพจะเห็นว่าทั้งสองเส้นทำจุดสูงสุดช้ากว่าราคาหลายแท่ง ความต่างระหว่าง SMA กับ EMA ไม่ได้อยู่ที่ว่าเส้นไหน “ทำนายได้ดีกว่า” แต่อยู่ที่ว่าเส้นไหนเกาะราคาใกล้กว่า
และการเกาะใกล้กว่าไม่ได้แปลว่าดีกว่าเสมอ เพราะ EMA จะตอบสนองต่อการแกว่งระยะสั้นมากกว่าด้วย ถ้าเป้าหมายคือกรองสัญญาณรบกวนออก SMA ที่นิ่งกว่าอาจเหมาะกว่า การเลือกจึงขึ้นกับหน้าที่ที่อยากให้เส้นนั้นทำ
ใช้เป็นตัวกรองทิศทาง
รูปแบบที่ใช้กันมากที่สุดคือใช้เส้นคาบยาวเป็นตัวกำหนดว่าจะอนุญาตให้เทรดฝั่งไหน เช่นเปิดฝั่งซื้อเฉพาะเมื่อราคาอยู่เหนือ EMA 200 และเปิดฝั่งขายเฉพาะเมื่ออยู่ใต้เส้น
จุดสำคัญคือตัวกรองแบบนี้ไม่ได้สร้างจุดเข้า มันแค่ตัดครึ่งหนึ่งของโอกาสทิ้งไป ระบบยังต้องมีเงื่อนไขเข้าของตัวเองอยู่ดี การเข้าใจผิดว่าตัวกรองคือสัญญาณเป็นสาเหตุที่ทำให้หลายระบบเปิดคำสั่งบ่อยเกินจำเป็น
สัญญาณตัดกันและข้อจำกัด
เช่น EMA 20 ตัด EMA 50 ขึ้นอาจตีความว่าสถานะเป็นขาขึ้น และตัดลงอาจตีความว่าเป็นขาลง วิธีนี้เข้าใจง่ายและเขียนเป็นเงื่อนไขได้ตรงไปตรงมา

ปัญหาคือในตลาดที่ไม่มีทิศทางชัดเจน สองเส้นจะพันกันไปมา ทำให้เกิดการตัดกันถี่มากและส่วนใหญ่ไม่ได้นำไปสู่การเคลื่อนไหวต่อ ผลคือเสียต้นทุนจาก Spread และค่าธรรมเนียมสะสมโดยไม่ได้อะไรกลับมา
วิธีลดปัญหาที่ใช้กันคือเพิ่มเงื่อนไขประกอบ เช่นต้องมีระยะห่างระหว่างสองเส้นขั้นต่ำก่อนจึงนับเป็นสัญญาณ หรือใช้ร่วมกับตัวกรองความผันผวนเพื่อเลี่ยงช่วงที่ตลาดนิ่ง
แท่งที่ปิดแล้วกับแท่งที่กำลังวิ่ง
เรื่องนี้เป็นสาเหตุอันดับต้น ๆ ที่ทำให้ผลทดสอบย้อนหลังไม่ตรงกับการใช้งานจริง ถ้าระบบคำนวณจากแท่งที่ยังไม่ปิด ค่าของเส้นจะเปลี่ยนไปมาหลายครั้งภายในแท่งเดียว
ผลคือสัญญาณอาจเกิดขึ้นแล้วหายไปก่อนแท่งจะปิด ทำให้ระบบเปิดคำสั่งจากเงื่อนไขที่สุดท้ายไม่เป็นจริง ในการทดสอบย้อนหลังที่ใช้ราคาปิดอย่างเดียว ปัญหานี้จะไม่ปรากฏ แต่จะโผล่มาทันทีเมื่อใช้งานจริง
ทางแก้คือระบุให้ชัดเจนในระบบว่าใช้แท่งไหน และถ้าเลือกใช้แท่งที่ปิดแล้ว ต้องยอมรับว่าสัญญาณจะช้าไปหนึ่งแท่งเสมอ ซึ่งเป็นการแลกความแม่นยำกับความเสถียร
ใช้หลาย Timeframe ร่วมกัน
รูปแบบที่พบบ่อยคือใช้ Timeframe ใหญ่กำหนดทิศทางและ Timeframe เล็กหาจังหวะเข้า เช่นดูแนวโน้มจาก H1 แล้วเข้าที่ M5
สิ่งที่ต้องระวังคือการอ่านข้อมูลจาก Timeframe ใหญ่ที่แท่งยังไม่ปิด ซึ่งอาจทำให้ระบบใช้ข้อมูลที่ยังไม่สมบูรณ์ และในบางกรณีอาจกลายเป็นการใช้ข้อมูลอนาคตโดยไม่ตั้งใจระหว่างการทดสอบย้อนหลัง จึงควรตรวจเสมอว่าเวลาของแท่งที่อ่านมาตรงกับที่ตั้งใจ ดูเรื่องการเลือกกรอบเวลาเพิ่มเติมได้ในบทความ Timeframe
สรุป
Moving Average เป็นเครื่องมือสร้างบริบทที่เข้าใจง่ายและเขียนเป็นเงื่อนไขได้ชัดเจน แต่มีความล่าช้าตามธรรมชาติที่แก้ไม่ได้ จึงควรใช้ร่วมกับตรรกะอื่น แทนที่จะคาดหวังให้สัญญาณตัดกันตอบโจทย์ได้ในทุกสภาพตลาด



Discussion