LearnForexHub
EA

EA: Chaikin Money Flow Trend Expert Advisor

เขียนโดย , ผู้ก่อตั้งและบรรณาธิการอัปเดตล่าสุด วิธีที่เราเขียนและตรวจทานบทเรียน

อินดิเคเตอร์แค่พล็อตเส้นหรือส่งการแจ้งเตือน — แต่ Expert Advisor (EA) ส่งคำสั่งซื้อขายแทนคุณจริงๆ EA ฟรีตัวนี้เทรด Chaikin Money Flow ที่ตัดผ่าน threshold อย่างเด็ดขาด แต่เฉพาะในทิศทางที่ตัวกรองเทรนด์ EMA เห็นด้วยอยู่แล้วเท่านั้น: เมื่อ accumulation เข้ามาควบคุมบนคู่เงินที่เทรดอยู่เหนือค่าเฉลี่ยระยะยาวของตัวเองแล้ว มันจะเปิด BUY พร้อม Stop Loss, Take Profit และขนาดโพซิชันที่คำนวณอัตโนมัติทั้งหมดจาก ATR และความเสี่ยงของบัญชี

กลยุทธ์ทำงานอย่างไร

สัญญาณเข้าเทรดเริ่มจากการคำนวณ CMF แบบเดียวกับที่อธิบายไว้ในบทเรียน Chaikin Money Flow: volume ของทุกแท่งถูกถ่วงน้ำหนักด้วยตำแหน่งที่ราคาปิดภายในช่วงของแท่งนั้นเอง บวกกันตลอด CMFPeriod แท่ง แล้วหารด้วย volume รวมของหน้าต่างเดียวกัน ผลลัพธ์คือเส้นที่มีขอบเขตราวๆ −1 ถึง +1 ซึ่งเป็นบวกเมื่อ volume ลงไปอยู่ฝั่งซื้อ และเป็นลบเมื่อลงไปอยู่ฝั่งขาย ไม่มีฟังก์ชัน CMF ในตัวทั้งใน MetaTrader 4 และ MetaTrader 5 ดังนั้น EA จึงคำนวณทั้งสามขั้นตอนภายในตัวเองแทนการเรียกอินดิเคเตอร์ของ platform

จุดที่ EA ตัวนี้ต่างจากระบบตัดเส้นศูนย์ธรรมดาคือมันเรียกร้องสองอย่างพร้อมกัน อย่างแรก CMF ต้องตัดผ่าน CMFThreshold (default 0.05) ไม่ใช่แค่แตะศูนย์เฉยๆ — แถบรอบศูนย์นั้นคือที่ที่ CMF ใช้เวลาอยู่เป็นส่วนใหญ่ในตลาดที่สมดุล และการตัดกันภายในแถบนั้นส่วนใหญ่เป็น noise อย่างที่สอง แท่งที่เพิ่งปิดต้องอยู่ฝั่งที่ถูกต้องของ EMA (default 100 period) ตามทิศทางของการเทรด BUY ต้องการให้ CMF ตัดขึ้นเหนือ +0.05 และ ราคาปิดอยู่เหนือ EMA ส่วน SELL ต้องการให้ CMF ตัดลงใต้ −0.05 และ ราคาปิดอยู่ใต้ EMA

Stop Loss, Take Profit และขนาดโพซิชัน

PriceTake Profit (TP)Stop Loss (SL)BUY0+0.05Chaikin Money Flow (volume weighted by where each bar closed)EMA trend filterCMF
Entry conditions: BUY when CMF crosses above +0.05 while price is above the EMA — SELL on the mirrored cross below −0.05 under the EMA — SL and TP are placed automatically from ATR

ทั้ง Stop Loss และ Take Profit ถูกกำหนดขนาดจาก ATR แทนระยะ pip คงที่ ดังนั้น stop จึงสะท้อนว่าคู่เงินนั้นเคลื่อนไหวมากแค่ไหนจริงๆ ในตอนนี้เสมอ ระยะ Stop Loss คือ ATRMultiplier × ATR (default multiplier 2.0, ATR คำนวณตลอด ATRPeriod default 14) และ Take Profit ถูกตั้งที่ RiskRewardRatio × ระยะ Stop Loss (default 2.0) — ทุกการเทรดที่ EA ตัวนี้เปิด ไม่ว่าคู่เงินหรือ timeframe ใด จะมีสัดส่วนผลตอบแทนต่อความเสี่ยงคงที่เท่ากัน

