top of page

รีวิว RiskGuard Lite บน MT5: ATR Stop/Target ทำงานอย่างไรจากซอร์ส

5 ต.ค.
ยาว 2 นาที

บทความนี้อ่านกฎจากซอร์สของ RiskGuard Lite - Percent-Risk EMA/ATR EA บน MQL5 CodeBase โดยแยกให้ชัดว่าอะไรเป็นพฤติกรรมตามโค้ด และอะไรยังต้องพิสูจน์ด้วยการทดสอบที่ทำซ้ำได้

รอบนี้เป็น static source review เท่านั้น ไม่ใช่ผล Compile, Strategy Tester, Backtest, Demo หรือ Live ของ TRADERMAN และไม่มีการส่งคำสั่งซื้อขาย

ภาพโฆษณาโทนเข้มพร้อมข้อความ อ่าน ATR จากซอร์ส ชวนอ่านกฎของ EA จากเอกสารและซอร์ส

RiskGuard Lite คืออะไร

RiskGuard Lite - Percent-Risk EMA/ATR EA เผยแพร่ใน MQL5 CodeBase โดย Muh Aidyl Fadly Bahtiar หน้า CodeBase ระบุวันที่เผยแพร่ 21 กันยายน 2026 เวลา 16:32 และ source ระบุเวอร์ชัน 1.00 พร้อมไฟล์ RiskGuardLite.mq5 ให้ตรวจได้

อ่านหน้า source หลักได้ที่ RiskGuard Lite - Percent-Risk EMA/ATR EA และอ่านไฟล์ .mq5 ได้จากลิงก์ดาวน์โหลดในหน้าเดียวกัน

ATR ในบทความนี้หมายถึงอะไร

ATR หรือ Average True Range ใช้ประมาณขนาดการเคลื่อนไหวของราคาในช่วงที่กำหนด ไม่ได้บอกทิศทางขึ้นหรือลงโดยตรง ใน MQL5 ฟังก์ชัน iATR() คืน handle ของ indicator ที่มี buffer เดียว

RiskGuard Lite ตั้งค่า ATR period เริ่มต้นเป็น 14 และใช้ ATR ของแท่งที่ปิดแล้วเป็นฐานกำหนดระยะห่างของ Stop Loss ค่า ATR ที่มากขึ้นทำให้ระยะห่างตามสูตรกว้างขึ้น แต่ไม่ได้แปลว่าผลลัพธ์จะดีขึ้น

กฎเข้าออเดอร์จาก source

โค้ดสร้าง Fast EMA period 20 และ Slow EMA period 50 จากราคาปิด จากนั้นทำงานเมื่อเกิดแท่งใหม่และอ่านค่าของแท่งที่ปิดแล้วสองแท่งล่าสุด

Buy เกิดเมื่อ Fast EMA ของแท่งล่าสุดที่ปิดแล้วอยู่เหนือ Slow EMA และแท่งก่อนหน้ายังไม่อยู่เหนือ ส่วน Sell เป็นเงื่อนไขกลับกัน หากไม่พบ crossover จะไม่ส่งคำสั่ง

ก่อนประเมินสัญญาณ ฟังก์ชันตรวจ position ของ symbol และ magic number เดียวกัน หากมีอยู่แล้วจะหยุดการเปิดซ้ำ คำว่า สัญญาณ ในบทความจึงหมายถึงเงื่อนไขเชิงโค้ด ไม่ใช่คำแนะนำซื้อหรือขาย

ATR Stop และ Target คำนวณอย่างไร

ค่าเริ่มต้นใน source คือ Stop ATR Multiple 2.0 และ Reward Risk Ratio 1.5 โค้ดนำ ATR ของแท่งที่ปิดแล้วคูณ 2.0 แล้วเปรียบเทียบกับ minimum stop distance ของ symbol ก่อนเลือกค่าที่มากกว่า

สำหรับ Buy ใช้ Ask เป็นราคาเข้าและวาง Stop ใต้ราคาเข้า สำหรับ Sell ใช้ Bid เป็นราคาเข้าและวาง Stop เหนือราคาเข้า ส่วน Take Profit ใช้ระยะ Stop คูณ 1.5 และปัดราคาให้สอดคล้องกับ tick size กับ digits

นี่คือเรขาคณิตของ Stop และ Target ตาม source ไม่ใช่หลักฐานว่า Target จะถูกแตะ หรือว่า Reward/Risk ที่ตั้งไว้จะเกิดขึ้นจริงหลัง spread, slippage, commission และ gap

การคำนวณขนาดสถานะไม่ได้แปลว่าขาดทุนจริงจะเท่ากัน

RiskGuard Lite ตั้งค่าเริ่มต้น Risk per trade ที่ 0.5% ของ equity โค้ดเรียก OrderCalcProfit() กับปริมาณ 1 lot เพื่อประมาณผลกระทบระหว่างราคาเข้าและราคา Stop แล้วใช้ equity ปัจจุบันคูณเปอร์เซ็นต์ความเสี่ยงเพื่อคำนวณ volume

หลังคำนวณแล้ว source จะปัดลงตาม SYMBOL_VOLUME_STEP ตรวจ SYMBOL_VOLUME_MIN และจำกัดไม่เกิน SYMBOL_VOLUME_MAX หาก volume ต่ำกว่าขั้นต่ำจะข้ามการเข้าออเดอร์

