ในกระบวนการพัฒนาระบบ TradingBoxing นี้ เราได้รับแรงบันดาลใจมาจากโค้ด TradingBoxing แต่โค้ดที่นำมาเสนอในที่นี้มีพื้นฐานจากแนวคิดดังกล่าวเท่านั้น แท้จริงแล้วการนำไปใช้งานอยู่ในรูปแบบ MQL5 และใช้คลาสการเทรดใหม่ทั้งหมด
แผงการเทรดมีพารามิเตอร์การป้อนข้อมูลเพียงหนึ่งค่า นั่นคือ หมายเลขมหัศจรรย์ (magic number) ซึ่งเป็นตัวระบุเฉพาะสำหรับ EA
รูปลักษณ์ของแผงการเทรด:

เพื่อแสดงปริมาณ (สำหรับตำแหน่งและคำสั่งที่รอดำเนินการ) คลาสมาตรฐาน CSpinEdit ได้มีการปรับแต่งเล็กน้อยและบันทึกเป็น CSpinEditDouble น่าเสียดายที่เราไม่สามารถสร้างมันโดยการสืบทอดได้ เนื่องจากเราต้องเปลี่ยนสมาชิกของคลาสที่ถูกประกาศว่าเป็น "private"
จากชื่อคลาสสามารถเห็นได้ว่ามันถูกสร้างขึ้นเพื่อแสดงข้อมูลประเภท double ดังนั้นเราจึงได้เพิ่มเมธอด DisplayedDigits เพื่อกำหนดความแม่นยำในการแสดงผลข้อความในควบคุมนี้
ฟิลด์ข้อความในควบคุมนี้ยังสามารถแก้ไขได้ด้วย เช่น อาจมีประโยชน์เมื่อคุณต้องการป้อนราคา หรือปริมาณที่แตกต่างจากค่าในฟิลด์ข้อความ สำหรับข้อความจากฟิลด์ข้อความจะถูกบันทึกเป็นค่า เมธอด EndEdit ได้ถูกเพิ่มเข้าไปในคลาส CSpinEditDouble:
int m_digits; // จำนวนหลักที่แสดง //--- void EndEdit() { Value(StringToDouble(Text())); } public: CSpinEditDouble(void);
เมธอดนี้จะจดจำข้อความที่ป้อนเป็นค่า
เมธอด EndEdit จะถูกเรียกจากคลาส OnEvent CSpinEditDouble:
//+------------------------------------------------------------------+ //| ตัวจัดการเหตุการณ์ทั่วไปของกราฟ | //+------------------------------------------------------------------+ EVENT_MAP_BEGIN(CSpinEditDouble) ON_EVENT(ON_CLICK,m_inc,OnClickInc) ON_EVENT(ON_CLICK,m_dec,OnClickDec) ON_EVENT(ON_END_EDIT,m_edit,EndEdit) EVENT_MAP_END(CWndContainer)
เพื่อให้คำสั่งเทรดถูกประมวลผลได้อย่างรวดเร็วที่สุด (แม้ในตลาดที่เงียบสงบซึ่งมีการเข้ามาของ ticks ในระยะเวลาที่ยาวนาน) ทุกการคลิกที่ปุ่มแผงการเทรดจะเรียกใช้ฟังก์ชันภายใน CTradingBoxingDialog::OnTick() อย่างบังคับ
ความคิดเห็น 0