ขนาดโพซิชันใช้วิธีตามตัวอย่างที่คำนวณไว้ใน พื้นฐานการบริหารความเสี่ยง พอดี: RiskPercent (default 1.0%) ของยอดเงินในบัญชีถูกหารด้วยระยะ Stop Loss เพื่อให้ได้ขนาด lot ทำให้จำนวนเงินที่เสี่ยงคงที่โดยประมาณแม้ระยะ stop ที่อิง ATR จะเปลี่ยนไปตามความผันผวน ดู ทำความเข้าใจขนาด Lot สำหรับวิธีที่ขนาด lot นั้นถูกปรับให้เข้ากับค่าต่ำสุด สูงสุด และ step ของ broker ก่อนส่งคำสั่ง UseFixedLot มีไว้เป็นทางออกสำหรับใช้ lot คงที่โดยไม่อิงความเสี่ยงของบัญชี

เงื่อนไขการเข้าเทรด

  • BUY — CMF ตัดขึ้นเหนือ +CMFThreshold บนแท่งที่เพิ่งปิด และ แท่งนั้นปิดเหนือ EMA ที่ TrendMAPeriod
  • SELL — CMF ตัดลงใต้ −CMFThreshold บนแท่งที่เพิ่งปิด และ แท่งนั้นปิดใต้ EMA — เงื่อนไขแบบสะท้อนกลับ

กลไกความปลอดภัยสามอย่างควบคุมทุกการเทรดที่ EA ตัวนี้เปิดได้ ตรงตามมาตรฐานที่ใช้กับทุก EA บนเว็บนี้: มันประเมินเงื่อนไขการเข้าเทรดครั้งเดียวต่อแท่งใหม่หนึ่งแท่งเท่านั้น ติดตามผ่านเวลาเปิดของแท่ง ดังนั้นแท่งเดียวที่เข้าเงื่อนไขจึงไม่สามารถทริกเกอร์การเข้าซ้ำๆ ภายในแท่งเดียวกันได้ มันเปิดโพซิชันได้ครั้งละหนึ่งรายการเท่านั้น ตรวจสอบโดยการนับการเทรดที่เปิดอยู่ซึ่งกรองด้วยคู่เงินและ magic number ของ EA ตัวเองก่อนพิจารณาการเข้าใหม่ และมันเช็ค spread ปัจจุบันเทียบกับ MaxSpreadPoints (default 30) ก่อนส่งคำสั่ง โดยข้ามการเข้าเทรดเมื่อ spread กว้างเกินกว่าจะเทรดได้ในราคาที่สมเหตุสมผล ทุกคำสั่งถูกติดป้ายด้วย MagicNumber (default 20260824) ดังนั้นตรรกะการนับโพซิชันของ EA จึงไม่แตะการเทรดที่เปิดด้วยมือหรือที่ EA ตัวอื่นบนบัญชีเดียวกันเปิดไว้

Parameters

  • CMFPeriod (default 20) — ช่วง look-back ที่ CMF ถูกบวกกัน ค่าสั้นกว่า (10-14) ตอบสนองต่อแท่งที่แรงไม่กี่แท่งได้เร็วและให้การตัดกันบ่อยกว่ามาก ค่ายาวกว่า (30-50) ให้เส้นที่ช้าซึ่งตัดกันน้อยแต่มีน้ำหนักมากกว่าในแต่ละสัญญาณ
  • CMFThreshold (default 0.05) — CMF ต้องตัดผ่านศูนย์ไปไกลแค่ไหนสัญญาณจึงจะนับ ใช้แบบสมมาตรคือ +0.05 สำหรับ BUY และ −0.05 สำหรับ SELL การเพิ่มเป็น 0.15-0.20 เรียกร้องความเชื่อมั่นจริงและเทรดน้อยลงมาก การตั้งเป็น 0 เปลี่ยน EA กลับไปเป็นระบบตัดเส้นศูนย์ธรรมดา
  • UseTrendFilter (default true) — เมื่อปิด EA จะรับทุกการตัด threshold โดยไม่สนใจว่าราคาอยู่ตรงไหนเทียบกับ EMA
  • TrendMAPeriod (default 100) — period ของ EMA ที่ใช้เป็นตัวกรองเทรนด์ ยาวกว่าหมายถึงทิศทางระดับบนที่ช้าและเปลี่ยนไม่บ่อย สั้นกว่าทำให้ตัวกรองพลิกไปตามคลื่นระยะกลาง

