Forex
EA

EA: Fractals Breakout Expert Advisor

อัปเดตล่าสุด 2026-07-18

Expert Advisor (EA) ต่างจากไฟล์ดาวน์โหลดอื่นๆ บนเว็บไซต์นี้ — อินดิเคเตอร์ทำได้แค่พล็อตกราฟหรือแจ้งเตือน แต่ EA จะส่งคำสั่งเทรดแทนคุณจริงๆ EA ฟรีตัวนี้เทรดด้วยกลยุทธ์ breakout ที่สร้างขึ้นจาก Fractals ทั้งหมด โดยติดตามจุดสวิงสูง (swing high) และสวิงต่ำ (swing low) ที่เพิ่งได้รับการยืนยันล่าสุดบนกราฟ เข้าเทรดเมื่อราคาปิดทะลุจุดใดจุดหนึ่ง คำนวณ Stop Loss, Take Profit และขนาดโพซิชันให้อัตโนมัติ และจัดการทีละ 1 โพซิชันเท่านั้น มีจุดหนึ่งที่ทำให้ EA ตัวนี้ต่างจาก EA ตัวอื่นบนเว็บไซต์นี้อย่างชัดเจน คือ Stop Loss ของมันไม่ได้คำนวณจาก ATR เลย — แต่ใช้ระดับ Fractal ที่ถูกทะลุนั้นเองแทน ด้วยเหตุผลที่จะอธิบายด้านล่าง

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

Fractal คือจุดสวิงสูงหรือสวิงต่ำในระดับพื้นที่ (local) ที่ได้รับการยืนยันแล้ว — เป็นรูปแบบ 5 แท่งเทียน ที่แท่งกลางมีจุดสูงสุด (หรือต่ำสุด) สูงกว่า (หรือต่ำกว่า) แท่งเทียนสองแท่งทั้งสองฝั่ง ตรงตามที่บทเรียน Fractalsของเว็บไซต์นี้อธิบายไว้ EA ตัวนี้ตรวจจับรูปแบบเดียวกันนี้ทุกครั้งที่แท่งเทียนปิดสมบูรณ์ และเก็บค่าไว้ในหน่วยความจำสองค่า คือ ราคาของ up-fractal ที่เพิ่งได้รับการยืนยันล่าสุด และราคาของ down-fractal ที่เพิ่งได้รับการยืนยันล่าสุด ทุกครั้งที่มี fractal ใหม่ได้รับการยืนยัน ค่าที่เก็บไว้จะถูกเขียนทับ ส่วนในช่วงระหว่างการยืนยันแต่ละครั้ง EA จะยึดค่าล่าสุดที่เคยเห็นไว้ต่อไป

ตรรกะการเข้าเทรดเป็น breakout ตรงไปตรงมาเทียบกับสองค่าที่เก็บไว้นั้น สัญญาณ BUY จะเกิดขึ้นเมื่อราคาปิดของแท่งเทียนที่เพิ่งปิดสมบูรณ์ล่าสุดทะลุขึ้นเหนือราคา up-fractal ที่เก็บไว้ — ราคาที่ทะลุขึ้นเหนือจุดสวิงสูงที่ได้รับการยืนยันแล้ว ส่วนสัญญาณ SELL เกิดจากเงื่อนไขตรงข้าม คือ ราคาปิดของแท่งเทียนที่ปิดสมบูรณ์ทะลุลงต่ำกว่าราคา down-fractal ที่เก็บไว้ ซึ่งเป็นการทะลุลงต่ำกว่าจุดสวิงต่ำที่รู้จักแล้ว สิ่งสำคัญคือ EA ตัวนี้สืบทอดความล่าช้าในการยืนยัน (confirmation lag) แบบเดียวกับที่ตัวอินดิเคเตอร์ Fractals มีอยู่ในตัวเอง เพราะ fractal จะได้รับการยืนยันไม่ได้จนกว่าจะผ่านไปสองแท่งเทียนหลังจากจุดสวิงที่เป็นตัวเลือกนั้น ระดับที่ EA กำลังใช้เทรดจึงถูกล็อกไว้ตั้งแต่สองสามแท่งเทียนก่อนที่จะเกิดความพยายาม breakout เสมอ ไม่เคยเป็นแบบเรียลไทม์ โค้ดสะท้อนเรื่องนี้ตรงๆ ทั้ง MT4 และ MT5 อ่านค่า iFractals(...) ที่ shift 2 ซึ่งเป็นความล่าช้าเดียวกับที่อินดิเคเตอร์แจ้งเตือน Fractals ของเว็บไซต์นี้ใช้ ทำให้ระดับที่เก็บไว้เป็นจุดสวิงที่ได้รับการยืนยันจริงเสมอ ไม่ใช่การเดาจุดที่ยังก่อตัวไม่เสร็จ

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

