เราจะหา Drawdown mt5 บน fxDreema ยังไง?

จากคำถามของเพื่อนๆ ในกลุ่ม fxDreema Academy ครับว่า ต้องการโชว์ Drawdown บน mt5 แต่ฟังก์ชันของ fxDreema ดันไม่มีมาให้แบบของ mt4.. จะต้องแก้ไขยังไง?? คำถามนี้ดีมากๆ ครับ เราจะขอนำเสนอการใช้ Custom mql block โดยให้ใส่ Code ดังต่อไปนี้ครับ

 

double CurrentEquity = AccountEquity();

if (CurrentEquity > MaxEquity) {MaxEquity = CurrentEquity;}

if (CurrentEquity < MinEquity) {MinEquity = CurrentEquity;}

DrawdownEquity = MaxEquity – MinEquity;

DrawdownPercent = ((MaxEquity – MinEquity) / MaxEquity) * 100;

 

ซึ่งเพื่อนๆ พี่ๆ สมาชิกทุกท่านสามารถ Copy Code เหล่านี้ไปวางใน custom mql block ตามตัวอย่างจากรูปที่ 1 ได้เลยครับ โดยเมื่อ Copy ลงไปวางแล้ว ให้ตั้งค่า Variable ต่างๆ ตามรูปได้เรย 😀

Drawdown fxDreema mt5
รูปที่ 1 แสดงการใช้ Custom mql code เพื่อคำนวณ Drawdown บน mt5 พร้อมการตั้งค่า Variable

บางท่านเห็นจากรูปที่ 1 แล้วเกิดข้อสงสัยว่า ทำไมจึงต้องตั้งค่า Min Equity ไว้ที่ 1,000,000 ด้วยล่ะครับ… คำตอบคือ ถ้าไม่กำหนดค่าเริ่มต้น MinEquity หรือกำหนดเป็น 0  โค้ดจะไม่สามารถอัปเดตค่า MinEquity ได้อย่างถูกต้องในรอบแรก เพราะว่า CurrentEquity (ทุนบัญชีจริง) จะไม่มีวันน้อยกว่า 0 นั่นเองครับ

พูดง่ายๆว่า ตั้งให้สูงเข้าไว้เพื่อให้แน่ใจว่าในการรันครั้งแรก ๆ ของ EA ค่าของ CurrentEquity (ซึ่งเป็นค่าปัจจุบันของทุนบัญชี) จะต้องน้อยกว่าค่านี้แน่นอนครับ


ความหมายของตัวแปรและคำสั่งในโค้ด

ถึงแม้จุดเด่นของ fxDreema คือการเขียน EA โดยไม่ต้องอาศัยการ Coding แต่บางอย่าง ทาง fxDreema ก็ยังไม่ตอบโจทย์ หรือ มีข้อจำกัดอยู่บ้าง ดังนั้นการที่เราพอจะมีความรู้ในเรื่องของการอ่าน Code เอาไว้บางเล็กน้อยก็ไม่ใช่เรื่องเสียหายอะไร.. เอาล่ะ เรามาเริ่มกันที่บรรทัดแรกกันเลยครับ

 

double CurrentEquity = AccountEquity();

 

หมายความว่า CurrentEquity คือ มูลค่าทุนปัจจุบันจาก ในขณะที่ AccountEquity() ซึ่งรวมกำไร/ขาดทุนที่ยังไม่ปิด

 

if (CurrentEquity > MaxEquity) {MaxEquity = CurrentEquity;}

if (CurrentEquity < MinEquity) {MinEquity = CurrentEquity;}

 

หมายความว่า

  • หากทุนปัจจุบันมากกว่าค่าสูงสุดที่เคยมี MaxEquity จะถูกอัปเดตให้เท่ากับทุนปัจจุบัน
  • หากทุนปัจจุบันน้อยกว่าค่าต่ำสุดที่เคยมี MinEquity จะถูกอัปเดตเช่นกัน
  • เป็นการติดตามค่าสูงสุดและต่ำสุดของ equity

 

DrawdownEquity = MaxEquity – MinEquity;

 

หมายความว่า DrawdownEquity คือ ความแตกต่างระหว่างจุดสูงสุดและต่ำสุดของทุน (หน่วยเป็นเงิน)

 

DrawdownPercent = ((MaxEquity – MinEquity) / MaxEquity) * 100;

 

หมายความว่า DrawdownPercent คือ เปอร์เซ็นต์ของ drawdown เทียบกับจุดสูงสุดของทุน

drawdown comment
รูปที่ 2 ตัวอย่างการนำ dd มาโชว์ โดยการใช้ Comment block ทั่วไปนี่แหละ เพียงแต่นำ variable ที่เราเตรียมไว้จากรูปที่ 1 มาวางใส่ก็เท่านั้นเองครับ

สรุป

โค้ดนี้เหมาะสำหรับการติดตาม drawdown ของระบบแบบ Real-time ซึ่งมีประโยชน์มากสำหรับการควบคุมความเสี่ยง และสามารถนำไปใช้ร่วมกับการตัดสินใจปิด EA หรือหยุดเทรดเมื่อเกิด drawdown เกินระดับที่กำหนดครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *