เขียน EA ให้แสดงข้อความบนชาร์ต — เครื่องมือดีบักที่เบาที่สุดที่ควรใส่ทุกตัว
เวลา EA ทำงานไม่ตรงกับที่คิด สิ่งที่ช่วยได้เร็วที่สุดคือให้มันบอกออกมาเองว่ากำลังเห็นค่าอะไร — วาดข้อความไว้มุมชาร์ตด้วย OBJ_LABEL แล้วอัปเดตค่าทุกครั้งที่ราคาขยับ
บทความหลักมีโค้ดฟังก์ชันแสดงสถานะเต็ม ๆ ที่รวมกำไรทุกไม้และบวก swap กับค่าคอมมิชชันแล้ว
หน้าตาที่ได้
3 จุดที่ตัวอย่างเก่ามักทำพลาด
ประกาศเป็น int แล้วไม่ได้ return ทุกทาง
ฟังก์ชันที่ประกาศว่าคืนค่า int แต่มีเส้นทางที่วิ่งจบโดยไม่เจอ return ⇒ ตัวคอมไพเลอร์เตือน และค่าที่ได้กลับมาเป็นอะไรก็ไม่รู้ · ถ้าแค่วาดข้อความ ให้ประกาศเป็น void ไปเลยจะตรงกับงานมากกว่า
return ทันทีที่เจอไม้แรก
วนลูปดูออเดอร์แล้ว return ออกตั้งแต่ไม้แรกที่ตรงเงื่อนไข ⇒ ตัวเลขที่แสดงคือกำไรของไม้เดียว ไม่ใช่ของทั้งหมด · ถ้ามีหลายไม้จะเข้าใจผิดว่าพอร์ตกำลังไปได้ดี
นับแต่ OrderProfit() เพียว ๆ
ไม่บวก OrderSwap() กับ OrderCommission() ⇒ ตัวเลขบนชาร์ตไม่ตรงกับยอดที่หักจริงในบัญชี โดยเฉพาะไม้ที่ถือข้ามคืน · เรื่องต้นทุนถือข้ามคืนอยู่ที่ ค่า swap คิดยังไง
ObjectsDeleteAll() ที่ขึ้นต้นด้วยชื่อของ EA ตัวเองไว้ใน OnDeinit() เสมออ่านต่อในบทความหลัก
- โค้ดฟังก์ชันแสดงสถานะเต็ม ๆ — รวมกำไรทุกไม้ของ EA ตัวนั้น บวก swap และคอมมิชชัน และสร้าง object ครั้งเดียวไม่สร้างซ้ำทุก tick
- โครงไฟล์ EA ที่ก็อปไปใช้ได้เลย — พร้อม
OnDeinit()ที่เก็บกวาดให้เรียบร้อย - 5 บั๊กที่มือใหม่เจอซ้ำ — Magic Number · ตัวคุมแท่ง · การตั้ง TP ผิดข้างสเปรด
→ อ่านฉบับเต็ม: เริ่มต้นเขียน EA (MQL4)
บทความนี้เป็นเนื้อหาให้ความรู้ด้านการเขียนโปรแกรมเท่านั้น ไม่ใช่คำแนะนำการลงทุน การเทรดมีความเสี่ยงที่จะสูญเสียเงินลงทุน ผู้อ่านควรศึกษาและตัดสินใจด้วยตนเอง
ความคิดเห็น
แสดงความคิดเห็น