LearnForexHub
EA

EA: Volume Spike Breakout Expert Advisor

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

สิ่งที่อินดิเคเตอร์ให้คือข้อมูล แต่ EA ตัวนี้ให้การลงมือ: มันส่งออร์เดอร์ในบัญชีของคุณโดยตรง EA ฟรีตัวนี้เทรด breakout ของราคาในรอบ N แท่งเทียน แบบเดียวกับที่กล่าวถึงใน lesson Volumes แต่มันจะไม่สั่งเทรดตาม breakout นั้นเพียงลำพัง — มันจะเข้าเทรดก็ต่อเมื่อ tick volume ของแท่งเทียนที่เกิด breakout เอง กำลัง spike สูงเกินค่าเฉลี่ยล่าสุดของมันอย่างชัดเจน โดยใช้ volume เป็นการตรวจสอบการมีส่วนร่วมโดยตรง แทนที่จะเป็นอินดิเคเตอร์แบบสะสมอย่าง OBV หรือ A/D จากนั้น Stop Loss, Take Profit และขนาดโพซิชันจะถูกคำนวณอัตโนมัติทั้งหมดจาก ATR และความเสี่ยงของบัญชี ด้วยโครงสร้างเดียวกับที่ EA ทุกตัวบนเว็บไซต์นี้ใช้

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

สัญญาณเข้าเทรดดิบคือ breakout ในรอบ N แท่งแบบเดียวกับที่ใช้ในที่อื่นบนเว็บไซต์นี้: Close ของแท่งที่เพิ่งปิดปิดเหนือจุดสูงสุด (High) ของ BreakoutPeriod แท่งก่อนหน้า (ค่าเริ่มต้น 20) หรือใต้จุดต่ำสุด (Low) ของหน้าต่างเดียวกันหรือไม่ เพราะแถบถูกสร้างจากแท่งเทียน ก่อนหน้า แท่งที่กำลังทดสอบเท่านั้น breakout ที่นี่จึงหมายความว่าราคาเคลื่อนออกไปนอกหน้าต่าง lookback ล่าสุดจริงๆ ไม่ใช่แค่ว่าแท่งปัจจุบันบังเอิญเป็นส่วนหนึ่งของจุดสุดขั้วใหม่ของตัวเอง

จุดที่ EA ตัวนี้ต่างจากระบบ breakout ธรรมดาคือเงื่อนไขที่สองที่มันเรียกร้องก่อนที่จะเชื่อสัญญาณนั้น: tick volume ของแท่งเทียนที่เพิ่งปิดต้องมากกว่า VolumeSpikeMultiplier × ค่าเฉลี่ย volume ในรอบ VolumeAveragePeriod แท่งของตัวมันเอง (ตัวคูณเริ่มต้น 2.0 หมายความว่า volume ต้องมากกว่าค่าเฉลี่ยล่าสุดอย่างน้อยสองเท่า) นี่เป็นการตรวจสอบที่เรียบง่ายกว่าการยืนยันด้วยผลรวมสะสมที่ EA A/D Trend Confirmation หรือระบบที่อิง OBV ใช้อย่างจงใจ — มันไม่ได้ถามว่าผลรวมสะสมสร้างขึ้นมาตลอดหลายแท่งเทียนหรือไม่ แต่ถามคำถามตรงๆ เดียวเกี่ยวกับแท่งเทียนที่เกิด breakout เป๊ะๆ: มีกิจกรรมพุ่งขึ้นผิดปกติตรงนี้ ตอนนี้ หรือไม่? แท่งเทียน breakout ที่มี volume ปกติไม่มีอะไรโดดเด่น จะถูกถือว่ายังไม่ยืนยันและถูกข้ามไปเลย ไม่ว่าการทะลุของราคาจะดูสะอาดแค่ไหนก็ตาม

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