PriceStop Loss = broken fractal levelTake Profit (TP)BUYEntry: close breaks above the most recent confirmed up-fractal
Entry conditions: BUY when price closes above the last confirmed up-fractal, SL at that fractal's own level — SELL on the mirrored break below a down-fractal

นี่คือหัวข้อที่สำคัญที่สุดสำหรับการเข้าใจ EA ตัวนี้โดยเฉพาะ EA ตัวอื่นส่วนใหญ่บนเว็บไซต์นี้คำนวณ Stop Loss จาก ATR ซึ่งเป็น stop ที่ปรับตามความผันผวน กว้างขึ้นในคู่เงินที่ผันผวนมาก และแคบลงในช่วงที่นิ่ง EA ตัวนี้ไม่ได้ทำแบบนั้น และไม่ใช่เพราะพลาดไป Fractal เป็นระดับที่จับต้องได้และผูกติดกับราคาจริงอยู่แล้ว สร้างขึ้นจากโครงสร้างของตลาดเอง — มันคือราคาที่แน่นอนซึ่งจุดสวิงสูงหรือสวิงต่ำได้เกิดขึ้นจริง ยืนยันด้วยแท่งเทียนจริง 5 แท่ง ไม่ใช่ตัวเลขประมาณการทางสถิติว่าราคามักเคลื่อนไหวไปไกลแค่ไหน การเอา ATR มาซ้อนทับบนระบบที่ใช้ Fractal อยู่แล้วจะเป็นเพียงความเห็นที่สองที่แยกออกจากกันเกี่ยวกับระยะ stop ที่ fractal ได้กำหนดไว้โดยตรงอยู่แล้ว

ดังนั้นเมื่อ EA เปิด BUY จาก breakout ที่ได้รับการยืนยันแล้ว Stop Loss จะถูกวางไว้ตรงระดับ up-fractal ที่ถูกทะลุพอดี — จุดสวิงสูงที่ราคาเพิ่งปิดทะลุขึ้นไป ซึ่งตอนนี้ถูกตีความใหม่เป็นแนวรับใหม่ใต้เทรดนั้น ตรรกะแบบเดียวกันใช้กับ SELL คือ Stop Loss จะอยู่ที่ระดับ down-fractal ที่ถูกทะลุ จุดสวิงต่ำที่ราคาเพิ่งปิดทะลุลงไป ซึ่งตอนนี้ถูกมองเป็นแนวต้านใหม่เหนือเทรดนั้น ส่วน Take Profit จะถูกตั้งเป็นสัดส่วนคูณของระยะ Stop Loss นั้น — RiskRewardRatio ค่าเริ่มต้น 2.0 — หมายความว่าเมื่อตั้งค่า 2.0 เป้าหมายกำไรจะอยู่ไกลจากจุดเข้าเป็นสองเท่าของระยะ stop ทำให้ทุกเทรดมีสัดส่วนความเสี่ยงต่อผลตอบแทนคงที่และรู้ล่วงหน้าได้ ไม่ว่าระยะ stop ที่คำนวณจาก fractal ในเทรดนั้นๆ จะกว้างหรือแคบแค่ไหนก็ตาม

