หลายคนอาจสงสัยว่าเมื่อไรที่การเทรดจะถูกปิดด้วย Stop Loss หรือ Take Profit และมีการคำนวณปริมาณอย่างไร วันนี้เราจะมาดูกันว่าเมื่อใดที่ Stop Loss จะถูกใช้งานและเมื่อใดที่ Take Profit จะเข้ามาช่วยเราในการทำกำไร
เมื่อคุณใช้ Stop Loss และการเทรดถูกปิดด้วยเหตุนี้ ปริมาณจะถูกปรับเป็นสองเท่า แต่ถ้าเป็น Take Profit จะใช้ปริมาณขั้นต่ำในการเปิดรายการใหม่ ในการตรวจสอบว่าเกิดการเทรดขึ้นหลังจากการเปิดใช้งาน Stop Loss หรือ Take Profit เราจะต้องใช้ฟังก์ชัน OnTradeTransaction เป็นตัวช่วย
นอกจากนี้ ใน build 1625 มีการเพิ่ม ENUM_DEAL_REASON ที่ช่วยให้เราสามารถระบุเหตุผลการทำธุรกรรมได้อย่างชัดเจน:
| ENUM_DEAL_REASON | คำอธิบายเหตุผล |
|---|---|
| ... | ... |
| DEAL_REASON_SL | การดำเนินการถูกทำขึ้นจากการเปิดใช้งาน Stop Loss |
| DEAL_REASON_TP | การดำเนินการถูกทำขึ้นจากการเปิดใช้งาน Take Profit |
| ... | ... |
เราสามารถตรวจสอบได้ใน OnTradeTransaction อีกครั้งหนึ่ง
พูดง่ายๆ ก็คือ นี่คือวิธีที่ง่ายและเชื่อถือได้ในการตรวจสอบว่าการเทรดเกิดจาก Take Profit หรือ Stop Loss
ในตอนนี้ (build 1626) Expert Advisor นี้สามารถตรวจสอบได้เฉพาะในการทดสอบแบบสด โดยการเปิดในกราฟหรือตั้งในโหมดดีบักบนข้อมูลจริง (F5 ใน MetaEditor) สำหรับวิธีที่ฉันใช้คือ:
ใน OnTradeTransaction เราจะตรวจสอบว่า Take Profit หรือ Stop Loss ถูกเรียกใช้งาน:
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { if(deal_reason==DEAL_REASON_SL) ExtLot*=2.0; else if(deal_reason==DEAL_REASON_TP) ExtLot=m_symbol.LotsMin(); }
ความคิดเห็น 0