ส่วนที่เหลือไม่ได้เป็นของกลยุทธ์ตัวนี้โดยเฉพาะ แต่เป็นการตั้งค่า risk engine ที่ใช้ร่วมกันทั้งคอลเลกชัน EA ของเว็บ ดูคำอธิบายรวมได้ที่หน้ารวม EA EA ตัวนี้ระบุไม้ของตัวเองด้วย magic number 20260824

ทำไม EA ตัวนี้ต้องมีตัวกรองเทรนด์

Chaikin Money Flow วัดแรงกดดัน ไม่ใช่ทิศทาง ความแตกต่างนี้ฟังดูเป็นเรื่องวิชาการจนกว่าคุณจะได้เห็นการตัดเส้นศูนย์ยิงสัญญาณระหว่าง pullback ลึกๆ ภายในเทรนด์ขาลงที่แข็งแรง: ผู้ซื้อเข้ามาจริงๆ ในช่วงหลายแท่ง CMF เป็นบวกจริง และคู่เงินก็ร่วงต่อจริงหลังจากนั้น อินดิเคเตอร์ไม่ได้ผิด — มันรายงาน accumulation จริง มันแค่ไม่มีทางรู้ว่า accumulation นั้นเป็นการเด้งชั่วคราวภายในการเคลื่อนไหวที่ใหญ่กว่า เพราะไม่มีอะไรในการคำนวณ CMF ที่มองย้อนไปไกลกว่า CMFPeriod แท่ง

ตัวกรอง EMA ให้ชิ้นส่วนที่ขาดไปนั้นพอดี ด้วยการเรียกร้องให้ราคาปิดอยู่เหนือ EMA 100 period ก่อนจะ BUY ได้ EA เปลี่ยน CMF จากสัญญาณกลับตัวสองทางให้เป็นสัญญาณเทรดต่อเนื่องทางเดียว: มันซื้อเฉพาะ accumulation ที่เกิดขึ้นภายในเทรนด์ขาขึ้นที่มีอยู่แล้ว และขายเฉพาะ distribution ภายในเทรนด์ขาลงที่มีอยู่แล้ว นั่นเป็นข้อแลกเปลี่ยนโดยตั้งใจ ไม่ใช่การปรับปรุงที่ได้มาฟรีๆ — มันแปลว่า EA จะพลาดจุดต่ำสุดจริงของทุกการกลับตัวอย่างเป็นระบบ เพราะที่จุดกลับตัวจริง ตัวกรองเทรนด์ยังชี้ไปทางเดิมอยู่ เทรดเดอร์ที่อยากให้ EA เทรดสองทางได้อย่างอิสระตั้ง UseTrendFilter เป็น false ได้ และควรคาดหวังว่าจะมีสัญญาณมากขึ้นมากโดยมีสัดส่วนที่ได้ผลต่ำลงอย่างมีนัยสำคัญ

ข้อควรระวัง

ทดสอบบนบัญชี demo ก่อน ในสภาวะตลาดที่ต่างกันและหลายคู่เงิน ก่อนเสี่ยงด้วยเงินจริง — ผล backtest หรือการรัน demo ที่ดีไม่เคยรับประกันผลในอนาคต EA ตัวนี้ขาดทุนในการเทรดแต่ละครั้งได้และจะขาดทุนแน่นอน มันมีข้อควรระวังหนึ่งที่ EA ส่วนใหญ่บนเว็บนี้ไม่มี: spot forex ไม่มี volume จริง ดังนั้นทุกค่า CMF ที่มันคำนวณจึงมาจาก tick volume คือจำนวนครั้งที่ราคาอัปเดตในแท่งนั้น ตามที่ broker ของคุณรายงาน ตัวเลขนั้นอาจต่างกันระหว่าง broker สำหรับคู่เงินเดียวกันในเวลาเดียวกัน ซึ่งหมายความว่าผล backtest บนข้อมูลของ broker หนึ่งไม่ได้โอนไปใช้กับอีกรายได้โดยอัตโนมัติ — ตรวจสอบทั้งสองก่อน ทั้งไฟล์ MT4 และ MT5 ด้านล่างเป็น source code: เปิดอ่านให้ครบและเข้าใจว่าทุก parameter ทำอะไรกันแน่ ก่อนติด EA นี้บนบัญชีจริง บทเรียนนี้มีไว้สอนหลักการทำงาน ไม่ใช่ชี้นำการตัดสินใจเทรดของคุณเอง