ขนาดโพซิชันคำนวณด้วยวิธีเดียวกับ EA ตัวอื่นทุกตัวบนเว็บไซต์นี้ คือ RiskPercent ของยอดเงินในบัญชี (ค่าเริ่มต้น 1.0%) หารด้วยระยะ Stop Loss แปลงผ่านมูลค่า tick ของสัญลักษณ์นั้น และปรับให้เข้ากับ lot step ของ broker — ด้วยวิธีเดียวกับตัวอย่างการคำนวณในพื้นฐานการบริหารความเสี่ยง stop ที่กว้างขึ้นจาก fractal จะได้ขนาด lot เล็กลง และ stop ที่แคบลงจะได้ขนาด lot ใหญ่ขึ้น ทำให้ความเสี่ยงเป็นเงินดอลลาร์ต่อเทรดคงที่แม้ระยะ stop จะแตกต่างกันไปในแต่ละ breakout ขึ้นอยู่กับว่าจุดสวิงที่ถูกทะลุอยู่ห่างจากราคาเข้าเทรดแค่ไหน มี input UseFixedLot พร้อมค่า FixedLotSize ให้เลือกใช้เป็นทางเลือกสำหรับเทรดเดอร์ที่ต้องการเทรดด้วยขนาด lot คงที่แทนที่จะคำนวณตามความเสี่ยง นอกจากนี้ยังมีการตรวจสอบความปลอดภัยในตัว หากระยะ Stop Loss ที่คำนวณได้ออกมาเป็นศูนย์หรือติดลบ EA จะข้ามเทรดนั้นไปเลย แทนที่จะเปิดโพซิชันโดยไม่มี stop ที่มีความหมาย

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

  • BUY — ราคาปิดของแท่งเทียนที่เพิ่งปิดสมบูรณ์ล่าสุด ทะลุจากระดับต่ำกว่าหรือเท่ากับ ขึ้นไปเหนือระดับ up-fractal ที่เก็บไว้ โดย Stop Loss จะถูกวางไว้ที่ระดับ up-fractal นั้น
  • SELL — ราคาปิดของแท่งเทียนที่เพิ่งปิดสมบูรณ์ล่าสุด ทะลุจากระดับสูงกว่าหรือเท่ากับ ลงไปต่ำกว่าระดับ down-fractal ที่เก็บไว้ โดย Stop Loss จะถูกวางไว้ที่ระดับ down-fractal นั้น

EA จะประเมินเงื่อนไขเหล่านี้เพียงครั้งเดียวต่อแท่งเทียนใหม่เท่านั้น (ติดตามจากเวลาเปิดของแท่งเทียนปัจจุบัน) ไม่ใช่ทุก tick ดังนั้น breakout หนึ่งครั้งจะไม่สั่งเทรดซ้ำหลายครั้งภายในแท่งเทียนเดียวกัน EA เปิดได้ครั้งละ 1 โพซิชันเท่านั้น นับและกรองด้วย magic number ของตัวเอง (MagicNumber ค่าเริ่มต้น 20260730) จึงไม่มีทางสับสนระหว่างโพซิชันที่ตัวเองเปิดกับโพซิชันที่คุณเปิดเองด้วยมือ หรือของ EA ตัวอื่นในบัญชีเดียวกัน ก่อนเปิดเทรดทุกครั้ง EA ยังตรวจสอบ spread ปัจจุบันเทียบกับ MaxSpreadPoints และข้ามการเข้าเทรดไปเลยหากตลาดมีสภาพคล่องต่ำเกินไปในขณะนั้น สุดท้าย การตรวจสอบ stop ที่ผิดปกติที่กล่าวไปข้างต้น หมายความว่าเทรดจะถูกส่งออกไปก็ต่อเมื่อระยะ Stop Loss ที่คำนวณได้เป็นตัวเลขบวกจริงๆ เท่านั้น — สัญญาณที่เกิดขึ้นในทางเทคนิคแต่คำนวณระยะ stop ได้เป็นศูนย์หรือติดลบจะถูกทิ้งไป ไม่ถูกส่งไปยัง broker

