Stop Level และ Freeze Level | ทำไมวาง SL ไม่ได้
สารบัญ
วาง SL ไม่ได้ ไม่ได้แปลว่า EA มีบั๊กเสมอไป
เริ่มที่บทสรุปก่อน สาเหตุส่วนใหญ่ที่วาง SL ไม่ได้ หรือเลื่อน SL ไม่ได้ ไม่ใช่ตรรกะของ EA แต่เป็น "ระยะขั้นต่ำ" ที่กำหนดไว้ในสเปคสัญลักษณ์ ใน MT5 มี "Stop Level" ที่กำหนดว่าต้องวาง SL และ TP ห่างจากราคาปัจจุบันอย่างน้อยเท่าไร และ "Freeze Level" ที่ห้ามแก้ไขออเดอร์เมื่อราคาเข้าใกล้ SL, TP หรือออเดอร์รอ
สิ่งที่น่ารำคาญคือระยะนี้ไม่ได้คงที่เสมอไป SL ที่ปกติผ่านได้ อาจถูกปฏิเสธเฉพาะช่วงหลังประกาศตัวเลขเศรษฐกิจ เวลาที่เราสร้าง EA เราจึงตรวจระยะนี้ก่อนส่งคำสั่งทุกครั้ง บทความนี้สรุปกลไก ขั้นตอนตรวจสอบ และข้อจำกัดของมาตรการฝั่ง EA
เปรียบเทียบโบรกเกอร์แนะนำ →
🎁 ดาวน์โหลด EA ฟรี📧 คอร์สอีเมลฟรี (8 ฉบับ) + แพ็กอินดิเคเตอร์ MT5 13 ตัว เฉพาะสมาชิก
* ปกป้องความเป็นส่วนตัวอย่างเคร่งครัด คุณสามารถยกเลิกการสมัครได้ตลอดเวลา
กลไก: "ระยะขั้นต่ำ" 2 แบบ
Stop Level
Stop Level (SYMBOL_TRADE_STOPS_LEVEL) คือ ระยะขั้นต่ำจากราคาปัจจุบันถึง SL และ TP วัดเป็นจุด (point) โพสิชันซื้อวัดจาก Bid ซึ่งเป็นราคาอ้างอิงตอนปิด ส่วนโพสิชันขายวัดจาก Ask หากพยายามตั้ง SL ที่ใกล้กว่าระยะนี้ เซิร์ฟเวอร์จะปฏิเสธคำสั่ง และ return code ของ MT5 คือ "Invalid stops" (10016)
Freeze Level
Freeze Level (SYMBOL_TRADE_FREEZE_LEVEL) คือ ระยะที่เมื่อราคาเข้าใกล้ราคา SL, TP หรือออเดอร์รอ จะแก้ไขหรือลบออเดอร์นั้นไม่ได้ EA แบบ Trailing Stop ที่พยายามเลื่อน SL ก่อนปิดโพสิชันแล้วถูกปฏิเสธ ส่วนใหญ่เกิดจากข้อนี้ Return code คือ "Frozen" (10029)
| หัวข้อ | ความหมาย | การดำเนินการที่ได้รับผลกระทบ | รหัสปฏิเสธหลัก |
|---|---|---|---|
| Stop Level | ระยะขั้นต่ำจากราคาปัจจุบันถึง SL/TP | การระบุ SL/TP ตอนส่งคำสั่งใหม่ และการแก้ไข SL | Invalid stops (10016) |
| Freeze Level | ระยะที่ห้ามแก้ไขเมื่อราคาเข้าใกล้ SL/TP หรือออเดอร์รอ | การแก้ไข SL/TP และการแก้ไข/ยกเลิกออเดอร์รอ | Frozen (10029) |
"0" ไม่ได้แปลว่าไม่มีข้อจำกัด
แม้สเปคสัญลักษณ์จะแสดง Stop Level เป็น 0 ก็ไม่ได้แปลว่าวางใกล้แค่ไหนก็ผ่าน เมื่อเป็น 0 โบรกเกอร์บางรายดูเหมือนจะใช้กฎอื่นฝั่งเซิร์ฟเวอร์ (เช่น ระยะที่อิงกับสเปรด) เรายังตรวจสอบการใช้งานของทุกโบรกเกอร์ไม่ครบ จึงจัดการแบบระมัดระวังว่า "0 = ต้องห่างอย่างน้อยเท่าสเปรด"
ระยะจะกว้างขึ้นช่วงประกาศตัวเลขเศรษฐกิจ
Stop Level และ Freeze Level ไม่ใช่ค่าคงที่ โบรกเกอร์อาจเปลี่ยนตามดุลยพินิจ โบรกเกอร์บางรายขยายระยะชั่วคราวช่วงก่อนและหลังประกาศตัวเลขสำคัญ ช่วงเปิดตลาดต้นสัปดาห์ และช่วง rollover นอกจากนี้สเปรดก็กว้างขึ้นในช่วงเวลาเดียวกัน SL ของโพสิชันขายที่วัดจาก Ask จึงต้องวางห่างออกไปมากกว่าการเคลื่อนไหวจริงของราคา
กล่าวคือ แม้ดูสเปคปกติแล้วคิดว่า "ระยะเท่านี้ไม่น่าเป็นไร" ก็อาจไม่ผ่านในจังหวะที่สำคัญที่สุด และสำหรับ EA ที่ออกแบบให้เข้าออเดอร์ได้โดยไม่มี SL ก็อาจเหลือโพสิชันที่ไม่มีการป้องกัน
ขั้นตอนตรวจสอบและเช็คลิสต์
กรุณาตรวจสอบรายการต่อไปนี้ในบัญชีที่ใช้งานอยู่
- เปิดสเปคสัญลักษณ์: คลิกขวาที่สัญลักษณ์ใน Market Watch → "Specification" จดค่า "Stop Level" และ "Freeze Level" (หน่วยเป็นจุด)
- แปลงจุดเป็นราคา: XAUUSD และ USDJPY มีช่วงราคาต่อ 1 จุดไม่เท่ากัน ให้ตรวจจำนวนหลักทศนิยมก่อน แล้วแปลงเป็นผลต่างของราคา
- เทียบกับระยะ SL ของ EA: ตรวจว่าระยะ SL ที่ใช้ในการตั้งค่าหรือตรรกะของ EA มากกว่าระยะ Stop Level บวกสเปรดอย่างเพียงพอ
- ดูอีกครั้งก่อนและหลังประกาศตัวเลข: เปิดหน้าจอเดิมก่อนประกาศไม่นานและตรวจว่าค่าเปลี่ยนหรือไม่ โบรกเกอร์ที่เปลี่ยนค่าหรือไม่ จะรู้ได้เมื่อดูจริงเท่านั้น
- ตรวจ log: ดูแท็บ "Journal" และ "Experts" ว่ามี "Invalid stops" หรือ "Frozen" หรือไม่ วิธีแยกสาเหตุเมื่อคำสั่งถูกปฏิเสธ เรารวบรวมไว้ใน ความรู้เกี่ยวกับ EA และ MT5 ด้วย
วิธีตั้งค่า EA โดยตรงดูได้ที่ วิธีตั้งค่า EA และความแตกต่างของเงื่อนไขการเทรดแต่ละโบรกเกอร์ดูได้ที่ เปรียบเทียบโบรกเกอร์ FX
การตรวจระยะขั้นต่ำฝั่ง EA
EA ของเราตรวจตามลำดับต่อไปนี้ก่อนส่งคำสั่ง
- ดึง Stop Level, Freeze Level และสเปรด ณ ขณะนั้นทุกครั้ง (ไม่ใช้ค่าที่ดึงครั้งเดียวตอนเริ่มทำงาน)
- ระยะขั้นต่ำ = ค่าที่มากกว่าระหว่าง Stop Level กับ Freeze Level บวกสเปรดและส่วนเผื่อเล็กน้อย
- หาก SL ใกล้กว่าระยะนี้ ให้ งดเข้าออเดอร์ โดยไม่ขยาย SL เอง
เหตุผลที่ไม่ออกแบบให้ขยาย SL อัตโนมัติ คือการขยาย SL ทำให้ขาดทุนต่อครั้งมากกว่าที่ออกแบบไว้ หากคำนวณล็อตย้อนกลับจากระยะ SL การขยายเฉพาะ SL จะทำให้ความเสี่ยง % เพี้ยนไป การงดเข้าออเดอร์ทำให้โอกาสลดลง แต่เรามองว่าดีกว่ารับความเสี่ยงที่ไม่ได้คาดไว้
ข้อจำกัดและข้อควรระวัง
การตรวจนี้ไม่สามารถป้องกันได้ทุกปัญหา
- ทำซ้ำในแบ็กเทสต์ได้ยาก: จากความเข้าใจของเรา Strategy Tester ของ MT5 ใช้ค่าปัจจุบันในสเปคสัญลักษณ์ และไม่จำลองการที่ระยะกว้างขึ้นในช่วงประกาศตัวเลขในอดีต EA ที่ SL สั้นอาจมีผลทดสอบต่างจากผลจริงมากขึ้น ตัวอย่างเช่น GOLD TRIPWIRE เป็นแบบที่ระยะเวลาถือครองเฉลี่ยในแบ็กเทสต์สั้นเพียง 0:21:12 เราจึงมองว่าอยู่ในกลุ่มที่ได้รับผลจากความต่างนี้ง่าย
- การงดเข้าออเดอร์เปลี่ยนผลงาน: เทรดที่ถูกงดเพราะการตรวจ อาจมีบางส่วนที่เดิมจะเป็นเทรดชนะ เมื่อใส่การตรวจเข้าไป จึงกลายเป็นการเทรดที่ต่างจากแบ็กเทสต์
- เปลี่ยนได้แม้ในวินาทีส่งคำสั่ง: เงื่อนไขอาจเปลี่ยนระหว่างผ่านการตรวจจนถึงเซิร์ฟเวอร์ได้รับคำสั่ง จึงลดการถูกปฏิเสธให้เหลือศูนย์ไม่ได้
- SL เองก็อาจสลิป: แม้วาง SL ได้ หากตลาดผันผวนรุนแรง ก็อาจถูกเติมที่ราคาแย่กว่า SL การตรวจระยะขั้นต่ำไม่ใช่มาตรการรับมือสลิปเพจ
สรุป
- สาเหตุส่วนใหญ่ที่วาง SL ไม่ได้ คือ Stop Level (ระยะขั้นต่ำ) และ Freeze Level (ระยะที่ห้ามแก้ไข) ในสเปคสัญลักษณ์
- เมื่อถูกปฏิเสธ return code จะเป็น "Invalid stops" หรือ "Frozen"
- Stop Level เป็น 0 ไม่ได้แปลว่า "ไม่มีข้อจำกัด" อย่างน้อยต้องห่างเท่าสเปรด
- โบรกเกอร์บางรายขยายระยะและสเปรดช่วงก่อนและหลังประกาศตัวเลข ทำให้ถูกปฏิเสธในจังหวะที่สำคัญที่สุด
- ฝั่ง EA เราดึงค่า ณ ขณะนั้นมาตรวจทุกครั้ง และหากไม่พอจะงดเข้าออเดอร์โดยไม่ขยาย SL
- แบ็กเทสต์จำลองการเปลี่ยนระยะในอดีตได้ยาก EA ที่ SL สั้นควรระวังความต่างในการใช้งานจริง
บทความที่เกี่ยวข้อง
📧 คอร์สอีเมลฟรี (8 ฉบับ) + แพ็กอินดิเคเตอร์ MT5 13 ตัว เฉพาะสมาชิก
* ปกป้องความเป็นส่วนตัวอย่างเคร่งครัด คุณสามารถยกเลิกการสมัครได้ตลอดเวลา
มีคำถามเกี่ยวกับ EA หรือ Forex ไหม?
คุณสามารถตั้งคำถามได้ที่ฟอรัมเทรดของ Nattzy (สมัครฟรี) ไม่จำเป็นต้องเกี่ยวกับบทความนี้ก็ได้ เช่น การตั้งค่า EA หรือการเลือกโบรกเกอร์
ถามที่ Nattzy ↗