MFI (Money Flow Index) เป็นอินดิเคเตอร์ประเภท oscillator ที่วัดความแรงของแรงซื้อและแรงขายในลักษณะเดียวกับ RSI แต่มีความต่างสำคัญอยู่หนึ่งจุด นั่นคือ MFI นำ volume เข้ามาคำนวณด้วย ไม่ใช่แค่ราคาอย่างเดียว ด้วยเหตุนี้จึงมักถูกเรียกเล่นๆ ว่า "Volume-Weighted RSI" — ใช้สเกล 0-100 เหมือนกัน ใช้ตรรกะ Overbought/Oversold เหมือนกัน แต่ถ่วงน้ำหนักด้วยปริมาณการเทรดที่อยู่เบื้องหลังการเคลื่อนไหวของราคาแต่ละครั้ง
MFI คำนวณอย่างไร (แนวคิดเบื้องหลัง)
MFI เริ่มจาก "ราคาทั่วไป" (typical price) ของแต่ละแท่งเทียน ซึ่งเป็นค่าเฉลี่ยของ High, Low และ Close จากนั้นคูณด้วย volume ของแท่งนั้นเพื่อได้ "raw money flow" ราคาทั่วไปของแต่ละแท่งจะถูกเทียบกับแท่งก่อนหน้า ถ้าสูงขึ้น money flow ของแท่งนั้นจะนับเป็น positive money flow ถ้าต่ำลงจะนับเป็น negative money flow ตลอดช่วงเวลาย้อนหลัง (ค่าเริ่มต้นคือ 14 แท่งเทียน) positive money flow ทั้งหมดจะถูกรวมกัน negative money flow ทั้งหมดก็รวมกันเช่นกัน แล้วนำอัตราส่วนระหว่างสองค่านี้ — เรียกว่า money flow ratio — มาแปลงเป็นค่า 0-100 ด้วยสูตรรูปแบบเดียวกับที่ RSI ใช้ คือ 100 ลบด้วย 100 หารด้วย (1 บวกอัตราส่วนนั้น)
แนวคิดง่ายๆ คือ RSI ถามแค่ว่า "แท่งเทียนล่าสุดปิดขึ้นหรือปิดลงเป็นส่วนใหญ่" ส่วน MFI ถามว่า "แท่งเทียนล่าสุดปิดขึ้นหรือปิดลงเป็นส่วนใหญ่ และมี volume อยู่เบื้องหลังการเคลื่อนไหวนั้นมากแค่ไหน" แท่งเทียนที่ปิดสูงขึ้นด้วย volume หนาแน่นจะส่งผลต่อ positive money flow มากกว่าแท่งที่ปิดสูงขึ้นด้วย volume บางเบา แม้ว่าการเปลี่ยนแปลงของราคาบนกราฟจะดูเหมือนกันทุกประการก็ตาม
การอ่านค่า Overbought และ Oversold: ทำไมถึงใช้ 80/20 ไม่ใช่ 70/30
- MFI สูงกว่า 80 — อยู่ใน zone Overbought แรงซื้อ (ที่ถ่วงน้ำหนักด้วย volume) เป็นฝ่ายครองตลาด ราคาอาจใกล้ถึงจุดพักตัว
- MFI ต่ำกว่า 20 — อยู่ใน zone Oversold แรงขายเป็นฝ่ายครองตลาด ราคาอาจใกล้ถึงจุดเด้งกลับ
- MFI ใกล้ 50 — money flow ฝั่งซื้อและฝั่งขายใกล้เคียงกัน
นี่คือจุดที่เทรดเดอร์ที่คุ้นเคยกับ RSI มักสับสนมากที่สุด: ระดับ zone มาตรฐานของ MFI คือ 80/20 ไม่ใช่ 70/30 แบบ RSI หากนำเกณฑ์ 70/30 ของ RSI มาใช้กับ MFI ตรงๆ จะได้สัญญาณน้อยกว่าที่ควรจะเป็นมาก เพราะการถ่วงน้ำหนักด้วย volume มีแนวโน้มบีบค่าสุดขั้วของ MFI ให้แคบลงเล็กน้อยเมื่อเทียบกับ oscillator ที่ใช้ราคาล้วนๆ ระดับ 80/20 ที่กว้างกว่าคือการปรับมาตรฐานสำหรับเรื่องนี้โดยเฉพาะ ไม่ใช่การเลือกแบบสุ่ม หากคุณคุ้นเคยกับระดับของ RSI ให้มองว่าตัวเลขของ MFI มีหน้าตาคล้ายกันแต่ถูกปรับเทียบด้วยความหมายที่ต่างออกไป อย่าคิดว่าสเกลทั้งสองใช้แทนกันได้เพียงเพราะทั้งคู่วิ่งอยู่ในช่วง 0-100 เหมือนกัน
เงื่อนไขการเข้าเทรด
- BUY — MFI ตัดกลับขึ้นเหนือ 20 หลังจากที่เคยอยู่ใน zone Oversold
- SELL — MFI ตัดกลับลงต่ำกว่า 80 หลังจากที่เคยอยู่ใน zone Overbought
เช่นเดียวกับ RSI การ ออกจาก zone สุดขั้วเป็นสัญญาณที่น่าเชื่อถือกว่าการ เข้าสู่ zone นั้น การที่ MFI แตะ 20 เป็นครั้งแรกแค่บอกว่าแรงขายที่ถ่วงน้ำหนักด้วย volume นั้นหนักมาก แต่ไม่ได้บอกว่าแรงกดดันนั้นจบแล้วหรือยัง การรอให้ตัดกลับเข้าสู่กรอบ 20-80 ก่อน จะช่วยกรองกรณีที่พบได้บ่อยมาก คือ MFI ลงไปแตะ zone Oversold แล้วค้างอยู่ตรงนั้น ในขณะที่ราคายังคงไหลลงต่อไปเรื่อยๆ
Parameters
- MFIPeriod (ค่าเริ่มต้น 14) — ช่วงเวลาย้อนหลังที่ใช้รวม positive และ negative money flow ค่ายิ่งสั้นยิ่งตอบสนองเร็วและให้สัญญาณบ่อยขึ้น ค่ายิ่งยาวยิ่งเรียบและเข้าสู่ zone สุดขั้วน้อยลง 14 คือค่าเริ่มต้นที่ใช้ร่วมกันทั้ง RSI, MFI และ oscillator แบบดั้งเดิมส่วนใหญ่บนเว็บไซต์นี้
- Overbought (ค่าเริ่มต้น 80.0) — ระดับ zone ด้านบน
- Oversold (ค่าเริ่มต้น 20.0) — ระดับ zone ด้านล่าง
- EnableAlert (ค่าเริ่มต้น true) — เด้งแจ้งเตือนใน platform ทันทีที่ MFI เข้าหรือออกจาก zone เป็นครั้งแรก
- EnablePush (ค่าเริ่มต้น false) — ส่งการแจ้งเตือนไปยังโทรศัพท์ผ่านแอปมือถือของ MetaTrader ด้วย มีประโยชน์เมื่อคุณไม่ได้เฝ้ากราฟอยู่ตลอดเวลา
MFI เทียบกับ RSI: Volume เพิ่มอะไรเข้ามาจริงๆ
RSI และ MFI ใช้สเกล 0-100 เดียวกันและมีสูตรรูปแบบใกล้เคียงกันมาก แต่ถูกสร้างจากวัตถุดิบที่ต่างกัน อัตราส่วนของ RSI เปรียบเทียบขนาดเฉลี่ยของแท่งปิดขึ้นกับแท่งปิดลงโดยใช้ราคาล้วนๆ ในขณะที่อัตราส่วนของ MFI เปรียบเทียบ money flow ฝั่งขึ้นกับฝั่งลงโดยใช้ราคา คูณ volume ส่วนใหญ่แล้วอินดิเคเตอร์ทั้งสองตัวจะเคลื่อนไหวสอดคล้องกันอย่างใกล้ชิด เพราะราคาและ volume มักเคลื่อนไปด้วยกัน การพุ่งขึ้นแรงๆ มักดึงดูดกิจกรรมการเทรดให้มากขึ้น ไม่ใช่น้อยลง
กรณีที่น่าสนใจคือตอนที่ทั้งสองตัวไม่ตรงกัน ถ้าราคาไต่ขึ้นทำจุดสูงใหม่ด้วย volume ที่บางลงเรื่อยๆ RSI อาจยังคงไต่ขึ้นต่อ (เพราะมันเห็นแค่ว่าแท่งปิดสูงขึ้น) ในขณะที่ MFI อาจแบนราบหรือกลับตัวลง (เพราะมันเห็นว่ามี volume จริงๆ อยู่เบื้องหลังจุดสูงใหม่แต่ละจุดน้อยลง) ช่องว่างแบบนี้ — บางครั้งเรียกว่า money-flow divergence — อ่านได้ในลักษณะเดียวกับ divergence แบบ classic ของ RSI แต่มีชั้นข้อมูลเพิ่มเข้ามา นั่นคือมันบ่งชี้ว่าการเคลื่อนไหวนี้ไม่ได้แค่เสียโมเมนตัม แต่กำลังเสียการมีส่วนร่วมของ volume ไปด้วย โดยหลักการแล้วสิ่งนี้ทำให้ MFI เป็น RSI อีกรูปแบบหนึ่งที่ให้ข้อมูลมากกว่าเล็กน้อย เพราะมันตอบสนองต่อข้อมูล 2 ชุดแทนที่จะเป็นการพล็อตข้อมูลราคาชุดเดิมผ่านมุมมองที่ต่างออกไปเฉยๆ
ข้อควรระวังเรื่อง Volume ในตลาด Forex: Tick Volume กับ Volume จริง
นี่คือส่วนของ MFI ที่เปลี่ยนน้ำหนักที่เทรดเดอร์ forex ควรให้กับครึ่งหนึ่งของการคำนวณที่เป็น "volume" อย่างแท้จริง และควรทำความเข้าใจให้ถ่องแท้ ไม่ใช่แค่อ่านผ่านๆ หุ้นและ futures เทรดผ่านตลาดแลกเปลี่ยนแบบรวมศูนย์ที่รายงาน volume ที่เทรดจริง — จำนวนหุ้นหรือสัญญาจริงที่เปลี่ยนมือ ส่วน forex ต่างออกไป มันเป็นตลาด over-the-counter ที่ไม่มีตลาดแลกเปลี่ยนศูนย์กลางเพียงแห่งเดียว จึงไม่มีตัวเลข volume รวมศูนย์ที่เป็นสากลสำหรับคู่เงินใดๆ สิ่งที่ MetaTrader พล็อตและป้อนเข้าไปใน iMFI() แทนคือ tick volume — จำนวนครั้งที่ราคาที่เสนอเปลี่ยนแปลงระหว่างแท่งเทียนนั้น ไม่ใช่จำนวน lot ที่ถูกเทรดจริง โค้ด MQL5 ของอินดิเคเตอร์นี้เรียกใช้ VOLUME_TICK จาก iMFI() โดยตรง เพราะ volume ที่เทรดจริง (VOLUME_REAL) โดยทั่วไปแล้วไม่มีให้ใช้กับ symbol ของ forex เลย
tick volume เป็นตัวแทน (proxy) ที่พอใช้ได้สำหรับกิจกรรมการเทรด — จำนวนการเปลี่ยนแปลงราคาที่มากขึ้นในแต่ละแท่งมักสัมพันธ์กับการมีส่วนร่วมในตลาดและสภาพคล่องที่แท้จริงมากขึ้นจริงๆ — แต่มันยังเป็นการวัดทางอ้อม ไม่ใช่ของจริง และมีข้อจำกัดที่ต้องรู้ไว้ แต่ละ broker เห็นเฉพาะ tick ที่มาจาก liquidity provider ของตัวเองเท่านั้น ดังนั้น tick volume ของคู่เงินและ timeframe เดียวกันอาจแตกต่างกันอย่างมีนัยสำคัญระหว่าง broker แต่ละราย ไม่มีการรับประกันว่าจำนวน tick ของ broker คุณจะสะท้อนกิจกรรมการเทรดทั่วโลกของคู่เงินนั้นทั้งหมด ในทางปฏิบัติ นี่หมายความว่า MFI บน forex ควรถูกมองเป็น oscillator วัดโมเมนตัม/ความผันผวนที่ผ่านการปรับแต่งมาระดับหนึ่ง ซึ่งตอบสนองต่อ ความถี่ของการเสนอราคา มากกว่าจะเป็นอินดิเคเตอร์วัด volume ตามความหมายแบบตลาดหุ้นจริงๆ มันยังคงเป็นข้อมูลเพิ่มเติมที่มีประโยชน์เหนือกว่า RSI ที่ใช้ราคาล้วนๆ เพียงแต่อย่าให้น้ำหนักกับเรื่อง "volume" ใน MFI มากเท่ากับที่คุณจะให้บนกราฟหุ้นหรือ futures ที่มี volume ที่เทรดจริงอยู่เบื้องหลัง
ข้อควรระวัง
เช่นเดียวกับ oscillator ที่มีขอบเขตทุกตัวบนเว็บไซต์นี้ MFI สามารถค้างอยู่ใน zone Overbought หรือ Oversold เป็นเวลานานระหว่างเทรนด์ที่แข็งแกร่ง และส่งสัญญาณกลับตัวซ้ำๆ ที่ไม่เกิดขึ้นจริง ซึ่งเป็นกับดักเดียวกับที่RSI เจอในเทรนด์ที่แข็งแกร่ง และยิ่งซับซ้อนขึ้นอีกเล็กน้อยจากการประมาณค่าด้วย tick volume ที่อธิบายไว้ข้างต้น ให้ตรวจสอบก่อนว่าตลาดกำลังเป็นเทรนด์หรือไซด์เวย์ (ดูเทรนด์เทียบกับไซด์เวย์) และมองว่าสัญญาณกลับตัวของ MFI น่าเชื่อถือที่สุดในสภาวะไซด์เวย์ หรือกรองสัญญาณด้วยเครื่องมือวัดเทรนด์ เพื่อให้เข้าเฉพาะสัญญาณซื้อใน zone oversold ที่อยู่ภายในเทรนด์ขาขึ้นที่ชัดเจนเท่านั้น และเช่นเดียวกับสัญญาณจากอินดิเคเตอร์ตัวใดก็ตาม ควรกำหนดขนาดโพซิชันอย่างสมเหตุสมผลและกำหนดความเสี่ยงไว้ล่วงหน้าเสมอก่อนเข้าเทรด — ดูพื้นฐานการบริหารความเสี่ยงสำหรับวิธีคำนวณขนาดโพซิชัน
ดาวน์โหลดอินดิเคเตอร์
อินดิเคเตอร์ที่ปรับแต่งเองนี้จะคำนวณ MFI และแจ้งเตือนอัตโนมัติเมื่อเข้าสู่ zone Overbought หรือ Oversold ตามค่าที่คุณตั้งไว้ รองรับทั้ง MetaTrader 4 และ MetaTrader 5 ด้านล่างนี้
วิธีติดตั้ง — MetaTrader 4
- ดาวน์โหลดไฟล์
mfi-alert.mq4ด้านล่าง - เปิด MetaTrader 4 → คลิก
File→Open Data Folder - วางไฟล์ไว้ในโฟลเดอร์
MQL4/Indicators - รีสตาร์ท MetaTrader 4 แล้วลากอินดิเคเตอร์จากหน้าต่าง Navigator ไปวางบนกราฟ
วิธีติดตั้ง — MetaTrader 5
- ดาวน์โหลดไฟล์
mfi-alert.mq5ด้านล่าง - เปิด MetaTrader 5 → คลิก
File→Open Data Folder - วางไฟล์ไว้ในโฟลเดอร์
MQL5/Indicators - รีสตาร์ท MetaTrader 5 แล้วลากอินดิเคเตอร์จากหน้าต่าง Navigator ไปวางบนกราฟ
ไฟล์ทั้งสองเป็น source code — โปรดเปิดและตรวจสอบโค้ดทั้งหมดก่อนใช้งาน เพื่อความปลอดภัยของคุณเอง