Parameters

  • RiskRewardRatio (ค่าเริ่มต้น 2.0) — ระยะ Take Profit = ระยะ Stop Loss (จากระดับ fractal ที่ถูกทะลุ) × ค่านี้
  • RiskPercent (ค่าเริ่มต้น 1.0) — เปอร์เซ็นต์ของยอดเงินในบัญชีที่ยอมเสี่ยงต่อการเทรด ใช้คำนวณขนาด lot เทียบกับระยะ Stop Loss ที่มาจาก fractal จะถูกข้ามหาก UseFixedLot เปิดใช้งานอยู่
  • UseFixedLot (ค่าเริ่มต้น false) — เมื่อเปิดใช้งาน จะเทรดด้วยขนาด lot คงที่แทนการคำนวณจาก RiskPercent
  • FixedLotSize (ค่าเริ่มต้น 0.01) — ขนาด lot ที่ใช้เมื่อเปิด UseFixedLot
  • MaxSpreadPoints (ค่าเริ่มต้น 30) — ข้ามการเข้าเทรดใหม่หาก spread กว้างกว่าค่านี้ ประเด็นเดียวกับที่กล่าวถึงในSpread และ Slippage
  • MagicNumber (ค่าเริ่มต้น 20260730) — ติดแท็กทุกคำสั่งที่ EA ตัวนี้เปิด เพื่อให้ระบบนับและจัดการโพซิชันไม่ไปยุ่งกับเทรดที่เปิดเองด้วยมือหรือของ EA ตัวอื่น
  • EnableTrading — สวิตช์เปิด/ปิดหลัก ใช้พักการทำงานของ EA ได้โดยไม่ต้องถอดออกจากกราฟ

สังเกตว่ามีอะไรหายไปเมื่อเทียบกับ EA ตัวอื่นส่วนใหญ่บนเว็บไซต์นี้ — ไม่มี ATRPeriod และไม่มี ATRMultiplier เลย และไม่มี period สำหรับการตรวจจับ fractal เองด้วย เพราะ (ตามที่บทเรียน Fractalsอธิบายไว้) รูปแบบนี้ถูกกำหนดตายตัวที่ 5 แท่งเทียนโดยนิยาม ไม่สามารถปรับแต่งได้ นี่ไม่ใช่การตัดทอนให้ง่ายขึ้นหรือความผิดพลาด แต่เป็นผลโดยตรงจากการออกแบบที่อธิบายไว้ในหัวข้อถัดไป

ทำไม EA ตัวนี้ใช้ระดับ Fractal ที่ถูกทะลุแทน ATR

EA ตัวอื่นส่วนใหญ่บนเว็บไซต์นี้ — รวมถึง ea-trend-following — คำนวณ Stop Loss เป็น ATRMultiplier × ATR ซึ่งเป็นระยะคงที่ที่คำนวณใหม่ตอนเปิดเทรดแต่ละครั้ง มาจากสถิติความผันผวนล้วนๆ โดยไม่อ้างอิงถึงระดับราคาจริงที่อยู่ใกล้เคียงเลย EA ตัวนี้ทำงานต่างออกไปโดยตั้งใจ เช่นเดียวกับ Parabolic SAR Trend EA และ Ichimoku Breakout EA และเหตุผลนี้ควรอธิบายให้ชัดเจน