ดาวน์โหลด chaikin-money-flow-trend-ea.mq4

สำหรับ MetaTrader 4 — นี่คือ source code (.mq4) เปิดและตรวจสอบให้ครบถ้วนก่อนใช้งาน

ดาวน์โหลดไฟล์

ดาวน์โหลด chaikin-money-flow-trend-ea.mq5

สำหรับ MetaTrader 5 — นี่คือ source code (.mq5) เปิดและตรวจสอบให้ครบถ้วนก่อนใช้งาน

ดาวน์โหลดไฟล์

วิธีติดตั้ง

EA ติดตั้งลงโฟลเดอร์ Experts ไม่ใช่ Indicators — เป็นขั้นตอนที่คนพลาดบ่อยที่สุด

MetaTrader 4

  1. ดาวน์โหลดไฟล์ chaikin-money-flow-trend-ea.mq4 ด้านบน
  2. เปิด MetaTrader 4FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL4/Experts
  4. รีสตาร์ท MetaTrader 4 จากนั้นลากจากหน้าต่าง Navigator ไปวางบนกราฟ
  5. เปิด AutoTrading (MT4) หรือ Algo Trading (MT5) ใน toolbar — EA จะไม่เปิดออร์เดอร์ใด ๆ ขณะที่ปิดอยู่ แม้จะแนบบนกราฟแล้วก็ตาม
  6. ตรวจสอบและปรับค่า input parameter ใน settings dialog ก่อนยืนยัน

MetaTrader 5

  1. ดาวน์โหลดไฟล์ chaikin-money-flow-trend-ea.mq5 ด้านบน
  2. เปิด MetaTrader 5FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL5/Experts
  4. รีสตาร์ท MetaTrader 5 จากนั้นลากจากหน้าต่าง Navigator ไปวางบนกราฟ
  5. เปิด AutoTrading (MT4) หรือ Algo Trading (MT5) ใน toolbar — EA จะไม่เปิดออร์เดอร์ใด ๆ ขณะที่ปิดอยู่ แม้จะแนบบนกราฟแล้วก็ตาม
  6. ตรวจสอบและปรับค่า input parameter ใน settings dialog ก่อนยืนยัน

ทั้งสองไฟล์เป็นซอร์สโค้ด เปิดอ่านใน MetaEditor ก่อนนำไปรันกับบัญชีใด ๆ เสมอ

บทเรียนที่เกี่ยวข้อง

อินดิเคเตอร์

อินดิเคเตอร์: Chaikin Money Flow คืออะไร? อ่านแรงซื้อและแรงขาย

Chaikin Money Flow ถ่วงน้ำหนัก volume ของแต่ละแท่งด้วยตำแหน่งที่ราคาปิดภายในช่วงของแท่งนั้นอย่างไร การตัดเส้นศูนย์และค่า ±0.20 หมายความว่าอะไรกันแน่ และมันต่างจาก OBV, A/D และ MFI อย่างไร พร้อมไฟล์แจ้งเตือน MT4/MT5 พร้อมใช้งาน

ดาวน์โหลดได้ · MetaTrader 4 / MetaTrader 5
อินดิเคเตอร์

อินดิเคเตอร์: ATR คืออะไร? ตั้ง Stop Loss ให้เข้ากับความผันผวน

วัดว่าราคาเคลื่อนไหวจริงมากแค่ไหน แล้วนำไปใช้กำหนด Stop Loss และขนาดโพซิชัน พร้อมไฟล์ MT4/MT5

ดาวน์โหลดได้ · MetaTrader 4 / MetaTrader 5
พื้นฐาน

พื้นฐานการบริหารความเสี่ยง: ขนาดล็อต, Stop Loss, Risk:Reward

หลักการบริหารความเสี่ยงที่ช่วยให้อยู่รอดในตลาดได้ในระยะยาว ก่อนไปศึกษาเรื่องอินดิเคเตอร์