TradingBoxing: ระบบเทรดสุดเจ๋งสำหรับ MetaTrader 5

Mike 2018.06.18 22:58 27 0 0
ไฟล์แนบ

ในกระบวนการพัฒนาระบบ TradingBoxing นี้ เราได้รับแรงบันดาลใจมาจากโค้ด TradingBoxing แต่โค้ดที่นำมาเสนอในที่นี้มีพื้นฐานจากแนวคิดดังกล่าวเท่านั้น แท้จริงแล้วการนำไปใช้งานอยู่ในรูปแบบ MQL5 และใช้คลาสการเทรดใหม่ทั้งหมด

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

รูปลักษณ์ของแผงการเทรด:

TradingBoxing

เพื่อแสดงปริมาณ (สำหรับตำแหน่งและคำสั่งที่รอดำเนินการ) คลาสมาตรฐาน 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