ATR ตอบคำถามเดียว คือ เมื่อพิจารณาความผันผวนล่าสุด stop ควรอยู่ห่างแค่ไหน มันไม่มีความเห็นใดๆ เลยว่าแนวรับหรือแนวต้านที่แท้จริงอยู่ตรงไหนบนกราฟ — มันเป็นระยะที่ได้มาจากค่าเฉลี่ยทางสถิติล้วนๆ ไม่รับรู้โครงสร้างที่แท้จริงของตลาด ส่วน Fractal ตอบคำถามที่แตกต่างออกไปโดยสิ้นเชิง และในกรณีนี้เกี่ยวข้องมากกว่า คือ ตลาดเองกลับตัวจริงๆ ที่ตรงไหนครั้งล่าสุด up-fractal ที่ถูกทะลุในเทรด BUY ไม่ใช่การประมาณการ — มันคือราคาที่แท้จริงซึ่งแท่งเทียนจริง 5 แท่งได้พิสูจน์แล้วว่ามีจุดสวิงสูงอยู่ตรงนั้น การวาง Stop Loss ไว้ที่ระดับนั้นพอดี หมายความว่า stop อยู่ตรงจุดที่แนวคิดของเทรดนั้นจะถูกพิสูจน์ว่าผิดพอดี หากราคาร่วงกลับลงมาทะลุระดับที่เพิ่งทะลุขึ้นไป breakout นั้นก็ล้มเหลวแล้ว และระดับที่ควรทำหน้าที่เป็นแนวรับใหม่ก็ไม่สามารถยืนได้ ซึ่งเป็นจังหวะที่ควรออกจากเทรดพอดี ไม่ว่าระยะที่คำนวณจาก ATR จะบอกอะไรก็ตาม

การรัน ATR ควบคู่ไปกับ stop ที่อิงจาก fractal ในกรณีนี้จะไม่ทำให้ stop ดีขึ้นอย่างมีนัยสำคัญ — มันจะเป็นเพียงความเห็นที่สองที่แยกออกจากกันเกี่ยวกับระยะ stop ที่ fractal ได้กำหนดไว้โดยตรงอยู่แล้ว โดยใช้โครงสร้างราคาเดียวกับที่สร้างสัญญาณเข้าเทรดตั้งแต่แรก ไม่มีอะไรให้ ATR เพิ่มเติมได้เลย เพราะ fractal นั้นจับต้องได้และผูกติดกับราคาจริง ในขณะที่ ATR เป็นนามธรรมและได้มาจากค่าเฉลี่ย การประนีประนอมทั้งสองความเห็นเข้าด้วยกันทุกครั้งที่ไม่ตรงกันจะเพิ่มความซับซ้อนโดยไม่ได้เพิ่มการป้องกันความเสี่ยงเลย นี่คือเหตุผลที่ EA ตัวนี้ใช้ระดับ fractal ซ้ำแทนที่จะไปหาการคำนวณที่สองแยกต่างหาก

การติดตั้งและตั้งค่า

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

  1. ดาวน์โหลดไฟล์ด้านล่างสำหรับ platform ของคุณ
  2. เปิด MetaTrader → คลิก FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL4/Experts (MetaTrader 4) หรือ MQL5/Experts (MetaTrader 5) — ไม่ใช่ โฟลเดอร์ Indicators
  4. รีสตาร์ท MetaTrader แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ
  5. เปิดใช้งาน AutoTrading (MT4) หรือ Algo Trading (MT5) บนแถบเครื่องมือ — EA จะไม่ส่งคำสั่งเทรดใดๆ เลยถ้าปิดสวิตช์นี้อยู่ แม้จะติดอยู่บนกราฟแล้วก็ตาม
  6. ตรวจสอบและปรับ parameter ในหน้าต่างตั้งค่าของ EA ก่อนยืนยัน

ข้อควรระวัง

