หน้าแรก การเทรดด้วยระบบ โพสต์

ทดสอบ ChartEvent ใน MetaTrader 4: คู่มือการใช้งานสำหรับเทรดเดอร์

ไฟล์แนบ
17875.zip (4.97 KB, ดาวน์โหลด 0 ครั้ง)

ในบทความนี้เราจะมาพูดถึง Expert Advisor ที่ชื่อว่า "Test_ChartEvent.mq4" ซึ่งเป็นตัวอย่างการใช้งาน ChartEvent ที่สามารถแสดงเหตุการณ์ต่าง ๆ ไม่ว่าจะเป็นการกดปุ่มคีย์บอร์ด การคลิกและเคลื่อนที่ของเมาส์ รวมถึงเหตุการณ์ที่กำหนดเองได้ คุณสามารถกดปุ่ม 'H' เพื่อดูวิธีการใช้งาน และกดปุ่ม 'M' เพื่อเข้าสู่โหมด MOUSE_MOVE.

โค้ดต้นฉบับนี้ใช้ได้ทั้งใน MetaTrader 4 และ MetaTrader 5.


ฟังก์ชัน Prototype

  • bool Obj_Create()
  • bool Obj_Delete()
  • bool Obj_Move(int hSens,int vSens) - ใช้ในการเคลื่อนที่ของวัตถุ.
  • void Print_Info() - พิมพ์ข้อมูลเกี่ยวกับวัตถุ.
  • int MouseMove(int aXX,int aYY,string sState) - จัดการเหตุการณ์การเคลื่อนที่ของเมาส์.


ตัวแปร Global

  • int gChartNo=0
  • int gSubWinNo=0
  • string gsObj_Name_selected="" - ชื่อของวัตถุที่เลือกอยู่ในขณะนี้.


เหตุการณ์ที่กำหนดเอง

มีการกำหนดเหตุการณ์ที่กำหนดเอง 3 ประเภท:

  • #define cMyEvent_1 0
  • #define cMyEvent_2 1
  • #define cMyEvent_3_broadcast 2


ฟังก์ชัน OnTimer()

ฟังก์ชันนี้สร้าง ChartEvent ที่กำหนดเองเป็นระยะ ๆ และสุ่มสร้างเหตุการณ์ที่กำหนดเองสามประเภท (cMyEvent_1, cMyEvent_2 และ cMyEvent_3_broadcast) โดยเฉพาะเหตุการณ์ cMyEvent_3_broadcast จะถูกสร้างสำหรับทุกหน้าต่างกราฟที่เปิดอยู่.


ตัวอย่างของคลาส

คลาส "CObjectMan" ถูกสร้างขึ้นเพื่อจัดการฟังก์ชันการทำงานสำหรับวัตถุในกราฟ โดยได้มีการประกาศตัวแปรสองตัวจากคลาสนี้คือ gObjectMan1 และ gObjectMan2.

ชื่อของวัตถุกราฟิกที่เชื่อมโยงกับสองตัวแปรนี้คือ "Green Button" และ "Yellow Button" ตามลำดับ.


การประมวลผลเหตุการณ์

void OnChartEvent():

เหตุการณ์ "CHARTEVENT_KEYDOWN":

  1. ปุ่มลูกศร 4 ทิศทาง หรือปุ่มลูกศร 4 ทิศทางบนแผงดิจิตอลเพื่อเคลื่อนที่วัตถุที่เลือก.
  2. 'H': พิมพ์ข้อมูลช่วยเหลือ (ในหน้าต่างล็อกของผู้เชี่ยวชาญ).
  3. 'I': พิมพ์ข้อมูลตำแหน่งของวัตถุสองตัว.
  4. 'M': เปิดใช้งานเหตุการณ์ MOUSE_MOVE.


เหตุการณ์ที่กำหนดเอง

พิมพ์ข้อมูลเกี่ยวกับเหตุการณ์เหล่านี้ โดยเฉพาะเหตุการณ์ MyEvent_3_broadcast.


เหตุการณ์ของวัตถุ

  • CHARTEVENT_OBJECT_CHANGE, CHARTEVENT_OBJECT_DRAG, CHARTEVENT_OBJECT_DELETE - พิมพ์ชื่อของวัตถุที่เกี่ยวข้อง.
  • CHARTEVENT_OBJECT_CLICK - พิมพ์ชื่อของวัตถุที่ถูกคลิก และเลือกชื่อนั้นเพื่อเคลื่อนที่โดยปุ่มทิศทาง.


เหตุการณ์ของเมาส์

  • CHARTEVENT_CLICK - พิมพ์ข้อมูลของแถบที่ถูกคลิก: ราคา (เปิด, ปิด) และเวลาของแถบ.
  • CHARTEVENT_MOUSE_MOVE (ดู: CHART_EVENT_MOUSE_MOVE) - พิมพ์ข้อมูลของช่วงเวลาที่ครอบคลุม: จำนวนแถบ, การเปลี่ยนแปลงราคา.

ChartEvent Test Example


การสาธิต

คุณสามารถทำการทดสอบดังต่อไปนี้:

  • คลิกที่หนึ่งในสองวัตถุ (ปุ่ม) เพื่อเลือกและใช้ปุ่มลูกศรเพื่อเคลื่อนที่วัตถุที่เลือก.
  • คลิกที่แถบกราฟและดูข้อมูลของแถบในแท็บล็อก (ข้อความ).
  • กดปุ่ม 'M' เพื่อเข้าสู่โหมด MOUSE_MOVE กด Ctrl+F เพื่อแสดงเส้นกากบาท จากนั้นทำการลากและวาง หากคุณไม่เห็นข้อความในล็อก กรุณาเปลี่ยนพารามิเตอร์นำเข้า: "iLogLevel".

โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)