PriceTake Profit (TP)Stop Loss (SL)BUYTick VolumeVolume spike
Entry conditions: BUY when price closes above the N-bar high at the same time volume spikes above its recent average — the mirrored breakdown-plus-spike triggers SELL — SL and TP are placed automatically from ATR

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

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

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

  • BUY — Close ของแท่งที่เพิ่งปิดอยู่เหนือจุดสูงสุดของ BreakoutPeriod แท่งก่อนหน้ามัน และ volume ของแท่งเทียนเดียวกันนั้นมากกว่า VolumeSpikeMultiplier × ค่าเฉลี่ย volume ในรอบ VolumeAveragePeriod แท่ง
  • SELL — Close ของแท่งที่เพิ่งปิดอยู่ใต้จุดต่ำสุดของ BreakoutPeriod แท่งก่อนหน้ามัน และ volume ของแท่งเทียนนั้นผ่านเกณฑ์ spike เดียวกัน — เป็นรูปแบบที่ตรงข้ามกัน

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

Parameters

  • BreakoutPeriod (ค่าเริ่มต้น 20) — หน้าต่าง lookback ที่แถบเข้าเทรดแบบ highest-high/lowest-low ถูกสร้างขึ้นมาจาก period ที่สั้นกว่าจะทริกเกอร์ breakout ที่บ่อยและเล็กกว่า period ที่ยาวกว่าต้องการการเคลื่อนไหวที่ใหญ่กว่าก่อนเข้าเทรด
  • VolumeAveragePeriod (ค่าเริ่มต้น 20) — หน้าต่าง lookback หน่วยเป็นแท่งเทียน สำหรับค่าเฉลี่ย volume ที่ volume ของแท่งเทียน breakout จะถูกนำไปเทียบด้วย
  • VolumeSpikeMultiplier (ค่าเริ่มต้น 2.0) — แท่งเทียน breakout ต้องมี volume มากกว่าค่าเฉลี่ยกี่เท่าถึงจะยืนยันการเข้าเทรด การปรับค่าให้สูงขึ้น (เช่น 3.0) เรียกร้องการพุ่งขึ้นของ volume ที่รุนแรงกว่าและให้เทรดที่น้อยลงแต่มั่นใจมากขึ้น การปรับให้ต่ำลง (เช่น 1.5) จะปล่อยให้ breakout ผ่านเข้ามาได้มากขึ้น รวมถึงบางส่วนที่ volume เพิ่มขึ้นเพียงปานกลาง

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

ทำไมต้องใช้ Volume ไม่ใช่แค่ตัวกรอง Trend

EA breakout ทุกตัวบนเว็บไซต์นี้เจอปัญหาแกนหลักเดียวกัน: จุดสูงสุดหรือต่ำสุดใหม่ในรอบ N แท่งบอกได้แค่ว่าราคาไปถึงจุดสุดขั้วใหม่ ไม่ได้บอกว่ามีการมีส่วนร่วมจริงอยู่เบื้องหลังหรือไม่ EA Donchian Breakout เทรดทุก breakout ที่ผ่านเกณฑ์โดยไม่มีเงื่อนไข ซึ่งหมายความว่ามันเทรด breakout ที่บางเบาและไม่น่าเชื่อถือด้วยเช่นกัน — ส่วนใหญ่ของสาเหตุที่ระบบ breakout ขาดทุนก็คือรูปแบบนี้เป๊ะๆ นั่นคือ false breakout ที่เกิดขึ้นบนกิจกรรมเบาบางแล้วย้อนกลับเข้าไปในกรอบราคาเดิมทันทีเมื่อความไม่สมดุลนั้นคลี่คลายลง