ทดสอบบนบัญชีเดโมก่อนเสมอ ในสภาวะตลาดที่หลากหลาย ก่อนนำเงินจริงไปเสี่ยง — ผลงานที่ผ่านมา ไม่ว่าจาก backtest หรือบัญชีจริง ไม่เคยรับประกันผลลัพธ์ในอนาคต ไม่มีกลยุทธ์ใด ไม่ว่าจะอัตโนมัติหรือเทรดเอง ที่ชนะทุกครั้ง และ EA ตัวนี้สามารถขาดทุนในบางเทรดได้เช่นกัน EA แบบ breakout อย่างตัวนี้มักทำงานแย่ในตลาดไซด์เวย์หรือแกว่งตัวไร้ทิศทาง ตลาดที่ไม่มีเทรนด์ชัดเจนจะสร้าง fractal เล็กๆ ที่มีคุณค่าต่ำออกมาต่อเนื่อง และการทะลุขึ้นเพียงเล็กน้อยเหนือ up-fractal ที่อ่อนแอ (หรือทะลุลงต่ำกว่า down-fractal ที่อ่อนแอ) อาจกระตุ้นให้เข้าเทรดแล้วราคากลับตัวภายในไม่กี่แท่งเทียน ทำให้เทรดนั้นโดน stop ออกด้วยการขาดทุนอย่างรวดเร็วก่อนที่จะมีการเคลื่อนไหวที่แท้จริงเกิดขึ้น fractal ที่เกิดขึ้นระหว่างการพักตัวแคบๆ อย่างเงียบสงบ ไม่ได้มีคุณภาพเทียบเท่ากับ fractal ที่เกิดขึ้นที่จุดสูงสุดของสวิงหลายแท่งเทียนที่แท้จริง แม้ทั้งสองแบบจะปรากฏเป็นลูกศรที่เหมือนกันทุกประการก็ตาม — ตัว EA เองไม่สามารถแยกความแตกต่างนี้ได้ เพราะมันเทรดทุกระดับ fractal ที่ได้รับการยืนยันในลักษณะเดียวกันหมด ควรพิจารณาใช้ร่วมกับการอ่านเทรนด์กับตลาดไซด์เวย์ก่อนเปิดใช้งานบนบัญชีจริง และจำไว้เสมอถึงความล่าช้าในการยืนยันที่กล่าวไปข้างต้น เพราะ fractal จะล็อกค่าไว้สองแท่งเทียนหลังจากเกิดขึ้นจริง ระดับที่กำลังถูกใช้เทรดจึงเก่ากว่าปัจจุบันเล็กน้อยเสมอในเวลาที่เกิดความพยายาม breakout ไฟล์ทั้งสองเป็น source code — เปิดและตรวจสอบให้ครบถ้วน และเข้าใจว่า parameter แต่ละตัวทำอะไร ก่อนนำไปใช้งาน เนื้อหานี้เป็นการศึกษาทั่วไป ไม่ใช่คำแนะนำการลงทุนส่วนบุคคล

ดาวน์โหลด EA

วิธีติดตั้ง — MetaTrader 4

  1. ดาวน์โหลดไฟล์ fractals-breakout-ea.mq4 ด้านล่าง
  2. เปิด MetaTrader 4 → คลิก FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL4/Experts
  4. รีสตาร์ท MetaTrader 4 แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ

วิธีติดตั้ง — MetaTrader 5

  1. ดาวน์โหลดไฟล์ fractals-breakout-ea.mq5 ด้านล่าง
  2. เปิด MetaTrader 5 → คลิก FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL5/Experts
  4. รีสตาร์ท MetaTrader 5 แล้วลาก EA จากหน้าต่าง Navigator ไปวางบนกราฟ

ไฟล์ทั้งสองเป็น source code — โปรดเปิดและตรวจสอบโค้ดทั้งหมดก่อนใช้งาน เพื่อความปลอดภัยของคุณเอง

ดาวน์โหลด fractals-breakout-ea.mq4

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

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

ดาวน์โหลด fractals-breakout-ea.mq5

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

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