เอกสาร MQL5 อธิบายว่า OrderCalcProfit() เป็นการคำนวณประมาณการใน account currency ภายใต้สภาวะตลาดปัจจุบัน ดังนั้น 0.5% เป็นกรอบการคำนวณก่อนส่งคำสั่ง ไม่ใช่การรับประกันว่าขาดทุนจริงจะเท่ากับ 0.5%

Filter และการส่งคำสั่ง

โค้ดตรวจ tick และ spread โดยค่าเริ่มต้น Max spread เท่ากับ 25 points หากสูงกว่านี้จะข้ามการเข้าออเดอร์ นอกจากนี้ตั้ง magic number และ slippage/deviation ก่อนเรียก CTrade.Buy() หรือ CTrade.Sell()

หลังเรียก Buy หรือ Sell source อ่าน ResultRetcode() และยอมรับเฉพาะ retcode ที่สื่อว่าสำเร็จ, สำเร็จบางส่วน หรือวางคำสั่งแล้ว หากไม่ผ่านจะพิมพ์ retcode กับคำอธิบายลง Journal

จากการอ่าน source ไม่พบการเรียก OrderCheck() หรือ OrderCalcMargin() ในไฟล์นี้โดยตรง จึงยังไม่ควรสรุปว่าการตรวจเงินพอ, margin และกฎ broker ครบถ้วนเพียงเพราะมี risk sizing หรือมีการอ่าน retcode

จุดแข็งที่เห็นจาก source

โครงสร้างที่เห็นคือใช้แท่งปิดแล้ว, ทำงานหนึ่งครั้งต่อแท่งใหม่, ใช้ ATR ปรับระยะ Stop, ตรวจ minimum stop distance, tick size, volume min/max/step และ spread ก่อนส่งคำสั่ง

โค้ดยังใช้ OrderCalcProfit() เพื่อผูก volume กับ equity และระยะ Stop แยก position ด้วย symbol กับ magic number และอ่านผลลัพธ์คำสั่งผ่าน retcode จุดเหล่านี้เป็นคุณสมบัติของโครงสร้างโค้ด ไม่ใช่การจัดอันดับว่า EA ทำกำไรได้

ข้อจำกัดและความเสี่ยงที่ต้องเห็นก่อนทดลอง

EMA crossover อาจให้สัญญาณช้าและสลับไปมาในตลาดแกว่ง ATR วัดขนาดการเคลื่อนไหว ไม่ได้กรองข่าวหรือบอกทิศทาง และค่า ATR ที่สูงอาจทำให้ Stop กว้างจน volume ต่ำกว่าขั้นต่ำ

Reward/Risk 1.5 เป็น input ที่แก้ได้ ไม่ใช่ผลการทดสอบที่เหมาะกับทุก symbol หรือ timeframe Spread filter ใช้ points ของ symbol และขึ้นกับ digits, tick size, session และ broker

Risk sizing ไม่รวมทุกต้นทุนและเหตุการณ์ execution ที่อาจเกิดขึ้นจริง เช่น commission, slippage, gap หรือการปฏิเสธคำสั่ง และการมี position เดิมบน symbol/magic ไม่ได้แปลว่าบัญชีทั้งบัญชีไม่มี exposure จาก EA ตัวอื่นหรือการเปิดมือ

สิ่งที่ยังไม่ได้ทดสอบในรอบนี้

รอบนี้ไม่ได้เปิด MetaEditor หรือ MT5, ไม่ได้ Compile, ไม่ได้รัน Strategy Tester, ไม่ได้ทำ Backtest, ไม่ได้เปิด Demo, ไม่ได้เปิด Live และไม่ได้ส่งคำสั่งซื้อขาย จึงไม่มีผลกำไร, win rate, drawdown, expectancy หรือหลักฐานว่า EA ทำงานสำเร็จในสภาพแวดล้อมใด

Checklist สำหรับการตรวจต่ออย่างปลอดภัย

ยืนยัน source, version, inputs และ dependencies ก่อนนำไปวางในสภาพแวดล้อมทดสอบ จากนั้นตรวจ digits, tick size, stops/freeze level, volume min/max/step และ point ของ symbol จริง

ตรวจ timestamp ของแท่งและการอ่าน buffer ว่าใช้แท่งปิดตามที่ source ตั้งใจ ทดสอบกรณี Buy/Sell, volume ต่ำกว่าขั้นต่ำ, spread สูง, margin ไม่พอ, stop ใกล้เกินไป, gap และ retcode rejection แยกกัน

หากจะทดสอบผลย้อนหลัง ให้บันทึกข้อมูล, timeframe, symbol, commission, spread model, slippage, input และช่วงเวลาทดสอบให้ทำซ้ำได้ และเริ่มจากสภาพแวดล้อมจำลองที่ได้รับอนุญาต

แหล่งอ้างอิงและบทความที่เกี่ยวข้อง

เอกสาร iATR: MQL5 iATR Reference

เอกสาร OrderCalcProfit: MQL5 OrderCalcProfit Reference

เอกสาร CTrade: MQL5 CTrade Reference

อ่านต่อเรื่อง Risk Gate: Risk Gate ก่อนเปิด EA

อ่านต่อต้นทุนการเทรด: Lot, Spread, Commission และ Swap

อ่านต่อเรื่องระดับการทดสอบ: Backtest, Demo และ Live ต่างกันอย่างไร

คำเตือนความเสี่ยง

ข้อมูลนี้จัดทำเพื่อการศึกษาและการวิเคราะห์ ไม่ใช่คำแนะนำการลงทุนเฉพาะบุคคล และไม่รับประกันผลกำไร

ความคิดเห็น


bottom of page