คำตอบของ EA ตัวนี้คือวิธีที่ตรงที่สุดที่มี: ตรวจสอบ volume บนแท่งเทียนที่เกิด breakout เองในตอนนั้นเลย แทนที่จะอนุมานการมีส่วนร่วมทางอ้อมจากค่าความแข็งแรงของ trend อย่าง ADX หรือผลรวม volume สะสมอย่าง OBV หรือ A/D volume spike ในจังหวะที่ราคาทะลุแถบพอดี เป็นสัญญาณที่ชัดเจนและทันทีว่ามีบางอย่างเปลี่ยนไปในวิธีที่ตลาดกำลังเทรดคู่เงินนี้ — มีคำสั่งมากขึ้น มีความเร่งด่วนมากขึ้น มีความไม่ลงรอยกันระหว่างผู้ซื้อและผู้ขายที่กำลังคลี่คลายตรงระดับนั้นพอดี ซึ่งเป็นหลักฐานคนละแบบกับผลรวมสะสมที่ค่อยๆ สร้างขึ้นช้าๆ ข้อแลกเปลี่ยนคือการตรวจสอบแบบนี้ก็มี noise มากกว่าการยืนยันแบบสะสมในระดับแท่งเทียนต่อแท่งเทียนด้วยเช่นกัน: volume spike บนแท่งเทียนเดียวอาจเป็นเหตุการณ์ที่เกิดครั้งเดียว (คำสั่งซื้อขนาดใหญ่ พาดหัวข่าว หรือการไล่ล่า stop) ที่ไม่ได้สะท้อนความเชื่อมั่นที่ต่อเนื่องแบบที่จุดสูงสุดใหม่ของ OBV หรือ A/D ในหลายแท่งเทียนแสดงให้เห็น ด้วยเหตุนี้ ควรมอง breakout ที่ยืนยันด้วย volume spike เป็นตัวกรองที่กำจัดเทรดแย่ประเภทหนึ่งออกไป (breakout บนตลาดที่เงียบและว่างเปล่า) มากกว่าจะเป็นตัวกรองที่รับประกันว่าการเคลื่อนไหวจะดำเนินต่อไป การใช้ร่วมกับการอ่าน trend ในภาพกว้างขึ้น (ดู เทรนด์กับตลาดไซด์เวย์) จึงคุ้มค่าก่อนที่จะสมมติว่า breakout ที่ยืนยันแล้วจะยืนอยู่ได้

ข้อควรระวัง

ทดสอบบนบัญชี demo ก่อนเสมอ ในสภาพตลาดที่แตกต่างกันและหลายคู่เงิน ก่อนเสี่ยงเงินจริง — backtest หรือผลลัพธ์ demo ที่ดีไม่เคยรับประกันผลลัพธ์ในอนาคต EA นี้สามารถและจะขาดทุนในบางเทรดได้: volume spike ยืนยันได้แค่ว่ากิจกรรมสูงผิดปกติบนแท่งเทียน breakout ไม่ได้ยืนยันว่าการเคลื่อนไหวที่ตามมาจะดำเนินต่อไป และ spike สามารถเกิดขึ้นพร้อมกับการไล่ล่า stop หรือปฏิกิริยาเกินจากข่าวที่กลับตัวในเวลาไม่นานได้พอๆ กับที่มันเป็น breakout ที่ยั่งยืนจริง อย่าลืมด้วยว่า "volume" บน feed ของ forex รายย่อยคือ tick volume ไม่ใช่ volume การซื้อขายจริง ดังนั้นนี่คือตัวแทนของการมีส่วนร่วม ไม่ใช่การวัดที่แม่นยำ — ดูข้อควรระวังนี้แบบเต็มได้ใน lesson Volumes ทั้งไฟล์ MT4 และ MT5 ด้านล่างเป็น source code — เปิดและอ่านให้ครบถ้วน และเข้าใจว่า parameter แต่ละตัวทำอะไรอย่างละเอียด ก่อนนำ EA นี้ไปติดกับบัญชีจริง หน้านี้อธิบายกลไกการทำงานของเครื่องมือเท่านั้น ไม่ได้แนะนำให้คุณนำเงินจริงไปเทรดตาม

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

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

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

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

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

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

วิธีติดตั้ง

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

MetaTrader 4

  1. ดาวน์โหลดไฟล์ volume-spike-breakout-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. ดาวน์โหลดไฟล์ volume-spike-breakout-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 ก่อนนำไปรันกับบัญชีใด ๆ เสมอ

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